上記記事ではBGMの再生はできましたが、BGM切り替えがスムーズではありませんでした。また、オーディオファイルをインスペクタ上から一つ一つセットしなければいけないなど、いろいろと不満が残っていました。
それらを解消すべく作り直してみたので紹介します。
ダウンロード
UnityPackage
手っ取り早く使いたい方はこちら。
https://github.com/naichilab/Unity-BgmManager/archive/master.zipソースコード
GitHubで公開してますhttps://github.com/naichilab/Unity-BgmManager
これ以降は使い方の説明とかです。
やりたいこと
- BGMを再生できること。
- とにかく簡単に扱えること。
- BGMのフェードイン、フェードアウトに対応すること。
- フェードインとは:音量0からゆっくり大きくなっていくこと
- フェードアウトとは:音量がゆっくり小さくなっていくこと
- BGMのクロスフェードに対応すること。
- クロスフェードとは:フェードアウトとフェードインを組み合わせてBGM切り替えを行うこと
- フェード時間とかを調整できること。
意識したのはこれくらい。
とりあえずBGMだけです。
SEについてもそのうち作ろう。
とりあえずBGMだけです。
SEについてもそのうち作ろう。
サンプル
Hosted by UnityRoom.com
PlayボタンでBGM再生開始。他のBGMへ切り替える際、少し重なって聞こえると思います。これがクロスフェード。
(Playを押してから音が出るまでにちょっと時間があるので分かりづらいかな?)
使い方
Unityプロジェクトを開く
新規Projectでも既存のProjectでもなんでもOKBgmManagerのダウンロード
https://github.com/naichilab/Unity-BgmManagerこちらのURLにある”Download ZIP”ボタンからダウンロード
BgmManagerのインポート
ZIPファイルを解凍して出てくるBgmManager.unitypackageをダブルクリックしてUnityに取り込む
サンプル不要ならチェックを外してください。
※サンプルに同梱したmp3ファイルはSHW様(http://shw.in/)提供のものです。
サンプルの実行
SampleフォルダにあるSampleシーンを開きます。HierarchyビューにBgmManagerが配置されていれば準備完了です。
実行してBGMを再生できる事を確認してください。
サンプルを実行するだけならこれで終わり。これ以降は各自用意されたBGMファイルを再生する方法と、スクリプトからの呼び出し方法の解説です。
BGMファイルの追加
BGMファイルは下記フォルダに存在するものが自動的に読み込まれます。・Resources
┗Audio
┗BGM
(Resourcesフォルダはどの階層にあっても大丈夫です。)
フェードパラメータの調整
BgmManagerにはいくつかのパラメータがあります。- Debug Mode
- ONにするとサンプル実行と同じように簡易ウィンドウが表示されます。
- Target Volume
- フェードイン完了時の音量です。
- Time to Fade
- フェードイン(アウト)の開始〜完了までの時間です。
- Crossfade Ratio
- クロスフェードの重なり率を指定します。
- 0を指定した場合、フェードアウト完了を待ち、フェードインが開始されます。
- 1を指定した場合、フェードアウトとフェードインが同時に開始されます。
スクリプトからの再生・停止
すきなスクリプトから下記1行でBGMを再生できます。BgmManager.Instance.Play ("BGMファイル名");すでに別の曲が再生中の場合は、勝手にクロスフェード再生します。
停止する場合は下記いずれかを呼び出します。
//フェードアウト後、停止います。 BgmManager.Instance.Stop (); //ただちに再生を停止します。 BgmManager.Instance.StopImmediately ();
スクリプトからパラメータの変更
こんな感じ。BgmManager.Instance.DebugMode = false; BgmManager.Instance.TargetVolume = 0.8f; BgmManager.Instance.TimeToFade = 3.0f; BgmManager.Instance.CrossFadeRatio = 0.5f;再生・停止と一緒ですね。
参考サイト
- ぼくがかんがえたさいきょうのAudioManager【Unity】| (:3[kanのメモ帳]
- フォルダに置いたファイルを読み込むところはまんま
パクり参考にさせていただきました。
サンプルファイル提供
- SHW無料音楽素材
- 再配布も自由とのことで使用させていただきました。
その他
フェードイン(アウト)は直線的な補間しかしてないですし、インアウトをそれぞれ別の長さにすることもできないです。まぁとにかく簡単に使える物を目指したので今後も実装する事は無いかな…
是非使ってみてください〜。
→Unity系記事まとめ