こんにちは!こちらの記事では、ワールドにBGMを流す方法を紹介していきます。
では早速やっていきましょう!
BGMを追加する準備

この記事では無料アセットの RPG Poly Pack – Lite を使って作ったワールドに適用する例を紹介します。(※こちらのassetには床にコライダーが設定されていません。コライダーの設定方法はこちらの記事を参照ください)
すでにワールドを作っている方は、お持ちのSceneデータを使ってやってみましょう!
音声ファイルをUnityに取り込む

ご自身のファイルから取り込みたい音声ファイルを、「Projectビュー」にドラッグ&ドロップで追加することができます。「Projectビュー」内に音声ファイルが表示されていれば大丈夫です!ファイル形式は一般的な形式である「mp3」「wav」であれば問題なく読み込めます。その他の形式についてはこちらを参照ください。
Audio Sourceの追加
UnityでBGMを流す場合、Audio Sourceというコンポーネントを追加する必要があります。今回は空のGame Objectに追加していきたいと思います。

まずは、Hierarchy内で「Create Empty」を選択して、空のGame objectを作成します。

作成した「Game Object」の「Inspector」>「Add Component」>「Audio Source」を選び追加します。

上記のコンポーネントが表示されていれば、大丈夫です!
ワールドにBGMをながしてみる
ここからは、ワールドにBGMがちゃんと流れるように「Audio Source」のパラメータを設定していきたいと思います!

まずは流したいBGMを設定しましょう!パラメータの「Audio Clip」の欄の右端に〇のようなアイコンを左クリックすると、「Select AudioClip」というウィンドウが開きます。このリストの中から、ワールドに流したいBGMを選択します。

各種パラメータを上記のように設定しました。「AudioClip」のところには先ほど選択した音声ファイルが入っていますね。「Loop」とは音声ファイルが最後まで再生されたら、再び最初から再生するかを制御する項目です。ワールドで一度きりしかBGMが流れないのは寂しいので、ループしてくれるようにチェックを入れました。「Volume」は流れる音声ファイルの音の大きさです。値を「0.2」に設定すると、お友達とのコミュニケーションを取りやすい音量になります!
以上でワールド全体にBGMが流れるようになります。シーンを実行して確認してみましょう!
特定の場所のみでながれるBGM
先ほどはワールド全体で流れるBGMを設定しました。次は特定の場合に行った場合にBGMが流れるようにしたいと思います。

今回はこちらの家に近づいたらBGMが流れるようにしたいと思います。先ほど作成した「Audio Source」コンポーネントを追加した「GameObject」を動かして「Position」を家に合わせます。

次に「Audio Source」のパラメータを上記のように設定しました。先ほどと違うところは、赤枠のところになります。「Spatial Blend」とは、値が「0」であるとどの位置にあっても同じ音が聞こえます(2Dサウンド)が、値が「1」に近づくにつれて距離関係の影響を受ける度合いが高くなります(3Dサウンド)。今回は特定の場所、つまり、特定の距離になったら聞こえ始めるようにしたいので、値を「1」にしています。
「Volume Rolloff」は音量がどのように変化するかを制御することができます。今回は近づくにつれて徐々に大きくなってほしいので、パラメータは「Linear Rolloff」を選択しました。

またこのグラフは、グラフ上で右クリックで「Key」を追加することが出来て、自由に編集ができます!ぜひ試してみてくださいね!

「Max Distance」は音が聞こえる最大距離です。この範囲を超えると音が聞こえなくなります。今回は家を包むくらいで値を「10」にしてみました。また、「Min Distance」というパラメータも存在しますが、こちらは最大音量が聞こえる範囲を指定できます。
以上がワールドにBGMをながす方法でした!音があるだけでワールドの雰囲気がガラッと変わると思うので、ぜひ試してみてください!