見出し画像

UE5 MetaSound 04 ~3Dサウンド化 サウンドの減衰(Sound Attenuation)について~ #UE5 #MetaSounds

【今回のポジティブワード】
あなたね、決断力がないんじゃなくて、決断する方法をしらないだけよ。 あのね、いい方を選ぶんじゃなくてあなたが思う方を選ぶのよ。 最初はいろいろ失敗するわよ、あなたバカなんだから。 でもそのうち自然といい方を選ぶようになっていくわよ。 最初からうまくやろうなんて自惚れてるんじゃないわよ。
  ~リトルメイ~

何かを始めると良く見せようとしてしまうけど、まずは自分の面白そうと感じたことから始めていく方がやっていて楽しいですね。失敗から次はこうしようというアイデアが生まれて自然と良くなっていくので、失敗した方がお得な気持ちになります。

【前回】

前回はModulatorノードを再現するについて書きました。今回は【3Dサウンド化 サウンドの減衰(Sound Attenuation)について】について書いてみます。
今回はMetaSoundでAttenuation(減衰)をどうやって設定するのかと減衰の設定について公式ドキュメントを読んで理解します。
前回からの続きになります。

1.配置したMetaSoundからの距離で聴こえ方を変える

同じ音源が何度も再生されていた方が、キャラクターを動かして距離による聴こえ方の違いが分かりやすいので、1つの音源をループ再生するMetaSoundを作成します。
[MS_Explosion]を複製して、[MS_Explosion01]を作成します。
WavePlayerだけのシンプルなMetaSoundに修正します。

同じ音源をLoop再生するMetaSoundを作成する

MetaSound[MS_Explosion01]をビューポートに配置して、[Play]ボタンをクリックします。

ビューポートに[MS_Explosion01]を配置して、[Play]ボタンをクリック

キャラクターをMetaSoundから近づけても、遠ざけても聞こえる音源の音量は同じに聞こえます。

音源からの距離は関係ナック同じ音量で聞こえる

距離に応じて聴こえ方を変えるために、Sound Attenuation[ATT_Explosion]を作成します。

 Sounds > Sound Attenuation[ATT_Explosion]を作成する

[MS_Explosion01]を開き、[General]ボタンをクリックします。
[Attenuation Settings]に[ATT_Explosion]を設定します。 

MS_Explosion01の [Attenuation Settings]に[ATT_Explosion]を設定

[Attenuation Settings]に[ATT_Explosion]を設定したMS_Explosion01を選択すると二つのSphere(球)が表示されます。
MS_ExplosionをFloorの角に移動して、外側の球がギリギリ対角線に入るくらいになるようにして、再び[Play]ボタンをクリックします。

MS_Explosion01をFloorの角に移動する

プレイした時にMS_Explosion01の距離に応じて音の聴こえ方が変わるのが分かります。
音源から離れるほど音が遠ざかって聴こえるようになります。

音源の距離に応じて音の聴こえ方が変わる

2.サウンドの減衰(Sound Attenuation)のVolume設定について

Sound Attenuationアセットには沢山の設定がありますが今回はVolumeの減衰についてのみ触れていきます。

ATTENUATION(VOLUME)のプロパティのみ触れる

まずはSphereの形状を設定する設定である、[Inner Radius]と[Falloff Distance]についてです。
[Inner Radius]を[400.0]から[500.0]に変更すると、内側の球の大きさが大きくなります。Unreal Engineの単位は1uu(Unreal Unit)=1cmなので、半径(radius)が4m(400cm)から5m(500cm)に変化したので球が大きくなりました。
[Falloff Distance]を[3600.0]から[2000.0]に変更すると、外側の球が小さくなりました。[Falloff Distance]の数値はInner Radiusの球の外側から、外側の球までの長さになります。
[Inner Radius]+[Falloff Distance]=外側の球の半径

Innner RadiusとFalloff Distanceの数値について

Innner Radius内とFalloff Distance内のFalloff Distance外(外側の球の外)の音の聴こえ方についてです。
・Inner Radius内:音源そのままのVolume
・Falloff Distance内:音の減衰が始まる(遠くなるほどVolumeが小さくなる)
・Falloff Distance外:音が聞こえなくなる
外側の円は音が聞こえる範囲とも言えます。
Inner RadiusとFalloff DistanceはAttenuationの範囲を指定するプロパティです。

Inner Radius内とFalloff Distance内外のVolumeについて

次に[Attenuation Shape]を[Box]に変更します。
2つのSphere(球)は形状がBoxに変わります。形状がBoxに変わったことで、Inner RadiusがExtentに変わり、内側の形状を設定する項目が変わりました。
形状が変わることで内側の形状を変えるプロパティが変化します。

Attenuation ShapeをBoxに変更すると、Sphere(球)からBoxに形状が変化する

[Attenuation Shape]には[Sphere(球)]、[Capsule]、[Box]、[Cone]の4つの形状を選択することが出来ます。それぞれ、内側の形状の設定とそこから減衰する距離を設定できるようになっています。

形状は[Sphere(球)]、[Capsule]、[Box]、[Cone]の4種類

最後に[Attenuation Function]です。
[Attenuation Function]は音がどのように減衰するかを設定するプロパティになります。
デフォルトで設定されている[Linear]は直線的に減衰します。Falloff Distanceの中間では半分のVolumeになります。

Attenuation Function:Linear

[Attenuation Function]を[Logarithmic]に変更すると、減衰がカーブを描いて変化します。近づくほど変化が大きくなり、遠くになるとゆっくり減衰していきます。

Attenuation Function:Logarithmic

他にも減衰を設定するカーブのプリセットが用意されています。Customは自分で独自のカーブを作成することが出来ます。その他のカーブのプリセットは公式ドキュメントにどのようなカーブを描くか書かれていますので設定を変更してプレイしたりしながら確認してみましょう。

Attenuation Functionは5種類+Custom

まとめ

サウンドの減衰(Sound Attenuation)についてはMetaSoundとSound Cueでは変化がなかったです。サウンドの減衰についてより深く知ることが出来ました。
次回はブループリントで音源の再生、停止をMetaSoundのTriggerノードを使って実装してみます。
その次はついにSound Waveを使用しないでMetaSoundの目玉であるプロシージャル(手続き型)なSoundの作り方について触れていきます。
MetaSoundで何が出来るようになったのか分かっていくので非常に愉しみです。


いいなと思ったら応援しよう!