Unityのサウンドの根っこゲーム制作をしているといつも「音が入ると途端にゲームらしくになる!」と感動します。音はゲームを印象付ける極めて大切な要素だと再認識させられる瞬間です。そんな大切な要素「音」、Unityは簡単に鳴らす事が出来る仕組みが整っています。簡単なのですが、それ以上の所が無いのもまたUnity。そこで本編ではゲームで使えるサウンドシステムを考えてみます。何はともあれ、Unityでどうやって音を鳴らすかをざっと見て行く事にしましょう。音の素となるのはもちろんサウンドファイルです。UnityがサポートしているサウンドファイルのフォーマットはOggVorbisと非圧縮のwavです。mp3などもリソースとしてインポートできますが、時間かかるは劣化するはなので、なるべく対象フォーマットにした方が良いと思います。oggは圧縮されたファイルなので、再生時に展開が行われます。再生にCPUのパワーを使うという事です。wavはそのままさくっと音を出せますが、容量が大きいためあまり長い音だとメモリをガッツリ食われます。以上の性質から、oggはBGMに、wavはSEに使う事になります。実際にUnityに音を入れてみましょう。(kaifuku.wav)ありがとうございます(^-^)。UnityのProjectウィンドウにファイルを直接ドロップするか、Assetsフォルダ以下にファイルを置くと、勝手にインポートされます。追加は極めて簡単です(^-^):上の黄色いアイコン、これは「AudioClip」と言います。AudioClipは音そのものを表しています。実はこのまま直には使えません。Unity上でサウンド(AudioClip)を扱うには、Audio系のコンポーネントにそれを渡す必要があるんです。音を鳴らす人「AudioSource」AudioClipは、言うならばカセットとかCDとかDVDのような音楽メディアです。いうメディアはプレイヤーが無いと音が鳴りません。Unityも同様でAudioClipを鳴らすためのプレイヤーが用意されています。それが「AudioSource」です。AudioSourceはコンポーネントなので、ヒエラルキ上のGameObjectに追加して使用します。これは例えば「キャラクタにくっつけてキャラの位置から色々なSEを出す」という概念なわけです。今はとりあえず音を鳴らしたいので、ヒエラルキに空のGameObjectを追加しましょう。Empty]で追加できます。名前は何でも良いのですが「AudioSource」としておきます。Clip]がもうありますよね。他にもいくつか項目があります。今はデフォルトのままで鳴らしてみます。Clip(Encounter_loop)をドロップします:さ、これでGameを再生してみましょう。軽快なBGMが再生と同時に鳴りました(^-^)。ヒエラルキにもう一つ空のGameObjectを追加して「AudioResourceSE」という名前にします。Clip「kaifuku」をドロップしてGameを再生してみます:「ピュロリロリ〜(SE)」「♪♪♪♪〜〜(BGM)」とSEとBGMが同時になりました。Awakeがオンの時)。鳴らすだけなら至って簡単です。Sound.」という表記。これ、とても面白いんです。実は、先程鳴っていた音は「3D空間」のある位置で鳴っているんです。音が発生位置を持っているという事は、場所によって聞こえ方が変わるという事です。Listener」です。Listener」が聞いた音なんです。Listenerコンポーネントが最初から付いているんです:どうしてカメラに付いているか?これはUnityが3D空間を歩き回るようなゲームを想定しているためです。ゲーム内で敵キャラがうろうろしているとします。敵キャラに足音のSEを付けておくと「ざっくざっく」とその位置から音が鳴ります(音源)。カメラは大抵自キャラの背後について回るか、FPSならカメラ自体が本体とみなされるため、これを聞く人にすると、敵に近付くほど足音が大きくなるわけです。実際に先程のBGMやSEが付いたAudioSourceを原点に置いて、カメラを原点近くにすると音が大きく:でか!(音が)。次は引いてみます:うんと音量が小さくなりました。前後だけでなく左右に振るとちゃんとステレオになります。それだけでなく、何と音源の位置に向かって速く進むと音が高くなり、通り過ぎるとピッチが下がるドップラー効果までシミュレートしてくれます!面白〜い!ただ、SEのドップラー効果は良いとして、BGMまでピッチがふにゃんとなるととても変ですよね。BGMはいつでも一定の音量で鳴って欲しいわけです。そこで、BGMは3Dサウンドにしないようにします。Sound]のチェックを外します。Inspectorの下の方にある[Apply]をクリックして設定を確定します。これでサウンドは2Dサウンドとなり、カメラの位置に関係なく一定音量で鳴るようになります。このように、ヒエラルキベースの静的な状態なら、音を鳴らすのも聞くのもとても簡単です。ゲームは始まった瞬間に音が鳴る物ではありませんよね。絶妙なタイミングで音が鳴る事で没入感が生まれるわけで、「特定のタイミングで音を鳴らす」という事が出来ないといかんわけです。それをどうやるのか?次章からじっくり考えてみましょう。