UE5 で追加された新しいオーディオシステム『MetaSound』の概要と実装フローについて書きたいと思います。
※ Early Access 版での検証記事のため、正式リリース時とは内容が異なる部分があるかもしれません。
概要
『MetaSound』は従来のオーディオシステム『Sound Cue』よりもよりプロシージャルなサウンドを作成でき、パフォーマンスも向上してるとのこと。
ブループリントやNiagaraなど他のエディタにより近い設計のノードベースエディタとなっており、C++から自作ノードを作るなど『Sound Cue』よりも拡張性が高くなっています。
また、マテリアルインスタンスなどと同様のフローで MetaSound のアセットをインスタンス化できるようになるアップデートも予定されているとか。
実装フロー
アセット作成
コンテンツブラウザ右クリック → Sounds から MetaSound のアセットを作成します。
(ちなみに Sound Cue は "Legacy" カテゴリに入っています)
MetaSoundエディターで編集
アセットを開くとInputノードが1つとOutputノードが2つ配置されています。
白いピンがトリガーピン、ピンクのピンがオーディオピンと呼ばれるものです。
トリガーピンはブループリントでいう実行ピンの役割をしており、MetaSoundを再生すると "On Play" ノードから順番に実行されます。
"On Play"ノードは複数置くことも可能です。また、"On Finished"ノードは任意的なもので繋がなくてもサウンドの再生自体はされます。
オーディオピンは最終的な音の出力をするためのものです。
こんな感じ。
Wave アセットをそのまま再生する処理です。
エディタ上部の "Play", "Stop" から再生可能で、エディタ右側には音量が可視化されています。
ノードの種類や細かい内容は公式ドキュメントで詳しく解説されています。
Waveアセット(音源)が無くても、Sine(波)などから音を作ることも可能です。
全体設定
エディタ上部の "General", "MetaSound" タブからサウンド全体の設定をできます。
・音量、ピッチ
・音減衰アセットの設定
・モノラル / ステレオ切り替え
切り替えると Output ノードのオーディオピンも自動で切り替わります。
ゲーム内でサウンドの再生
再生手順は Sound Cue と同じです。
MetaSound アセットを直接レベルに配置することでアクターとして生成され、プレイするだけで自動で再生してくれます。
また、Audio コンポーネントに MetaSound アセットを指定して再生することもできます。
値の外部操作
マテリアルや Niagara と同じように値をパラメーター化し、ブループリントなど外部から操作可能です。
まずはピンを引っ張り、メニューから "Promote To Graph Input" を選択します。
インプットノードへと変換され、これだけで外部からアクセス可能になりました。
BP にて "GetParameterInterface"ノードから "Set"ノードで上で作ったインプットノードの値を代入できます。
インプットノードのタイプが "Trigger" の場合は "Trigger" ノードから実行できます。
まとめ
個人的には Sound Cue よりも直感的でリアルタイムにも強く使い勝手よいので今後のアップデートが楽しみです。
ノードを応用した記事も上げているのでこちらも参考にしてみてください。
UE Version : 5.0.0-16433597