備忘録とか、いろいろ。

主が備忘録として何かを記録します。

Unityで簡単に音量調整機能を付けることが出来る「AudioConfigure」の紹介

※この記事内で使用しているUnityのバージョンはUnity 2019.2.17f1 Personalです。

これからUnityで音を鳴らそうとしているそこのあなた。

「AudioConfigure」を使えば音を鳴らすだけでなく、簡単に音量調整することもできますよ
これを入れるだけでユーザーフレンドリなゲームになること間違いなし!!!

...ちょっと胡散臭すぎました。

今回は kankikuchi 様が公開している誰でも簡単に使えるAudioManagerに、少し手を加えて音量調整機能をくっつけました。是非ご一読あれ。


はじめに

このようになっている箇所は、クリックすると隠れている画像などが表示されます。
画像などはここに隠している箇所が多いです。


目次

1. 導入方法
2. 使い方
 2-1. BGM ・ SEを再生する場合
 2-2. 音量を調節する
3. オプション画面
4. サンプル
5. おさらい
 5-1. 音量を調節する
 5-2. オプション画面を開く
6. トラブルシューティング
7. まとめ
8. 最後に


1.導入方法について

以下のURLから「Clone or Download」→ 「Download Zip」を選択します。
https://github.com/mugitea7/AudioConfigure

詳しい説明

Clone or downloadをクリック。
Clone or downloadをクリック。
Download ZIPをクリック。
Download ZIPをクリック。


ダウンロードした.zipファイルを解凍します。
解凍したフォルダの中にある.unitypackageファイルをUnityにインポートします。
Assets内にドラッグアンドドロップ。
Assets内にドラッグアンドドロップしてインポート。

これで準備は完了です!


2.使い方

2-1.BGM・SEを再生する場合

ここは kankikuchi 様作成のもので、以下の記事にて詳しく解説されています。
誰でも簡単に使える最強のAudio(BGM, SE)Manager【Unity】


2-2.音量を調節する

AudioConfigure → Option_Mugitea → Prefabs と進み、VolumeManagerをヒエラルキードラッグアンドドロップします。

VolumeManagerをD&D
VolumeManagerをヒエラルキーにD&D


次に、音量を調節するためのスライドバーが必要です。が、これもデフォルトで付いてきます。

ヒエラルキー内で右クリックし、UI → Canvasを選択。ついでに Canvas Scaler 内の UI Scale Mode を Scale With Screen Size にしておきましょう。

Canvasを生成
Canvasを生成
Canvas Scaler 内の UI Scale Mode を Scale With Screen Size に
これで画面サイズの変更に対応できます。


(AudioConfigure → Option_Mugitea → Prefabs) → UIObjects から、"BGMVolumeSlider" と "BGMVolumeText" を Canvas の子に設定し、適当に位置を調整します。

Slider と Text を配置
Slider と Text を配置

これでBGMの音量を調整する準備は整いました。

試しにBGMを再生してみましょう。

Start内でBGMを再生する処理を書きます
こんなスクリプトを書いて

オブジェクトにD&Dです。
適当なObjectにアタッチします。

ゲームを再生してみると...

音量50でBGMが再生されている!
音量50でBGMが再生されている!

音量調節が完了しました。

スライダーを調整すると、右のテキストの数字と共に音量も調整されます。

音が大きくなった。
音が大きくなった。

しかも、この値はゲームを終了しても保存されています。

ゲーム終了の度に音量調整する必要はありません!!

SEの音量も同様にして設定することが出来ます。
なお、音量は最大音量に対する割合を出しています。デフォルトは最大80に設定しているので、音量を100にしても内部での実際の音量は80となっています。

VolumeManagerの各種設定項目について

これは表としてまとめておきます。

名前 機能
BGM(SE) Volume Key PlayerPrefsに登録するKeyの名称です。
今後の開発においてPlayerPrefsを扱う際、このKeyと同じ名称のKeyを作成しないように注意してください。
Default BGM(SE) Volume 最初にゲームを起動した際に適用される各種音量です。
Max BGM(SE) Volume BGM ・ SE の音量の最大値です。
音量を80以上に設定すると音割れが発生する可能性があるため、上限を設けています。
Dont Destroy On Load Scene遷移を行っても VolumeManager を破棄しないかの設定です。true推奨。


「使用方法はわかった、じゃあオプションをつくr...」

※カスタマイズ可能なオプション画面もついてきます。


3.オプション画面

AudioConfigure → Option_Mugitea → Prefabs から、"OptionManager"と"VolumeManager"、そしてヒエラルキー上から"EventSystem"の3つヒエラルキーに配置します。

OptionManagerとVolumeManagerをヒエラルキーにD&D
OptionManagerとVolumeManagerをヒエラルキーにD&D

ヒエラルキー上で右クリックし、UI → EventSystem
ヒエラルキー上で右クリックし、UI → EventSystem


スクリプトを書きます。
記述するのは、"using Mugitea.Option"(①)。
呼び出したいタイミングで"OptionManager.Instance.OpenOptionWindow()"と記述するだけ(②)。
閉じるときは"OptionManager.Instance.CloseOptionWindow()"と記述するだけ。(OptionWindowにはデフォルトで閉じるボタンが実装されています)
プログラムを記述
プログラムを記述

今回はEnterキーを押すとOption画面が開かれることにします。
これを適当なオブジェクトにアタッチします。

最後に、 AudioConfigure → Option_Mugitea → Scene の中にある"Option"シーンを Scenes In Build に追加します。

File → Build Settings...
File → Build Settings...

"Option"を Scenes In Build に追加
"Option"を Scenes In Build に追加


実行してみます。

Enterキーを押すとOption画面が開く
Enterキーを押すとOption画面が開く

(上記で記述したスクリプトでは)Enterキーを押すと、Option画面が開かれました。
Back ボタンを押すと画面を閉じることが出来ます。

もちろんOption画面はカスタマイズ可能です。

AudioConfigure → Option_Mugitea → Scene の中にある"Option"シーンをダブルクリックして開きます。

Optionシーン
Optionシーン

これが呼び出されるOption画面です。制作中のゲームの雰囲気に合わせた画面にアレンジしましょう。


4.もちろん、サンプルもついています

AudioConfigure → Option_Mugitea → Sample に、2つのサンプルを用意しました。

ボタンを押すとOption画面が表示されるサンプル(OptionSample)

ボタンを押すとOption画面が表示される
ボタンを押すとOption画面が表示される

タイトル画面にBGM・SE調整用のスライダーが用意されているサンプル(TitleSample)

タイトル画面に音量を調節するスライダーが付いているサンプル
タイトル画面に音量を調節するスライダーが付いているサンプル


5.おさらい

5-1.音量調整を行う場合


5-2.オプション画面を表示する場合

  • VolumeManager、OptionManagerをヒエラルキーに配置
  • "Option"シーンを Scenes In Build に配置
  • スクリプトを記述
  • Option画面のカスタマイズは"Option"シーンを開いて行う


6.トラブルシューティング

Scene 'Option' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.

"Option"シーンが Scenes In Build の項目に入っていません。
ここの手順に従い、"Option"シーンを Scenes In Build に追加してください。


7.まとめ

いかがでしょうか。
AudioConfigure をインポートするだけで音に関しては困らない...筈です!
皆様にご活用いただければ幸いです。

8.最後に

今回、kankikuchi 様 制作の AudioManager をMITライセンスに従い 使用・同梱 させていただきました。
また、今回作製した AudioConfigure も同様、MITライセンスに従っております。詳しくは同梱の LICENSE をお読みください。