はじめに
弟子 「先生、AIにランダムな足音を鳴らすコードを書かせるのはオワコンって本当ですか?」
先生 「残念ですがその通りなんです。今は
AudioRandomContainerに丸投げするのが正解です。」
というわけで、コードを書かずにランダムな足音を鳴らす方法です。
古くからUnityを使っている方であれば、最近のUnityはAudioSourceの音素材を入れる場所がAudioClipからIAudioGeneratorに変更されていることに気が付かれたかもしれません。
ここにAudioClipを入れてスクリプトからausioSource.Play()とすれば指定した音を鳴らすことができるのは以前と同じですが、
今回はAudioRandomContainerを使用した方法についての解説となります。
Audio Random Container を作成する
Projectウインドウで右クリック > Create > Audio > Audio Random Container
でAudioRandomContainerというアセットを作成します。
生成されたAudioRandomContainerをダブルクリックして
Audio Random Container をOpenします。
ランダムに鳴らしたい音をセットする
AudioClipsの部分に、ランダムで鳴らしたい音をセットします。
ひとつの音をピッチや音量を変えて鳴らしたい場合は1つだけセットすればOKです。
AudioClipをまとめてドラッグ&ドロップすれば一度にセットすることができます。
また、各音の音量がバラバラの場合は、各音の後ろにある0dBの部分を調整することで音量を合わせる(ノーマライズする)ことができます。
パラメータを調整する
- Trigger - Automatic (スクリプトから呼ばなくても音が鳴る)
- PlaybackMode - Sequential (リストの上から順番に鳴る)
- AutomaticTriggerMode - Offset (音が鳴り終わってから次へ)
- Loop - Infinite (無限になり続ける)
にセットしてから右上の再生ボタンを押すと、
セットした音が上から順になり続けます。
その他のパラメータの説明は以下の通りです
- Trigger - Manual (スクリプトからPlay()すると音が鳴る)
- PlaybackMode - Shuffle (リストをシャッフルしてから鳴らす)
- PlaybackMode - Random (毎回ランダムで音を鳴らす)
- PlaybackMode - Random - AvoidRepeatingLast(直前n回と同じ音を鳴らさない)
- AutomaticTriggerMode - Pulse (次々と音を鳴らす)
- Loop - Clips (指定した数だけ音を鳴らす)
- Loop - Cycles (AudioClip数*回数だけ音を鳴らす)
また、各項目の右端にサイコロのボタンがありますが、
これを押すと
音量やピッチを毎回ランダムに変更することができます。







