Unity & Wwiseで足音を付ける Unity編
Wwise編で下準備が整いましたのでいよいよUnity側で音を付けていきます!
Unityで足音を付ける記事はすでに幾つかネット上にあります。
ですのでWwiseがかかわる部分のみ書いていきます。
上記Qiitaにも記載されていますが、Animation Eventを用いて音を鳴らしていくので、
ざっくりですがこの流れが発生します。
モーション中にイベントを発生させる方法は上記Qiitaに記載されておりますので、ここでは割愛させて頂きます。
最初にいきなりUnityのプロジェクトを立ち上げてもそれはWwiseと結びついていないのでUnityにWwiseをintegration(統合)する必要があります。
方法はこちらでも参考にしていただければ。
integrationができ、Audio Listenerの位置とAkBankの読み込みが出来れば以下へ。
イベントを受け取ってWwiseに渡す
アニメーション中に発生したイベントは誰に渡すか教える必要があり、サウンドデザイナーには難易度の高いC#を書く必要が出てきます。
とは言えこれを書けるようになってしまえばモーション中の音は何でも鳴らせるようになるので頑張りどころです。
今回必要なプログラムは以下です。
数行しかありませんが、これでモーション中のサウンドが再生されるようになります。
文字列の意味
各文字列の意味はこちらに詳しく記載されております。
雑に答えるとfootstep_soundという箱の中にfssoundというイベントが呼び出されるとfootstepsに割り当てられてるサウンドが再生されるという内容が含まれています。
ですので、逆にアニメーションの中でfssoundというイベントが発生しなければ音は再生されません。
これでアニメーションが再生されれば音が鳴る状態になりました。
マテリアルに合わせた音を鳴らしていく
さてここからはいよいよサウンドデザイナーなのにも関わらず3Dオブジェクトも触れていきますが、ステージを実際に作られる方にお任せしたほうが良いと思います。
考え方としては決められた空間の中に入るとSwitchが切り替わるという形です。
まず、シーンの中で3D Object>Cubeを選択し箱を出現させます。
ですが実際にゲーム内にで表示されてはいけませんので、Cubeを選択すると右のInspectorにコンポーネントが一覧で表示されますので、Mesh Rendererのチェックボックスをオフにします。
この状態ですと見た目は消えていますが、characterは移動すると箱の当たり判定によって阻まれますので、CubeのコンポーネントにあるBox ColliderにIs Triggerというチェックボックスがあるのでこれをオンにします。
これで、この箱がトリガーとしての役割を果たしてくれるようになります。
次にCubeにAdd ComponentからAk Switchを選択しこの箱にWwiseに対してのスイッチの役目を果たすよう命令することができるようになります。
今回はこのCubeにcharacterが入ると音が変わるという動作を行いたいので、Trigger On:をAkTriggerEnterにし、Cube以外の対象物が入った時点で変わるのでUse Other Objectにチェックを入れます。
そして、Name:に作成した鍵名を入れるとcharacterが箱に入った瞬間指定された足音が出てくるようになります。
あとは箱の形を地形に合わせて変更すれば見事地形に沿った足音が再生されるようになり、さらにランダムで再生され、同音連打を回避できるようになります。
なるべく丁寧に書いたつもりではありますが、自分に対してのメモという点もあり、ところどころ端折っていますので解らないことなどありましたら、コメント書いていただけますと幸いです。