本稿では3Dサウンドの再生方法をご紹介します。
3Dサウンドとは
3D空間上のある位置 (音源) から音が発せられ、音の聞こえてくる距離や方向が感じられるサウンドのことを指します。
3Dサウンドの再生パラメータを設定する
3Dサウンドを再生させるためのパラメータを設定する必要があります。
設定方法は大きく分けて2パターンあります。
- CRI Atom Craft ツールで 3Dポジショニング のパラメータを設定する。
- AtomComponentに サウンド減衰情報 を設定する。
- 覚え書き
- Atom Craft ツールでパラメータを設定した場合は、特別な処理を行わずに3Dサウンドとして再生されます。
AtomComponent にサウンド減衰情報を設定する
- 注意
- AtomComponent にサウンド減衰情報を設定する方法で実装したサウンド減衰表現は、ADX2 のサウンドオーサリングツール AtomCraft によって ADX データに対して定義する減衰表現とは異なります。
-
ADX データに対して予め定義しておく必要がないので、柔軟かつ素早く減衰のデザインが可能になります。
-
サウンドデザイナーが ADX データに対して減衰設定を定義している場合は、設定をオーバーライドする形で減衰が有効化されたり変更される形になります (ADXデータそのものを変更することはありません)
UE エディタ上で設定する
AtomComponent の詳細パネルから「 Attenuation > Override Attenuation 」のパラメータを有効にすると減衰設定に関するパラメータが表示されます。
その中から、下記のパラメータを有効にすることで音量の距離減衰と定位感を実装することができます。
- Attenuation (Volume) > Enable Volume Attenuation
- Attenuation (Spatialization) > Enable Spatialization
減衰範囲については Attenuation (Volume) の下記パラメータで設定可能です。
パラメータ | 説明/コメント |
Inner Radius | 音源を中心とする、減衰が行われない内部領域を設定します。 |
Falloff Distance | 減衰を行う外部領域を設定します。内部領域に近いほど減衰は小さく、離れるほど減衰は大きくなります。 |
BP or C++ で設定する
AtomComponent には下記の API を用意しています。
- UAtomComponent::AdjustAttenuation() 関数を呼び出す。
- UAtomComponent::AttenuationSettings 変数に UAtomAttenuation オブジェクトを設定する。
実行結果
カメラを音源に対して、近づくor離れる、左に移動するor右に移動することで音量の増減やパンニングが確認できます。
- 覚え書き
- 音が聞こえない場合は、プロジェクト設定の Distance Factor の値をご確認ください。
-
この値は、UEでの距離"1"に対して Atom関連について表現する値の倍率を設定します。
-
UEの座標系を cm 単位、Atom を m 単位と想定すると設定する値は、デフォルト値の 0.01 となります。