この記事シリーズでは、Unity公式が配布しているゲーム「2D Character」にWwiseでサウンドを組み込む方法を綴っています。
※当ブログではMacOS環境で作業を進めています。他OSを使用している場合は表示や操作方法に差異がある可能性があります。
はじめに
ゲームの中ではしばしば複数のサウンドをランダムに再生させる状況が発生します。
例えば、
- 足音
- 生物の音声、鳴き声
- ショットガンの薬莢が落ちる音 等々…
ゲームにおいて効果音のランダム性は必ずしも重要なものではありませんが、無作為で規則性のない効果音をうまく活用する事はゲームのリアリティを高めることにつながります。
今回は効果音をランダムに再生するシステムを使い、足音の効果音を実装しようと思います。
-1.Random Containerを作成する
-2.オーディオをインポートしトリミングする
-3.ランダムに再生されているかを確認
-4.Eventを作成し「Footsteps_Normal」を紐づける
-5.SoundBankを書き出す
-6.Unity側の設定へ
1.Random Containerを作成する
まずはRandom Containerを作成しましょう。
Random Containerとは?
Random Containerはランダム再生に特化したオブジェクトです。
このオブジェクトの中に複数のサウンドを入れ再生すると、ランダムにその中の1つを選び再生します。
それぞれのサウンドには再生される確率を設定したりすることができます。
Random Containerの作成
Audioタブを開き、Actor-Mixer Hierarchy> Default Work Unitを右クリック
New Childから「Random Container」を選択してください。
名前は「Footsteps_Normal」にしておきましょう。
2.オーディオをインポートしトリミングする
オーディオファイルをダウンロードしインポート
次に足音のサウンドを作ったので、下記のURLからオーディオファイルをダウンロードしてください(著作権フリーです)。
http://commons.nicovideo.jp/material/nc220225
先ほど作成した「Footsteps_Normal」を右クリックし、「Import Audio File」からダウンロードしたオーディオファイル「nc220225」をインポートしてください。
4つの別々のサウンドにトリミング
このオーディオファイルを聞いてみると、ピッチや強さが異なる4つの足音が再生されます。
これを別々のオーディオとして分割しましょう。
「nc220225」を選択し、command+Cでコピーした後command+Vで貼り付けすると自動でその場に追加されますので、計4つに増やしましょう。
次に、トリミングして4つの別々のオーディオにしましょう。
1つ目の「nc220225」を選択し、右側中段の「Contents Editor」ウインドウの中のアイコンをダブルクリックしてください。
すると「Source Editor」ウインドウが開き、オーディオのトリミングが可能になります。
1つ目の足音の波形を切り取りましょう。
左下と右下にある四角のアイコンを移動させ再生範囲を決定します。
効果音の発音タイミングにずれがあってはいけませんので、再生ボタンで実際の音を確認しつつ調整しましょう。(control+shit+マウスホイールで拡大、縮小ができます)
この調子で別々の箇所をトリミングし、残り3つの足音も作成しましょう。
3.ランダムに再生されているかを確認
これで4つの足音がランダムに再生されるオブジェクトが完成しました。
試しに「Footsteps_Normal」オブジェクトを選択した状態で再生ボタンを何度も押してみましょう。わかりにくいかもしれませんが、よく聞くと微妙に違う足音がランダムに再生されていることがわかると思います。
(少し音量が小さいので著者はボリュームを5に変更しました。適宜調整してください。)
補足
このランダム再生には「Standard」と「Shuffle」という2つの形式があります。これは該当のRandam Containerオブジェクトを選択した状態で右側のProperty Editorから変更できます。
「Standard」は完全に無作為なランダム再生の形式で、2回続けて同じオーディオが再生されることがあります。
「Shuffle」は全てのオーディオが再生されるまで、同じオーディオが再生されることはなく、必然2回続けて同じオーディオが再生されることはありません。
したがってよりリアリティを追求したい場合には「Shuffle」を選択するといいかもしれません。
4.Eventを作成し「Footsteps_Normal」と紐づける
Eventの作成
次にゲームエンジン側が呼び出すEventを作成しましょう。
Eventタブを開き Events>Default Work Unit を選択し上部のEventアイコンをクリックするとEventが追加できます。
名前はシンプルに「Footsteps」にしましょう。
「Footsteps_Normal」を紐付け
この「Footsteps」Eventに先ほど作成した「Footsteps_Normal」を紐付けましょう。
「Footsteps」Eventを選択し右側の「Event Editor」ウインドウのAddボタンをクリックし、「Play」を選択します。
作成した項目の「Target」の欄に「Footsteps_Normal」をドラッグします。
これで「Footsteps」Eventに「Footsteps_Normal」が紐付けられました。
試しに「Footsteps」Eventを選択した状態で、再生ボタンを何度か押すと足音がランダムに再生されるかと思います。
5.SoundBankを書き出す
最後にSoundBankに書き出し、Unityで反映させる準備をしましょう。
レイアウトを「SoundBank」に変更し「_2dCharacterSB」SoundBankを選択。
左下のEvent Viewerウインドウの「Footsteps」Eventを、右下のSoundBank Editorウインドウにドラッグアンドドロップします。
最後に全部チェックを確認しGenerate Selectedボタンをクリックしてください。
Completed with messageの表示が出れば成功です。
6.Unity側の設定へ
これでWwise側の設定は完了です。
次はUnity側で「Footsteps」Eventを呼び出すプログラムを作りましょう。
めんどくさいですが一緒にがんばりましょう!
次記事へGO!