1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ADX2+UE4で、屋内の音響をデザインする(後編)

Last updated at Posted at 2021-09-14

はじめに

アンリアルエンジン4とサウンドミドルウェア「ADX2 for UE4」を連携させ、家の中や洞窟の中など、閉じた場所で聞こえてくる音をデザインする記事の続きで、さらに詳細な空間音響を設定する方法についてです。

前編はこちら: ADX2+UE4で、屋内の音響をデザインする(前編)
https://qiita.com/SigRem/items/86d4a218d6be3240df3d

当記事ではUE4.26.1を使用します。基本的にブループリントのみでの実装を想定しています。
ADX2はインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx2-le/

記事執筆時点のADX2 for UE4のSDKバージョンはv1_29です。

前提

ADX2 for UE4の導入や基本的な使い方は以下の記事にあります。必要に応じて参照してください。
ADX2 for UE4の導入で、一歩上のサウンド表現を(導入編)
https://qiita.com/SigRem/items/4250925f6d66a4fd287a
ADX2 for UE4の導入で、一歩上のサウンド表現を(実践編)
https://qiita.com/SigRem/items/c089b71c42e898980a46

3DトランシーバーのRear

前編記事で解説したAtomTransceiverBoxですが、Foward Regionの他にRear Regionと呼ばれる3Dリージョンを持ちます。
B01.png
これらを設定することで、プレイヤーやサウンドがAtomTransceiverBoxを通り抜けた際に新たにリージョンを付与することができます。
B02.png

まずはレベル上に置いてあるAtomTransceiverBoxを選択し、「Rear Region」にForward Regionとは異なる3d Regionを割り当てます。
B03.png

AtomTransceiverBoxを選択した状態で「Blueprints」→「Open Level Blueprint」でレベルブループリントのエディタを開きます。
B04.png
B05.png

イベントグラフ上の空いている場所で右クリックし、AtomTransceiverBoxのリファレンスノードを作成します。
B06.png
リファレンスノードから線を伸ばし、Set Listening Actorノードを配置します。
B07.png
Set Listening ActorノードにはGet Player Characterを繋ぎ、プレイヤーキャラクターを割り当てます。
B08.png
Event BeginPlayノードをつなぎ、ゲーム開始時に処理が走るようにします。
B09.png

リスナーの3dリージョンが変化したことを確認するために、画面上にメッセージが出るようにします。
B10.png
Get Listener Regionでプレイヤーの3dリージョンが取得できます。

ゲームを再生して通路を通り抜けてみると、通り抜けた方向によりプレイヤーの3dリージョンが変化するのが分かります。
B11.png
B12.png

3DトランシーバーによるAisacコントロール

3Dトランシーバーによって集積されたサウンドに、一括してAisacコントロールを行い音を変化させることも可能です。
プレイヤーとの角度による聞こえ方を制御するなどの用途があります。
B13.png

リスナーと音源の相対位置によるAisacコントロール

3Dトランシーバー以外にも音響を操作する手法はいろいろあります。

プレイヤーと音源の間の距離や、音を聞いている方向によってAisacコントロールをかけ、サウンドを変化させることが可能です。

複数の音を能動的に聴き分けるようなゲームデザインや、指向性を持つ音の表現に使うことができるでしょう。
試しに**「正面からはクリアに聞こえ、音から視線を外すとよく聞こえなくなる」**サウンドを作ってみます。

AtomCraftを開き、任意のキューのタイムラインの空欄で右クリックし「新規オブジェクト」→「AISACの作成」を選択します。
A01.png
Aisacコントロールが新規に作られます。グラフタイプは「バンドパス - Cof高域」を選びます。
これにより、高域の音がカットされくぐもった印象に変化させることができます。
A02.png
グラフが開くので、リストから「バンドパス - Cof高域」をクリックします。
A03.png
紫色のグラフにポイントをクリックして追加し、山のような形にします。
これは正面から音源に向いた際の角度が「0.5」になるためです。
A04.png
ポイントを右クリックし、「カーブタイプ」→「高速変化」を選択しグラフの形を整えます。
A05.png
他のポイントも「高速変化」に変え、コントロールポイントを操作して両方をなだらかな形にします。
A06.png
この状態で再生し、Aisacコントロールのスライダーを動かして音が変化することを確認します。
A07.png
キューのインスペクターでは「リスナー基準方位角AISACコントロール」に作成したAISACを設定します。
A08.png
セッションウィンドウで機能のテストができます。
3Dポジショニングの画面上で音源を動かしてみましょう。前方に音源があるときはクリアに聞こえますが……
A09.png
後方に移動すると音がくぐもって聞こえづらくなります。
A10.png
ビルドしてUE4に持ってくると、そのまま同じように動作します。
A11.png

Attenuationの設定

設置したAtom CueやAtom ComponentなどのAttenuation(音の減衰)設定を個別で変更し、効果的な環境音にするのも有効です。

また、Attenuation(Submix)で送信先サブミックスを設定すると、UE4標準のミックス機能と連携することもできます。
B31.png

オクルージョン(遮蔽物)の設定により、リスナーから見て音源が隠れている場合に音を小さくしたり、くぐもった音にしたりといった機能もあります。

過去記事: ADX2 for UE4で、遠距離や遮蔽物に隠れた音を減衰させる(オクルージョン)
https://qiita.com/SigRem/items/4deaa0bc4b04290ce1f1

先ほどの「リスナー基準方位角AISACコントロール」などと併用する場合、該当機能を有効にしてください。
たとえば方位角であれば、「Enable Spatialization」です。
A12.png
この状態で下の「Attenuation(Occulusion)」を設定すれば、オクルージョン減衰とAisacコントロールを併用できます。
A13.png

紹介したこれらのテクニックは組み合わせたり、ADX2 for UE4の他の機能と組み合わせることもできます。
うまく使いこなして、ゲーム中の屋内サウンドに説得感をもたせてみるといいでしょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?