2014年12月04日

ゲームのアップグレード (36) | 3DサウンドとBGMの実装

じゃ今回は、3DサウンドとBGMの実装を!

3D効果音を爆発エフェクトの効果音に使ってみる
さて、もともと3Dサウンドって、あんまし関係ないゲームなんだけど、無理矢理爆発の効果音で使ってみますね。
爆発の位置によって、若干音が違ってくるはずなんだけど....

爆発音は、"UL_FS_Low_Gun_Boom" って音源データを使っていきますね。
設定はこんな感じ。
Screen Shot 2014-12-02 at 2.14.12 AM.png

で、このデータを、今度はちゃんと設定した AudioSource を、Explosion のプレファブにくっ付けます。
Screen Shot 2014-12-02 at 2.21.55 AM.png
この設定で、爆発エフェクトが Awake したと同時に、この AudioSource で設定してある、"UL_FS_Low_Gun_Boom" が鳴り始めるはず!しかも Transform 位置をチェックしていい感じに鳴らしてくれるはず!!

オッケー!ヘッドフォンじゃないと確認できないけど、ちゃんと音変わってるっぽい!!うん、多分大丈夫!


BGMを鳴らす
さて今度はBGM。aka Back Ground Music です!
今、ゲーム中のBGMしか鳴らす予定なくて(そんな曲持ってない、ゲーム中もたまたま見つけたw)、そんな凝った物は必要ないんだけど、一応今後を見据えて、曲のクロスフェードなんかも対応した形でコード書いてみました。
まずは、Unity側からね!

今回は、BGM用に、BGMManager っていう GameObject を作りましたよ。
Screen Shot 2014-12-02 at 8.14.14 PM.png
で、その GameObject のコンポーネントはこんな感じ。
Screen Shot 2014-12-02 at 8.15.34 PM.png
2曲同時に鳴らせる様に、AudioSource は二つ用意(中身は同じ設定)。曲は、AudioClip は管理クラスのYGBGMで保存。
そのYGBGMはこんな感じ。
Screen Shot 2014-12-02 at 8.18.42 PM.png
起動時に、自分にくっ付いてる AudioSouece を全部引っ張って来てリストに保存。(36行目)
Screen Shot 2014-12-02 at 8.21.59 PM.png
PlayBGM(54行目)で、指定のBGMをフェードイン時間とフェードアウト時間を指定してプレイ。
フェードアウト時間は、演奏中のBGMがあった場合のフェードアウト。
これで、勝手にクロスフェードをする形になるはず。
フェードイン、フェードアウトのボリューム操作は、どっちもコルーチンで管理。後でのせますね。
最後に、演奏開始した曲番号と、使った AudioSource の番号を辞書に保存(71行目)。

76行目からが、演奏停止処理(フェードアウト付き)。
86行目からが、全部のBGMの演奏停止。

こっからがフェードイン&アウトのコルーチンね。
Screen Shot 2014-12-02 at 9.33.15 PM.png
単純に線形補間なんで、フェード時間と経過時間を比べて割合を算出してるだけ。
一応、マスターボリューム(まだ無いけど)の設定に合わせて、音量が変えられる様にしたつもり。

さ、実行結果は....大丈夫ですね。ちゃんと動いてる!!

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪



posted by やまけん at 10:36| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: