自分だけに聴こえるローカルBGMをつくる

今回はPlay Audio Source Gimmickを使って、ローカルBGM(自分だけに聞こえるようにする)をオン・オフできるスイッチをつくります。

BGM を設定しよう

まずはPlay Audio Source Gimmickを使ってBGMを流せるようにします。

  • 右クリックまたは Unity 上部メニュー欄にある「Object」から「Create Empty」で空のオブジェクトを作成しましょう。
  • 名前はわかりやすいように『BGM』と変更します。
  • 作成したBGMに「Add Component」から「Play Audio Source Gimmick」を追加します。これを追加すると、自動的に「Audio Source」も追加されます。

まずは 「Audio Source」の設定からしていきます。

  • 「Audio Clip」の◎マークを押して、設定したい音源をセットします。
  • 最初から BGM が流れないように「Play On Awake」のチェックマークを外しておきましょう。
  • また、BGM がループするように 「Loop」にチェックマークを入れましょう。

次に「Play Audio Source Gimmick」を設定します。

  • Target を「Local Player」、Key を「bgm」、Parameter Type を「Bool」に変更します。

Play Audio Source GimmickはLocal Playerに設定することでどこでもローカルにできます。

Bool を用いることでBGMのオンオフがスイッチひとつでできるようになるためおすすめです。この設定が完了したら下記の画像のようになっています。

ローカルBGMを流してみよう

BGM のオンオフを切り替えるボタンを配置します。

  • Hierarchy を右クリックまたは Unity 上部メニュー欄にある「3D Object」から「Cube」で立方体を作成しましょう。

Interact Item Trigger」は使われたことを通知するトリガーです。

  • Target を「Owner」、Key を「SwitchBgm」、Value を「Signal」に変更します。
  • ローカルでオンオフの設定をするために Target を「Owner」にしています。

On Create Item Trigger」はアイテムが生成された時に通知するトリガーです。ここでは BGM のオンオフを管理するために使用しています。

  • Target を「Owner」、Key を「bgm」、Value を「Bool」に変更します。
  • 「Bool」にチェックマークを入れないことで、最初は音楽が流れていないことを宣言しています。

Player Logic」は、メッセージを読み取り、計算した結果をプレイヤーへメッセージとして通知するオペレーションです。

  • Target を「Player」、Key を「SwitchBgm」に変更します。
  • 次に「SwitchBgm」というメッセージをプレイヤーが読み取った際の処理を追加していきます。Key を「bgm」、「Bool」に変更してください。
  • ロジックの種類は『Condition』を使用します。『Condition』は引数1の値が true の場合は、引数2の値を返します。そうでない場合は、引数3の値を返します。つまりこのロジック一つでBGMのオンオフが可能になります。
  • 1つ目の引数は「SwitchBgm」を受け取るために RoomState に変更します。RoomStateはメッセージを読んで使用する場合に設定し、型と対象と識別子を指定します。今回はオンオフを決定する Bool を用いているため「Bool」を設定してください。
  • 2つ目、3つ目の引数は現在の状態がオンかオフかを判定するために利用しています。オンオフは定数を扱う Constant に設定します。

下記の画像のように設定できればOKです!

今回のギミックの処理のイメージはこんな感じです

これでローカルBGMの設定は完了です!早速試してみましょう🙌
※GIFでは音声が伝わらないため、画面に文字を表示しています。

BGMの音量を調節してみよう

BGM を設定した時に音が大きいと感じたら、Game View の Stats を押して Audio Level を確認してみましょう。Unity の Play ボタン「▶」を押すとリアルタイムで、現在表示されているシーンの音量が確認できます。

Unity の Play ボタン「▶」を押して、Audio Level の値を見ながら BGM の Volume を減らします。このとき変更した数値は再生をプレビューを停止するともとの値に戻ってしまうため数値をしっかり覚えておきましょう。
使用している音源にもよりますが、「Volume」の値を 0.1 ~ 0.2 程度に設定すると音量がちょうどよくなることが多いです。

これで調整前の Level が-13.7dB、調整後の Level が-42.1dBになりましたね。
BGM の Audio Level はおおよそ -40dB 付近に設定すると、音量バランスが大きく崩れることはありません。

記事をシェアしてワールド制作を盛り上げよう!