LoginSignup
3
0

[UE5] 地面のマテリアルで音を切り替える

Last updated at Posted at 2023-12-07

概要

何番煎じかもうわかりません。
足元のマテリアルに設定されているPhysical Materialを監視して、音の種類の切り替えをするようなものです。
それなりに端折りながら記載してます。

本編

1. MetaSoundで音の用意

MetaSoundである必要はありません、なんとなくです。

Audio から MetaSoundSourceを選択して、適当に音源を一つ用意します。
image.png

切り替えを試すためだけなので、適当でいいです。
image.png

実際は二つ以上欲しいですが、手間なので上記のほかにStarterContentの音源を一つ利用します。

2. Pysical Surfaceの作成・設定

Project Settingsを開き、そこで設定ができます。

ここでは命名のみです。SurfaceType1にOne、SurfaceType2にTwoという名前で設定をしておきます。
image.png

3. Physical Materialの作成

Physical Materialを作成します。

Physical Surfaceで設定したSurface Typeの個数分作成します。
image.png

適当でいいので、パラメータはほぼ弄らず、Surface Typeに先ほどProject Strringsで設定したものを設定します。
image.png

4. MaterialにPhysical Materialの設定

判定用のマテリアルを作成します。

Physical Surfaceで設定したSurface Typeの個数分作成します。
image.png
マテリアルのPhys MaterialにPysical Materialを設定します。
image.png

5. オブジェクトにマテリアルを張ってレベル上に配置

このような形にしておきます。
image.png

6. プレイヤーの中心から真下に向かってレイを飛ばしてSurfaceTypeを取得する

プレイヤーキャラクターのBP内でレイを飛ばすようにします。
image.png

レイはLine Trace By Channelを用います。
レイの位置と距離に関しては、それ用に見えないオブジェクトを配置することでやりやすくしました。
そして、返り値のOut HitからGet Surface Typeを取得します。後ほどのためにTypeの値を保持するようにします。
image.png

Print Stringでどういう値が出るか一応確認して見るとこのような状態です。
image.png
image.png
image.png

地面のマテリアルに応じて…という点に関してはこれで出来てるかと思います。

7. アニメーションの特定のタイミングで音を鳴らすためのAnim Notify

そのためにAnim Notifyを作成します。
image.png

OverrideからReceived Notifyを選択します。
image.png

中身はこういう感じにします。やっていることは箇条書きしておきます。端折ります。

  • プレイヤーからTypeの値を取得する
  • Typeに応じて鳴らす音を切り替える
  • metaというMetaSoundSource型の変数を作成し、作成していたMetaSoundを設定する
    image.png

8. アニメーションの特定のタイミングで音を鳴らすための設定

音を鳴らしたいアニメーションのほうで先ほどのAnim Notifyを設定します。
image.png

とりあえずTrackを作成します。
image.png

Add Notifyから先ほど作成したAnim Notifyを設定します。
image.png

足のタイミング分追加したら終わりです。
image.png

余談

WwiseとADX2LEについてはこちらでまとめていました。

Wwiseの場合

ADX2LEの場合

Pysical Materialについては記載無かったです…。

3
0
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
3
0