バージョン
- 必要条件
Wwise Unreal Integration Documentation
|
UnrealのNiagara VFXシステムを使用し、複雑なエフェクトシステムをビジュアルプログラミングパラダイムで構築できます。Niagaraシステムの詳細については Niagara Overview.
Wwise Unreal Integrationは、Niagaraシステム内からWwise Eventのポストと更新を行うために必要なコードとNiagaraモジュールを提供します。
プラグインはEngineまたはGameプラグインとしてインストールできます。このプラグインはWwise Unreal Engine Integrationプラグインとともに自動的にインストールされます。 プラグインをインストールした後、Unreal Editorでアクティブ化できます。アクティブ化するには、 Edit > Plugins を選択してから Wwise Niagara Integration を選択します。
このインテグレーションに含まれるWwise Event用のNiagara Data Interfaceを使用し、Wwise EventアセットとGame ParameterアセットをNiagaraシステム内で参照できます。このData InterfaceはNiagaraのCPUシミュレーションとのみ互換性があります。これを使用して、ファイアアンドフォーゲット(撃ちっ放し)Eventと、シミュレーションの進行に合わせてコントロール可能な永続的Eventをポストできます。永続的Eventの場合、データインターフェースが内部の「オーディオハンドル」を追跡し、これを使ってパーティクルインスタンスやエミッターインスタンスをポストされたEventにマッピングします。
注記: Wwise EventをGPUシミュレーションで使用するには、 パーティクルデータをブループリントにエクスポートする に記載されたExport Particle Data Moduleを利用します。 |
パラメータ:
Niagara Wwise Event Data Interfaceは、Eventをポストし、それらの再生パラメータやGameObjectパラメータを更新するための関数を実装します。これらの関数はNiagaraモジュールで利用できますが、Niagaraエミッターのスタックから直接利用することはできません。インテグレーションには一連の基本的なNiagaraモジュールが含まれ、これらの各関数をNiagaraスタックに公開します。
注記: これらのモジュールはプラグインの中に含まれるため、新しいモジュールをスクリプトに追加する時に、 Plugins フィルタを選択してモジュールを Add new Module 選択ボックスに表示させる必要があります。 |
パラメータ:
動作:
このモジュールは、パーティクルやエミッターの存続期間中に管理する必要のない「ファイアアンドフォーゲット(撃ちっ放し)」Eventをポストします。 このモジュールはEventを、特定の場所にあり特定の向きを持つ一時的なGameObjectにポストします。
注記: 無限のデュレーションのEventは、StopAll()をコールしない限り停止できないため、この方法でポストできません。 |
警告: パーティクルシステムから短時間に多数のWwise Eventをポストすると、サウンドエンジンに過剰な負荷がかかる可能性があります。必ず、システムがポストできる1フレーム当たりのEvent数を制限するか、Wwiseプロジェクトで 再生制限を設定 してください。 |
パラメータ:
動作: AkComponentを特定の位置に、指定した回転で作成し、提示されたEventをこれに対してポストします。EventをポストしたAkComponentは、アップデートループ内のモジュールによって生きた状態が維持されます。このためパーティクルが死んだ場合やカリングされた場合、AkComponentは確実に破棄され、メモリがリークしません。 モジュールがUpdateスクリプトで更新されなければ(System、Emitter、 Particle)、AKComponentは破棄されます。この場合、1フレームの オーディオがポスト後に再生され、すぐに消去されます。 コンポーネントが破棄された時、それに対してポストしたEventが停止するかは、Niagara Wwise Event Data Interfaceの Stop when Component is Destroyed の設定によります。
このモジュールをNiagaraシステムの Update ステージに入れると、EventをPost Event Conditionを満たした時に1インスタンス(エミッターまたはパーティクル)当たり1回ポストし、AkComponentは生き続けます。ほかの永続的Eventモジュールをアップデートステージで使用している場合は、それらによってAkComponentが生き続けるため、Post Persistent Eventモジュールを、代わりにエミッタースタックの Spawn ステージに入れることができます。
注記: Persistent Eventを使用する時は、同じ永続的Eventを扱うモジュールのWwise Event Dataパラメータに、同じ属性を使うことが重要です。同じ属性を使うことで、各パーティクルに関連付けられたインスタンスデータをほかのモジュールで利用できるようになります。この属性が存在する可能性があるのはUserレベル、Systemレベル、Emitterレベルです。 |
以下のモジュールを使用して、永続的Eventの再生をコントロールしたり、AkComponentのGameObjectにGame Parameterを設定したり、Sound Engine内のGameObjectを更新するためにAkComponentの位置や向きを更新したりできます。
パラメータ:
動作:
AkComponentの位置を設定します。
パラメータ:
動作:
AkComponentの回転を設定します。
パラメータ:
動作:
AkComponentのGameObjectのGame Parameter値を設定します。
パラメータ:
パラメータ:
Wwise EventをポストするNiagaraシステムをデザインする時はWwise Profilerを注意深く監視します。Max Plays per Tick パラメータを利用することで、生成されるパーティクル数が多過ぎる時にSoundEngineにかかる負荷を抑制することはできますが、オーディオEventがそれなりに長ければ、結局は同時に起きるボイスが多数発生する可能性があります。Wwiseプロジェクトにあるオブジェクトの再生制限の設定 を使用し、パーティクルシステムがスポーンできるボイス数にハードリミットを設定できます。
Export Particle Dataモジュールは、NiagaraシステムをWwise Sound Engineに接続するための代替案を提供してくれます。このモジュールは、任意のパーティクルデータを、Receive Particle Dataインターフェースを実装するBlueprintにをエクスポートします。これにより、Blueprintに公開されているすべてのWwise Integration機能を使用できるようになります。デフォルトで、Export Particle Dataモジュールは2つのベクトルと1つの浮動小数点値をエクスポートし、これらによって位置、速度、永続的ID、年齢(経過時間)など各パーティクルに関する情報を伝達します。
Wwise Integration Unreal Gymsプロジェクトは、前述のNiagara Wwise Event Dataインターフェースとそのモジュールの使い方を示すサンプルのNiagaraシステムと、Export Particle DataをCPUおよびGPUパーティクルシステムと使う方法を示すNiagaraシステムとBlueprintアクタを提供します。
これらのサンプルは、パーティクルの軌跡を追う永続的Eventをポストし、それらのEventにGame Parameterを設定し、パーティクルが衝突するとファイアアンドフォーゲットEventをポストします。
注記: The sample GPU particle system requires the Generate Mesh Distance Fields setting to be enabled. See Mesh Distance Fields Properties. |
提供中のNiagaraモジュールはUnreal 5.X以降と互換性があります。もし Unreal 4をご利用の場合は、提供されているWwise Niagara関数は使用できますが、関連するNiagaraモジュールは再構築する必要があります。
これを行うには、タイプFX > Niagara Module Scriptのアセットを作成します。