はじめに
どうも鴉です。
今回はUnreal Engine4のアニメーション制御アセットである「Advanced Locomotion System V4」(以下ALS)
のFootsteps(足音)の鳴らし方を書いていきます。
ALSはかなり高度で複雑なアニメーション制御アセットであり、足音の関数もかなり応用されていたように見えますが、便利で汎用性も高いと思いました。
##中身を見てみる
これがALSの足音のサウンドキューです。
まず最初に、Step Walk/Run Jump Land、計4つに分けられています。次にModulatorで音量とピッチのMultiplyが設定され、Randomノードを通ってランダマイズされた音が鳴る仕組みになっています。
そして最後にSwitchノードです。
このノードはIntegerパラメーターのノードで、パラメーターの名前を指定してあげると、そのパラメーターに基づいて音を切り替えて鳴らしてくれます。
##Footstep_AnimNotifyを見てみる。
これがFootstep_AnimNotifyの全体像です。アニメーション側で配置した通知を受け取り、音量やピッチのMultiplyもここで設定できるようになっています。
上記のFootstep_CueはSpawn Sound Attachedというノードに置かれています。
そしてリターンノードの直前でSet Integer Parameterが繋がっています。
よく見てみると設定されている値の名前は、
先ほど見たスイッチパラメーターの名前「FootstepType」と同じ名前になっています。
さらにIn Intに繋がっているEnum変数の中身を見てみると、
サウンドキューで設定したカテゴリに切り替えられるようになっています。
Spawn Sound Attachedで鳴らす音を指定してあげて、そこからEnum変数をIntegerに変えて、サウンドキューでスイッチできるようになってます。
##Switchの使い方
サウンドキューの中にあるSwitchノードは、アニメーションの通知を設定する際に使います。
Footstep_AnimNotifyをアニメーションに配置し、そこからアニメーション毎にStepならStepのFootstep Type、WalkならWalk/RunのFootstep Typeを指定してあげます。
そうすることで、それぞれのアニメーションに適した音を、1つの通知と1つのサウンドキューで足音の実装と切り替えが出来るようになります。
AninNotifyは1つ1つの通知の設定を変えれるので、1つ目はLandで2つ目はWalkにする。みたいなこともできます。
##Enumの設定
このFootstepTypeはData→Enumの中にあるFootstepTypeというEnumで作られています。
上からStep Walk/Run Jump Landと設定されていて、これに基づいてサウンドキューもカテゴリを分けています。
デフォルトではこのような設定ですが、自分好みに変えたかったら、WalkとRunを分けたり、すり足とか引きずり、とかに変えてみても良さそうです。
##まとめ
ALSに使われていたこのサウンドキューの仕組みですが、足音以外にも、様々なアニメーションの音の制御に使えそうだなと感じました。
攻撃の大中小や魔法を属性ごとにスイッチ出来るようにしてみても面白そうです。
ALSはUE4の機能をフル活用したアセットなので、理解するのは最初難しかったですが、今回の勉強を通してUE4のサウンドの実装を今まで以上に深く理解できるようになったと思います。
この記事がお役に立てば幸いです。