概要
- 本ページではNiagaraパーティクルシステムにおける、パーティクルのスポーン時、デストロイ時にADX2サウンドを再生する方法を示していきます。
- なお、本記事ではUnrealEngineのNiagaraという機能に対しての音付けとして説明していくため、事前に以 下の記事を読んでおくことをおススメします。
- ■UnrealEngine Niagara公式ドキュメント
Unreal Engine 公式ドキュメント | 視覚効果を作成する
Unreal Engine 公式ドキュメント | Niagara のオーディオ エフェクト
- ■Niagaraでのエフェクト制作例
【ナイアガラ超基礎 #1】かんたんな概念【UE5】
NiagaraでADX2サウンドを再生するための準備
- NiagaraでADX2サウンドを再生するための準備としては、CriWareNiagaraプラグインがエディタ上で有効 になっている必要があります。
-
- そのため、利用いただくにあたってはUnrealEngineに適用されているCriWare UnrealEngine Pluignに本プラグインが含まれ、且つ有効になっているかどうか確認してください。
- CriWareNiagaraPluginには、ADX2サウンドを再生するモジュールが含まれています。
- データ列挙型
- ENiagara_AtomSoundParamType.uasset
- PlayAtomMode.uasset
- Niagaraモジュール
- PlayAtom.uasset
- PlayPersistentAtom.uasset
- UpdatePersistentAtom.uasset
- AtomSoundStopWhenParticleDie.uasset
- NiagaraシステムでADX2サウンドを再生する場合は、NiagaraモジュールをNiagaraエミッターやNiagaraシ ステム中で利用していきます。
Niagaraでのサウンド再生
- Niagaraではパーティクル属性内にAtomPlayerインターフェースを変数として持ち、それを利用してサウン ド再生の設定をNiagaraエミッター内にモジュールを追加して行っていきます。
- ADX2サウンドを再生するためのモジュールの利用方法としては、以下の通りです。
PlayAtomモジュール
- ワンショットのサウンド再生で利用します。 基本的には、Niagaraエミッター内の「パーティクルのスポーン」内で呼び出すようにします。
-
PlayPersistentAtom
- パーティクル更新などで座標の変更を行いたい場合などではPlayPersistentAtomモジュールを利用します。 「パーティクルのスポーン」内で呼んで利用します。
-
UpdatePersistentAtom
- PlayPersistentAtomモジュールで再生したサウンドのLocationやRotation、Volume、Pitchなどを「パーティ クルの更新」内で変更することができます。
一つのモジュールで変更できるパラメータの種類は1種類のみなので、LocationやRotationなど複数のパラ メータを更新したい場合は、更新するパラメータ数分のモジュールを「パーティクルの更新」内に追加し ます。
-
AtomSoundStopWhenParticleDie
- パーティクルが消えるときにこのモジュールイベントがキックされます。
一つ目のAtomPlayerにセットされたAtomPlayerで再背されているサウンドを停止し、二つ目のAtomPlayer にセットしたサウンドをパーティクル破棄時に再生することができます。
-
Niagaraシステム上でのADX2サウンドの付与例
付与するエフェクトから再生するサウンドの仕様を決める
- パーティクルエフェクトの表現は千差万別あるため、今回はシンプルに花火エフェクトに対してADX2サウ ンドを付与していきます。
-
- こちらの花火エフェクトですが、まずは音を付与する個所を見極めていきます。
この花火エフェクトは、以下のような流れでエフェクトが遷移していきます。
-
- このフローの中でサウンドが必要となってくる個所を
- 打ち上げ中の光華笛の音(ヒュ~)
- 光華の炸裂音(ドンッ!)
の二種類とします。
※シンプルにするため付与する音の種類を少なくしています。
- それぞれのサウンドの挙動は以下のようになるようしていきます。
- 打ち上げ中の光華笛の音(ヒュ~)
- 打ち上げ時から炸裂時まで音が鳴り続けるものとする
- 炸裂時に停止する
- 光華の炸裂音(ドンッ!)
- この仕様となるようNiagaraEditor上で設定していきます。
Niagaraモジュール/システムでNiagaraEditorを開く
- 今回はNiagaraSystemの内部エミッターに直接ADX2サウンドを再生する仕組みを作っていきます。
- 光華のエフェクトはMarketPlaceで販売されているものを利用しています。
そのうちのNS_Willow1に対して音付けをしていきますが、念のため実験用のアセットとして、NS_Willow1を複製してNS_Willow_Testと名前を付けます。
https://unrealengine.com/marketplace/ja/product/fireworks-niagara-fx
- まずはNS_Willow_TestアセットをダブルクリックしてNiagaraEditorで開きます。
すると次のような画面が表示されます。
-
- このうちでサウンドを、付与したい状況を考え、打ちあがっていく際の白いエフェクトであるNERocket001エミッターとします。
- ADX2サウンドを再生する際には、Niagaraパラメータに変数をまず初めに追加します。
「システムの概要」ウィンドウ内の「NS_Willow_Test」を選択します。
- パーティクル属性の+ボタンを押してデータインターフェース内にあるAtomPlayerを再生するサウンド分だけ用意します。今回は二種類のサウンドを再生したいため二つ用意します。
-
- NE_Rocket001に音付けを行うため、作成したAtomPlayer、AtomPlayer2をパラメータ内からドラッグしてNE_Rocket001の「パーティクルのスポーン」内AddVelocityinCone以下あたりに置きます。
-
- NE_Rocket001内に配置したAtomPlayer、AtomPlayer2を選択すると選択タブ内で再生したいサウンドのセットなどができるようになるため、再生したいSoundAtomCueアセットを指定します。
- ここではAtomPlayerに「打ち上げ中の光華笛の音(ヒュ~)」をセット、AtomPlayer2に「光華の炸裂音(ドンッ!)」をセットしています。
- さて、まずはうち上がり中の光華笛の音を再生するために、NE_Rocket001の「パーティクルのスポーン」の+ボタンを押してPlayPersistentAtomを選択します。
-
- すると図のようになるはずです。
NE_Rocket001のどれかのモジュールを選択中、左側のパラメータには各種モジュールが所有しているパブリックなパラメータ一覧が表示されますが、その中にあるPlayAudioというbool変数を探します。
-
- PlayAudioのbool値を見つけたら、NE_Rocket001のPlayPersistentAtomモジュールの上にDrag&Dropで配置します。
追加した後、PlayAudioの選択タブ内のチェックボックスを有効にします。
-
- 次にPlayPersistentAtomモジュールを選択して、選択タブ内のAtomPlayerという黄色いアイコン上にDrag&Dropをします。
-
- すると画像のようになるはずです。
- ここまでが発音させるまでの流れになります。
しかしこれだけだと、光華笛は発音時のポイントから移動しない状態になってしまいます。
- 次は光華笛をパーティクルに追従するようにします。
- 追従の処理はNS_Rocket001の「パーティクル更新」項目内に設定していきます。
- 「パーティクル更新」の+ボタンを押して「UpdatePersistentAtom」を選択します。
- UpdatePersistentAtomモジュールが作成されたらUpdatePesistentAtomモジュール内のAtomPlayerに、パラメータタブからAtomPlayerをDrag&Dropします。
- Drag&Dropした後は、UpdatePesistentAtomモジュールのUpdateTypeをLocationになるよう変更します。
- これにより光華笛の音は花火のパーティクルに追従するようになります。
- さて次に、このパーティクルが消えた際に、打ち上げ音を消しつつ、光華が破裂する音を追加します。
これはDeathEvent時に上記二種類の処理を行えるモジュールを「パーティクル更新」内に追加することで実現します。
「パーティクル更新」の+ボタンを押してAtomSoundStopWhenParticleDieモジュールを作成します。
- AtomSoundStopWhenParticleDieモジュール内には二つのAtomPlayerを設定できるようになっているため、上のAtomPlayerには停止させたいAtomPlayer、下のAtomPlayerにはパーティクルが死んだ際に再生したいAtomPlayerをセットします。
-
- これにより光華が打ちあがってから破裂するまでの一連の流れに対応したサウンド再生を実装できました。