[Unity]BGMを流す+Audio Mixerによる音量調節

効果音をつけるでは効果音を入れましたが、なんか寂しい感じ。 と思ったら、BGM入れていませんでした。 BGMは常に流しっぱなしにしていれば良いので効果音よりもある意味簡単。 一番手っ取り早いのは、「GameObject」→「Audio」→「AudioSource」として、「Inspector」タブの「AudioClip」の欄に音源を(もちろん「Project」タブにドラッグするなりして"インポート"してから)ドラッグすれば、シーン再生直後からBGMが流れるようになります。
z.png

BGMは自分で作っても良いですが、今回はFREE BGM DOVA-SYNDROMEさんからお借りしてきました。

一応音は出せることはわかりましたが、ボリューム調整機能もつけたいですね。 個々に調節するのはAudioSource.Volumeをスクリプトで変更したりすればできそうですが、「効果音、BGM合わせた全体の音量」を調節させたい時はどうするのでしょう。 と、いうわけで、新たな仲間を呼びます。その名も 「AudioMixer」。 

まず、「Assets」→「Create」→「Audio Mixer」として、Audio Mixerを作ります。

  あ.png  

次に、「Window」→「Audio Mixer」で、「Audio Mixer」タブ(ウィンドウ)を新たに召喚。

  ああ.png 

 こんなタブが表示されます↓

  あああ.png 

このタブの「Groups」の横の「+」をクリックして、「BGM」「SE」それぞれのグループを作成します。 この時「SE」が「BGM」の子になっていたらドラッグして上に持って行ってあげれば同列階層になるはず。ちなみに「Master」は全ての親なので「Master」より階層を上にはできません。 
できたら、Hierarchyタブから先ほどのBGM用のAudio Sourceを選択して、「Inspector」の「Output」欄にAudio Mixerの「BGM」グループをドラッグアンドドロップ。 で、同様に、効果音のAudio SourceにもAudio Mixerの「SE」グループをドラッグアンドドロップして準備完了。
  ここまでやってふと、 「あれ?BGM鳴らなくなってる?」 ということでBGMの「Audio Source」の「Insoector」タブを見直したら、「Play On Awake」のチェック外れてました。いじった覚えないのになあ。チェックつけたらまたシーン再生直後からBGMが流れるようになりました。 

ちなみに、BGMなので、繰り返し再生させたいですよね。これは、Audio Sourceの「Loop」というチェックボックスにチェックを入れるだけで実現できます。さすがUnity。  

さてさて。やりたいことは、スライダーに合わせて音量を調節すること。スライダーは、メニューの「GameObject」→「UI」→「Slider」で出てきます。 さて。スクリプトの出番かな。 ...と思ったら、マスターの音量をパラメータとして取得するためにはそのパラメータの名前を手動でセットしないといけない模様。 まず、「AudioMixer」タブのMasterをクリックしてInspectorに表示させます。で、その「Volume」を右クリックして、パラメータとして出力させる。

  aa.png 

それから、「AudioMixer」タブに戻って、「Exported Parameters」をクリック、右に(Volume (of Master))とか出ているパラメータ上で右クリックし、Renameを選択することで好きなパラメータ名にします。なぜマスターくらいデフォルトで名前付いてないのだろうか...? とりあえず私は「master」というパラメータ名にしました。 それで、「Hierarchy」タブで適当な場所にC#スクリプトを作って、

 
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Volume : MonoBehaviour {

	public UnityEngine.Audio.AudioMixer mixer;

	public void masterVol(Slider slider)
	{
		mixer.SetFloat("master",slider.value);
	}
}

のように書き込みます。で、これをスライダーに貼り付けて、変数「Mixer」の所にAudio Mixerをドラッグしてくる。さらに、「On Value Changed」の「+」をクリックしたあと、スライダー自身をここにドラッグ、プルダウンからさっきのスクリプトとその中の関数をそれぞれ選択し、さらにもう一度public変数にスライダーをドラッグしてくれば完成。

  w.png 

で、赤丸のところ一緒にしておいて、再生すると、スライダーで音量が変化するように。 よしよし。

コメント

このブログの人気の投稿

旧バージョンのiMovieを入れる方法

TWRP公式サポートされてないAndroid端末でシステムインストールした話

[UTAU] Garagebandで作ったボーカルメロディーをUTAUに読ませる