Unityの足音の付け方とアセット

 今回はUnityの3Dゲーム制作で足音をつける方法と、必要となるアセットを紹介していく。
 方法は色々あるが、今回はアニメーションで足が地面についたら音を鳴らす方法を紹介していく。

Unityで足音をつける方法

足音のアセットを手に入れる
サウンド管理システムを作る
アニメーションから足音を呼び出せるようにする
スクリプト記述
目次にもどる

足音のアセットを手に入れる

 足音のアセットは色々あるがおすすめは以下(2023年8月現在無料)。
 Footsteps - Essentials

 金属、草、砂利、岩、タイル、木材、水辺など各地面それぞれについて足音が複数用意されている。しかも、それぞれの地面で歩いている時、走っている時、ジャンプした時の音が用意されている。無料でこの量と質は素晴らしすぎる。足音に関しては大抵この商品があれば十分だろう。

目次にもどる

サウンド管理システムを作る

 特に3Dゲームで足音を鳴らす目的としては大きく分けて2つ。
 ①足音の位置で敵を把握するという戦略性を確保する。

 ②敵の足音が迫ってくるなどの臨場感を確保する。

 以上2つのいずれかが目的の場合は3D再生で音を鳴らす必要がある。
 オーディオ設定がよくわからない場合、どうやって音を管理すればいいのか迷っている場合は以下の記事を確認してほしい。
オーディオ設定
サウンド管理

目次にもどる

アニメーションから足音を呼び出せるようにする

 プロジェクトビューから足音を出したいアニメーションのfbxファイルを選択する。
 インスペクター欄の一番下を見れば、以下のように3Dモデルが表示された画面が出るはず。

 もし、この画面が出ない場合は隠れている可能性が高い。
 下の方にマウスカーソルを置くと以下のように形が変わる。

 後はクリックして上にドラッグして放せば3Dモデル表示された画面が出る。

 3Dモデルの画面が出たら再生ボタンを再生して足が地面についた時点で止める(あるいは再生ボタンの右の空白部分を選択するとその位置でアニメーションが停止する)。

 停止させたら、上にあるEventsの項目を見よう。止めた位置に白線が入っているはず。
 そこを右クリックし、「Add Animation Event」を選択しよう。

 Eventsの項目に青い線ができ、選択すると以下の画面となる。

 Functionの項目にはNewEventと書かれているが、そこをわかりやすい名前に変えよう。例えばこの画像では右足がついた時なので、「FootR」と名前をつけた。同じ要領で左足についた時のイベントも作ろう。イベントが実行されるとFunctionの名前のメソッドが呼び出されることになる。
目次にもどる

スクリプト記述

 Animatorがついており足音付きアニメーションを再生するゲームオブジェクトに、以下のようなスクリプト(足音イベント以外は省略)を記述してアタッチする。
 FootRまたはFootLが呼び出されたら、Ashioto()のメソッドを呼び出す。
 Ashioto()ではRandom.Rangeを使って1~3のうちどれかの値をランダムで取得する。Random.Rangeがわからない場合は以下の記事を確認してほしい。
Random.Rangeの使い方
 各if文の中身では以前作ったサウンド管理システムで音を鳴らす処理を行っている。詳しくは以下の記事を確認してみてほしい。
サウンド管理
 今回は3種類の足音がランダムになるようにしてみたが、もっと増やしてもいいし逆に1種類でもそこまで違和感はない(今回はやっていないが地面の種類を設定しておきRaycastなどで取得して変えてもいい)。自分の作りたいゲームに合わせ臨機応変にやっていこう。

 続きの記事は以下。
死亡時アニメーション

Unityのゲーム制作まとめへ戻る

page top