あっぷあっぷブログ

UnrealEngine(ゲーム用途)関連の備忘録です。

【UE5】Soundscape Plugin メモ

Soundscapeとは?

コミュニティからの引用

https://discord.com/channels/187217643009212416/221798819753361408/1067206762157060136

Soundscape is meant for sounds unseen and unimportant save for the world-building aspect. So it sounds like the right division of work. For example, in the Matrix Awakens, I used Soundscape for maybe 60-80% of the sounds you hear, but NPC cars, footsteps, foley sounds, drivable cars, some highway sounds, some city boundary sounds, etc. were from other systems or designs.

GPT訳
Soundscapeは、世界構築の側面以外では目に見えず、重要ではないサウンドに使用されるものです。したがって、作業の適切な分担のようですね。例えば、「Matrix Awakens」では、おそらく聞こえるサウンドの60〜80%をSoundscapeで使用しましたが、NPCの車、足音、フォーリー音、運転可能な車、一部の高速道路の音、一部の都市の境界の音などは、他のシステムやデザインから提供されています。

参考

docs.unrealengine.com

Unreal Engine 5.1 | Creating Soundscapes - YouTube

サウンドスケープカラー

個々のサウンド

サウンドスケープパレット

サウンドスケープカラーを複数格納したもの。

右クリックメニュー>サウンド

Fadeが便利

  • 勝手にFadeしてくれる!
    「RemovePaletteCollection」しようが、「ClearState」しようが、Fadeしてくれる。

昼夜サイクルを表現する場合

夜明け、正午、日没、真夜中という感じでサウンドスケープパレットを4つ用意する。

デフォルトでSoundscape パレットを設定したい場合

Soundscape パレットをプロジェクトのデフォルトのパレット コレクションに追加可能。

Soundscape Color

スポーン位置

Traceでスポーン位置の調整が行えます。
もしサウンドを地面にスポーンさせたい場合。トレースを使う必要があるかもしれません。
スポーン位置の 高さ に関しては、リスナーからの相対位置と、ワールドの絶対位置を使えます。

サウンドを地面の上にスポーンさせたい場合、 地面が平らで高さが決まっているなら問題ないかもしれないですが、坂とか山とかある場合、地面の高さが一律ではないため、音の発生源をもう少し現実的にするには、トレースを使う必要が出てくると思います。
少々大雑把でもいいなら、リスナー位置から相対位置で下に50cmなど、Traceを使うまでもなく実行可能です。

Spawn Soundscape Color ノード

BP上でこの関数を呼ぶことで、サウンドスケープパレットを介さずとも、Soundscape Color 単体を生成することは可能です。
※Collect Garbageの回収対象に含まれます。長時間の再生には不向きです。

Soundscape Color の移動表現

https://discord.com/channels/187217643009212416/221798819753361408/1066901146385526865

You can do a stereo sound and have a very wide spread and have the bird pan across the stereo field.

Color Point を使う場合

Soundscape Colorに設定したサウンドはリスナーの周囲にランダムに生成されます。
Color Pointを使うことで、ランダムに生成される場所、そこがサウンド生成可能な場所であるかどうかを設定することができます。

指定したGameplayTagを持つObjectがいくつ存在するかをチェックし、GameplayTagを持つObjectが指定数を満たさない場合、サウンドの生成が失敗します。

大雑把な例

例えば2秒ごとに蜂のサウンドを、ランダムな場所で生成したいとします。
その場合、以下のような流れになります。

  • ゲーム開始2秒後
    A区画で蜂のサウンドを生成したい > Flowerタグを設定したObjectがない!? > 生成失敗
  • ゲーム開始4秒後
    B区画で蜂のサウンドを生成したい > Flowerタグを設定したObjectを複数確認 > 生成成功

設定方法

Soundscape Color側の設定

Color Pointタグを設定する。

以下のどちらかの設定を加えると動作

GameplayTagを持つObjectをどうやってセットするかという内容です。

Color Point Collectionを使う方法

Color Point Collectionは「タグ:座標一覧」のセットを格納したものです。座標はワールド座標です。リスナーからの相対位置とは関係ありません。Add Color Point CollectionでBPからの追加が可能です。

つまり草木がある場所で虫の音を生成したいと思った場合、草木のオブジェクト自体にTagを設定するわけではなく、草木のある場所の座標をColor Point Collectionに保存するだけで、よしなに判断してくれるわけですね。

Soundscape Color Point Componentを使う方法

Soundscape Color Point Componentをアクターにアタッチし、タグを設定する。
アクターに設定するものであることから、動的に移動が可能なColor Pointと思われます。
※5.1現在、自分の環境ではSoundscape Color Point Componentにより設定したタグが認識されない現象に遭遇中です。