ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉Ambient Zone を利用して簡単に音声のブレンドをやってみよう

目次

 

はじめに

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

 

場所によってBGMの音がスムーズ切り替わるようにするには、Ambient Zoneを利用することで簡単に実現することができます。

 

あまり知られていない機能ですが非常に強力なものですので活用してみましょう。

 

 

環境

UE5.3.0

FPSサンプル

 

以下のサイトを参考に記述しました。

docs.unrealengine.com

 

解説

環境の構築

UE上で簡単な部屋を作成してこの部屋に入ったらBGMが切り替わるようにします。

わかりやすいようにMeshを編集して部屋風にしました。

 

Audio Volume の配置

音声の切り替えたい範囲 = 部屋の中を定義するために、Audio Volumeを配置します。

アクタを配置からオーディオボリュームをレベルにドラッグアンドドロップします。

 

ブラシセッティングもしくはスケールを変更して部屋の形状に合うように設定します。

 

Tips

 ブラシ形状から形状を変更できます。
指定したいエリアに応じて適切な形状を設定することができます。

 

 

Audio Volume の設定

AudioVolumeのプロパティにアンビエントゾーン設定という項目があります。

これを設定することでこのエリアに入ったとき、どのように外部と内部の音声をブレンドするかを指定できます。

 

今回は環境BGMから室内BGMに2秒かけてブレンドするような設定にしてみました。

 

Ambient Sound の配置

エリアの指定が終わったので次に音源であるAmbient Soundを配置していきます。

 

環境BGMである音源を室外に1つと、室内BGMである音源をAudio Volume中に配置します。

 

Ambient Sound の設定

AmbientSoundそれぞれに再生したい音源を設定します。

 

サウンド→詳細設定のSound Class Overrideからサウンドクラスを作成します。

 

名前はSC_Ambientとしました。

 

SC_AmbientのApplyAmbientVolumesにチェックを入れます。

 

両方のAmbeinetSoundにこのSC_Ambientを割り当てます。

 

Allow Spatializationにチェックがついているのを確認したら完成です、


音量調整はそれぞれのAmbientSoundで行います。

 

サウンドの音量調整

AudioVolumeによる音量制御と音量調整を両立する手法は以下の方法で出来ます。

これにより、移動先のエリアの音量が0の場合はZoneの設定が1でもそのまま0になります。

 

注意事項

・Volumeの計算はカメラ座標を利用しているようです。

そのためTPPの場合はキャラの位置と聞こえる範囲が変わってしまいます。

⇒こちらUnreal Engineの音を聞く位置がデフォルトでカメラの位置になっているようでした。
そのためキャラクターの位置にリスナーを更新するノードで上書きすることでこの問題を解決できるようです。

ご指摘ありがとうございました。

docs.unrealengine.com

 

・個人の環境ですが実行時にすべてのAmbient音声が一瞬再生されてしまう問題があります。

自分の環境ではデフォルトの音量を0にして遅延を入れて音量を1に設定する処理を入れることで解決しています。
解決方法をご存じの方はコメントお願いします。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

投げ銭を投げる