物理シュミレーションに合わせた音の発生方法!

最近UE4

 

どうやったら物理シュミレーションに合わせて音を鳴らすことが出来るんだろう??

 

という悩みを抱えていた。

 

例えば、サッカーボールがあったとして

サッカーボールを蹴り飛ばすと、当然ですが「ポーン」と音を鳴らしてすっ飛んでいく。

f:id:Free_Gamer:20181007184333p:plain

すっ飛んだ先で何度もバウンドするだろう。その時もバウンドする度に「ポンッ」「ポンッ」と音が鳴る。動きが止むと音も当然出ない。

f:id:Free_Gamer:20181007185922p:plain

つまり、僕がしたいのは

 

物理シュミレーション中の物体が何かにヒットする度に音を鳴らす!

 

という事をしたいのである!

 

音を鳴らしたいアクターの作成。

「BP_SimulatePhysicsActor」という名前にした。

f:id:Free_Gamer:20181007201518p:plain

SimulatePhysicsはチェックを入れておく。

f:id:Free_Gamer:20181007201706p:plain

 

イベントグラフ

f:id:Free_Gamer:20181007202346p:plain

SetNotifyRigidBodyCollisionで物理シュミレーション中に何かにヒットしたかのどうかの通知をオン。

Google翻訳

SetNotifyRigidBodyCollision・・・剛体衝突の通知を設定する

f:id:Free_Gamer:20181007202541p:plain

実際物理シュミレーション中に何かにヒットした時、通知が行われているかを確かめてみた。

何かにヒットする度に「1」ずつ画面左上にカウントされていく。

youtu.be

しっかりカウントされてるので、間違いないだろう。

 

このアクターが何かに衝突した時の力(A)が、(B)に入れた数値より小さい場合に音を鳴らす処理を行う。

f:id:Free_Gamer:20181007203840p:plain

このアクターが何かに衝突した時の力は、NormalImpulseに格納されている。

f:id:Free_Gamer:20181007204108p:plain

 

実際にやってみた。

youtu.be

 

アクターが跳ねる度にしっかりと音が鳴っていた。

 

やっていること自体は単純だが、覚えておいて損は無いだろう。

 

それではまた!^^ノシ