Unity:BGMと効果音をつける~公式チュートリアル 2Dシューティングに挑戦

Unity公式サイトに掲載されているチュートリアルの2Dシューティングに挑戦。今回はBGMと効果音をつけるステップを行いました。チュートリアルを進めながら変更した箇所などをピックアップしています。

前回の記事はこちら
Unity:背景と敵機のWaveを作成~公式チュートリアル 2Dシューティングに挑戦

音をつける

チュートリアルページ:音をつける
このステップの手順は次の通りです。

  1. BGMを付ける
  2. プレイヤーにショット音をつける
  3. 爆発音を付ける

プレイヤーにショット音をつける

こちらの手順で作成するスクリプト Emitter にコメントを追加。AudioSource コンポーネントを取得する処理は Start() 関数に移動しました。

サウンドのオン・オフを切り替える

ブログ記事へのゲーム埋め込みにあわせてサウンドのオン/オブの切り換えができるように改造します。

トグルボタンの作成

[Hierarchy]ウィンドウ > [Create]ボタン > UI > Toggle を選択。自動的に作成された Canvas の設定を変更します。
[Inspector]ウィンドウ > Canvas > Canvas Scaler (Script) > UI Scale Mode > Scale With Screen Size に変更。
Reference Resolution X1280 / Y 720 に設定しました。

Toggle オブジェクト の名前を Toggle Audio に変更します。

トグルボタンのコンポーネントに割り当てるテクスチャを用意。
[Hierarchy]ウィンドウ > Canvas > Toggle > Background と Checkmark のスプライトテクスチャを差し替えました。

AudioMixer アセットの作成と設定

複数のオーディオソースをまとめて管理するために AudioMixer を使用します。
[Project]ウィンドウ > [Create] > AudioMixer を選択。名前は AudioMixer に変更。

オブジェクト bgm、Player そしてプレハブ Explosion の Audio Source コンポーネントの Output を Master に設定します。

これで別々のオーディオソースをミキサーでまとめてコントロールできるようになりました。

AudioMixer のボリュームをスクリプトで制御

[Project]ウィンドウ > Assets > AudioMixer をダブルクリックして [AudioMixer]ウィンドウを開きます。

グループ Master をクリックして [Inspector]ウィンドウ > Attenuation を右クリック。Expose ‘Volume (of Master)’ to Script を選択。

[AudioMixer]ウィンドウの 右上にある Exposed Parameters をクリックして スクリプトからパラメータにアクセスするための名前を入力します。今回は パラメータ名を MasterVolume にしました。

スクリプト AudioManager の作成

スクリプトを割り当てる空オブジェクトを作成します。
[Hierarchy]ウィンドウ > [Create] > Create Empty を選択。名前を AudioManager に変更。
[Project]ウィンドウ > Scripts フォルダ内にスクリプト AudioManager を作成して、作成したオブジェクト AudioManager に割り当てます。

スクリプトのコードはこのようになりました。

AudioManager コンポーネントの設定

作成したAudioManager コンポーネントの変数フィールドに AudioMixer アセットと UIトグルボタンを割り当てます。

トグルボタンを切り替えた際の処理を設定します。トグルオンの際のボリューム値は基準の 0db よりやや下げて -10db に設定しました。

参考サイト

AudioMixer のボリュームをスクリプトから制御する方法はこちらのWebページを参考にさせていただきました。
Unity 5で音量を調整する方法 – テラシュールブログ

音の音量調整が少し分かりにくかったので、ここにメモします。 オーディオのグループ等については、ココにメモしています。 Unity5のオーディオ機能について(1) - テラシュールブログtsubakit1.hateblo.jp 音量の調整 単純にオーディオのボリュームを調整する場合は、AudioSourceを使用します。...

WebGL

ここまでの内容を動作確認用にWebGLでビルド。ゲーム画面右下のスピーカーアイコンのクリックで音声のオン/オフを切り替えられます。
画像クリックで再生(ファイルサイズ:約7MB)