はじめに
ADXアンバサダーとして記事を書いておりますSigと申します。
この記事ではADX for UE の 「バスセンド」機能を使い、特定のエリアでの音響設定及び、動的に音響を操作する方法についてまとめます。
やること
- AtomCraftでリバーブエフェクトを作成する
- UE内で音響ごとのエリアを構成する
- Blueprintで音響を操作する
また、記事中に「blueprintue」を使用したBPグラフ共有を載せています。コピペすることで大体の実装ができますので、よろしければご活用ください。
当記事ではUE5.7 及び 「ADX LE UE SDK(2.05.01)」を使用します。
また、基本的にブループリントのみでの実装を行います。
ADX for UEはインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx-le/
前提
「ADX for UE LE」を使用します。導入や簡単な使い方は以下の記事にあります。
ADX for UEの導入で、一歩上のサウンド表現を(導入編)
ADX for UEの導入で、一歩上のサウンド表現を(実践編)
ADX for UEでつくる、エリアごとの音響
AtomCraftでリバーブエフェクトを作成する
まずはサウンドオーサリングツール「AtomCraft」を使い、リバーブエフェクトを作ります。
プロジェクトツリーの「ミキサー」内の「Mixer_0」をダブルクリックするか、画面下部の「ミキサー」タブをクリックして切り替えます。

ミキサーはデフォルトでは基本の出力である「MasterOut」のみがあります。
空欄を右クリックし、「バスの作成」を選択します。

バスに名前をつけます。今回はリバーブ用のバスと、通常の音声を扱うバスが必要なため2つ用意します。

2つのバスが作られました。
本来であれば音声の出力フローを決定する「バスセンド」を設定しますが、今回はUE側でバスの音量を制御するためそのままにしておきます。

「BUS_Reverb」にエフェクトを追加します。
「リバーブ」エフェクトを追加しました。

「リバーブ」と書かれた部分を選択すると、インスペクターでリバーブのプロパティを設定することができます。

プロジェクトツリーからバスマップを開き、出力先のバス名が「MasterOut」になっていることを確認します。

ここまでできたらキューシートをビルドします。
UE5でエリアごとの音響を設定する
Blueprintから音響を操作する
キューシートのインポート
ビルドしたacbファイル、acfファイルをUEにインポートします。
acfファイルインポートの際に出るダイアログではYesを選択します。これにより、自動でプロジェクト設定が実行されます。

Atom Configとキューシートのアセットが作られます。

キューシート内にキューが入っていることを確認します。

Atom Rackを用意する
エフェクトに伴う音声出力のため、「Atom Rack」アセットを用意します。
コンテンツドロワーで右クリックし、「ADX Atom」→「Sound Renderer」→「Atom Rack」にあります。

名前をつけます。

ダブルクリックして開き、Atom Configを今回インポートしたものに設定します。

また、Dsp Bus Settingも今回用意したものに設定します。

プロジェクト設定を開きます。

「ADX Atom」タブのMaster Rackに、作成したAtom Rackアセットを指定します。

テスト用のキューを再生する
動作がテストできるよう、簡易にサウンドを再生できるようにします。
キューシートアセットを開き、レベル上にキューをドラッグ&ドロップして配置します。

配置したキューを選択した状態でレベルブループリントを開きます。

イベントグラフの空欄で右クリックし、「Create a Reference to (キュー名)」でリファレンスノードを配置します。

Input Keyノード、及びPlayノードを使い、キーを押したらキューが再生される処理を作ります。

ゲームを再生し、1キーを押すたびにキューが再生されます。

ブループリントから音響、エフェクトを制御する
「特定のエリアに進入すると音響が変化する」処理を作っていきます。
「Trigger Box」を配置します。

Detailsパネルの「Box Extent」をいじってエリアを設定します。レベルの半分を覆ってみました。
「Line Thickness」を上げると視認性が高まります。

配置した「Trigger Box」を選択した状態でレベルブループリントに戻ります。

イベントグラフの空欄で右クリックし、「Add On Actor Begin Overlap」及び「Add On Actor End Overlap」を選択します。

トリガーへの進入時と退出時の2つのイベントが作られます。

それぞれ、検知した対象がプレイヤーであることを確認します。

レベル上で配置したキューを選択します。

レベルブループリント上で再びリファレンスノードを作ります。

Set Atom Bus Sendノードでバスごとの音量が設定できます。

トリガーに入った際はリバーブのSend Levelを1.0に、退出時はSend Levelを0.0にします。
これで、特定のエリア内でのみリバーブ音量が聞こえるようになります。

音響の変化をより分かりやすくするため、通常のバスセンド音量もいじってみましょう。
この例ではBUS_Normalの音量を設定することにより、エリア内でリバーブのみが聞こえるようになります。

Trigger Boxのプロパティで、「Actor Hidden in Game」のチェックを外すとゲーム内でもエリアが可視化されます。

エリアを行き来した上で1キーを押し、音響が変わることを確認してみましょう。

今回のブループリントグラフは、こちらからコピペできます。
グラフへのコピペ後、バスセンドの対象は別途ノード内で設定する必要があります。