Choose your operating system:
Windows
macOS
Linux
パーティクルが何か他のものと衝突するときのパーティクル シミュレーションにおいてなど、Niagara でオーディオ エフェクトを再生する場合、Niagara から直接これを行う方法が何通りかあります。
それぞれの方法にはメリットとデメリットがあります。以下が簡単な概要です。
これらのメソッドのサンプルは、Epic Games Launcher:Unreal Engine > [Learn (ラーニング)] > [Engine Feature Samples] > [Content Examples (機能別サンプル)] の 機能別サンプル にあります。
Play Audio モジュールを使用する
一度限りのサウンド エフェクト の場合、Niagara からサウンド エフェクトを再生する最も簡単な方法は Play Audio モジュールを使用することです。パーティクル コリジョンへの反応など、イベント駆動型エフェクトに役立ちます。低負荷のソリューションです。
Play Audio モジュールをエミッターに追加します。
[Sound to Play (再生サウンド)] のドロップダウンからサウンドを選択します。
PlayAudio の条件を設定します。
ピッチ、ボリュームなどに設定された値を使って、一度限りのファイヤー アンド フォーゲット エフェクトを発行します。エフェクトがトリガーされた後は変更や停止はできません。パーティクル シミュレーションが停止しても再生し続けます。
Play Audio モジュール |
|
---|---|
メリット |
デメリット |
|
|
|
|
Audio Module のサンプル
コンテンツ ブラウザでフィルタリング機能を使って Play Audio を検索します。
PlayAudio Example をダブルクリックして Niagara システム のコンテンツを開きます。
クリックして画像を拡大します。
機能別サンプルのシステムに エミッター が含まれます。(1) Play Audio モジュール (Play_Sound_on_Collision) の使用方法を表示します。(2) エミッター スタックの中にオーディオ プレイヤー データ インターフェースを作成する場合に Persistent Audio (Mesh_Rotational_Velocity) を使用します (後述)。
Play Persistent Audio モジュールを使用する
このモジュールは Play Audio と類似していますが、スポーンされた各サウンド エフェクトを保持するので、時間経過と共に更新することができます。
このモジュールには、サウンド キュー パラメータのフェーディングや設定などの高度な機能もあります。ただし、この方法では動作に (Play Persistent Audio と Update Persistent Audio の 2 つのモジュールが必要なため、最初の方法よりも設定に少し注意が必要です。
両方のモジュールに同じオーディオ プレイヤー リファレンスを使用します。
オーディオ プレイヤー データ インターフェースをエミッター属性として作成し、それをモジュールにバインドすることができます。 上のスクリーンショットでは、Emitter.CustomPlayer リファレンスは両方のモジュールにあります。
EMITTER の横のチェーンの記号は、それらが既存の属性を参照していることを示しています。
デフォルトでは、それぞれのモジュールは他のモジュールとは共有することができない独自のオブジェクトを作成します。 モジュールで同じオブジェクトを使用する場合は、エミッターまたはシステム スポーン スクリプトでオブジェクトを作成してから、モジュールでそれを参照する必要があります。
Play Persistent Audio モジュールの動き方を確認するには、機能別サンプル ファイルで フィルタリング を使って Play Audio を検索し、 [PlayAudio Example] をダブルクリックして開きます。
[Play Persistent Audio] をダブルクリックして ノードグラフ を開きます。
クリックして画像を拡大します。
この方法は、サウンドがパーティクルの位置とともに移動する必要がある場合など、シミュレーション中にサウンドのプロパティを変更する必要がある場合に役立ちます。
Play Persistent Audio モジュール |
|
---|---|
メリット |
デメリット |
|
|
|
|
|
Audio Component Renderer を使用する
Audio Component Renderer は実験的機能です。Unreal Engine の他の実験的機能と同じように使用します。
Audio Component Renderer を使用して、オーディオ コンポーネントをスポーンすることができます。
オーディオ コンポーネントを完全に制御することができるため、非常に柔軟なアプローチですが、パーティクル シミュレーションの Play Audio モジュールから機能 (フェーディングや距離ベースのフィルタリングなど) を再実装する必要があります。また、最初にカスタム オーディオ コンポーネントを作成せずにサウンド キューを設定することもサポートしていません。
モジュールが十分な制御を提供しない特別なユースケースを除いて、コンポーネントレンダラーを推奨しません。
Audio Component Renderer |
|
---|---|
メリット |
デメリット |
|
|
|
|
|
パーティクル データをブループリントにエクスポートする
他のアプローチがニーズに対して柔軟に対応できない場合は、パーティクル データをブループリントまたは C++ にエクスポートし、そこにオーディオ ロジックを実装することができます。
クリックして画像を拡大します。
そのためには Export Particle Data インターフェースを使用します。機能別サンプル プロジェクトの例を見るには、コンテンツ ブラウザで「export particle」を検索します。
ExportParticleDataExample をダブルクリックして、パーティクル シミュレーションからデータをエクスポートする方法に関する詳細な説明を表示します。
このサンプルは、グラフに各イベントの説明が表示されます。
データ エクスポート インターフェースのメリットの 1 つは、GPU エミッター上でも動作することです。必要なデータをブループリントに入れれば、オーディオ再生だけでなく、ポストプロセスやユーザー インターフェース ウィジェットなど、いくつでもコンポーネントを操作することもできます。
これがオーディオを再生する最も柔軟な方法ですが、同時に最も遅く、最も設定が複雑です。さらにエクスポートできるデータ量にも制限があり、オーディオ コンポーネントとパーティクル データ間のマッピングが必要です。
パーティクル データをブループリントにエクスポートする |
|
---|---|
メリット |
デメリット |
*最も柔軟性が高い |
|
|
|
|