最低限のサウンド再生について

今作っているゲームがようやくあとちょっとで完成になりました。
タイトルも『Black Obsidian』に決めました。
完成の折には無料で公開したいと思っておりますので皆さんぜひプレイしてみてください!

完成前の最後の実装で最低限の効果音とBGMを入れなくては、ということで…


効果音

最低限のということなので今回は音を発するアクターに効果音を紐づけてレベルに配置など凝ったことはせず、銃の発砲音とかエンカウント音とかドアの開く音とかだけにしました。

エンカウント音とかドア音は音が発するタイミングがBPから取りやすいので、BP上でそれが発するタイミングで皆さんご存知Play Sound 2Dノードを使いました。
単発wavファイルを単純に発音するだけならコレ


銃の発砲音はアニメーションに紐づけると楽なので発砲アニメーションに効果音を埋め込む方法をとりました。
フレームの頭にPlaySoundを通知
詳細の所でwavファイル等を設定


BGM

BGMも場面に合わせて効果音と同様にPlaySound2Dを叩く感じと似ているのですが、途中で再生・停止をする必要があるのでちょっと工夫しました。

曲の再生・停止はレベルBPでやると何かと便利なのでレベルBP上で…
ステージ開始時はレベルBPのBeginPlayのところでCreate Sound 2Dノードでwavファイル等を指定、ReturnValueを変数化してその変数をPlayノードで叩いて曲を再生開始!
BGMという変数にReturnValueを代入してPlay

この時、あらかじめ曲の方の設定でループをオンにしておきます。
画面下のLoopingをチェック

CreateSound2DノードのAutoDestroyにはチェックが入っていても入っていなくてもループ曲に関しては変わらないみたいです。

途中で曲を変えたいときにはStopノードでBGMを止めて、別曲をさっきと同様にCreateSound2Dで指定してさっき作った変数に代入してPlayノードで再生開始。
変数「BGM」をターゲットにStop

これで最低限のサウンド再生はできるんじゃないでしょうか?
この程度なら簡単ですね!

ちなみに結構重要ですが、OpenLevelすると曲は止まります。
OpenLevelするところ全部でBGMストップする必要が無いので便利ですが、NowLoading表示と同様にロード中に曲を鳴らすことはできないですね。
パーシスタントレベルに入れておいて曲を叩いてからLoadStreamLevelでサブレベルをロードすればできそう。

コメント

このブログの人気の投稿

フィールド⇔バトルについて

Level Streaming完全に理解した(わかってない)