83.BGMを鳴らしてみよう
🐱では前回ページまでで基本事項について解説し終えたので、今回から実践っぽくBGMの鳴らし方について解説していきます。
①まずは簡単にBGMを鳴らしてみよう|実践
では最初に簡単にループするBGMを作成しましょう。まずはサウンドキューで作成していきます。
スターターコンテンツを含んだサードパーソンのテンプレートプロジェクトを使用していきます。
https://scrapbox.io/files/65ce2d690eb32f00247596a2.jpg
コンテンツブラウザでAudioフォルダを作成してサウンド > サウンドキューを作成して名前をBackgroundMusicにします。
https://scrapbox.io/files/65ce2d7d832e620024b9e4e2.jpg
サウンドキューを開いてWavePlayerを追加します。
https://scrapbox.io/files/65ce2d8b5ceeb400236d3db5.jpg
WavePlayerを選択した状態でSoundWaveにスタータコンテンツのBGM「Stater_Wind06」を設定し、looping(ループ)にチェックを入れます。
https://scrapbox.io/files/65ce2d98eb552a00285049f9.jpg
サウンドキューをレベルにドラッグ追加します。
https://scrapbox.io/files/65ce2db42d037e00257d5e83.jpg
プレイすると音が再生されるのが確認できます。
https://youtu.be/nYr6MVTP3e4
音量などの設定はサウンドキューやウェーブなどの場所で変更可能ですが、どこかに統一した方が良いので設定をするならサウンドキューからの変更がおすすめです。サウンドキューを開いてサウンドのvolume multiplierから変更できます。
https://scrapbox.io/files/65ce2dc048050300230c2bbe.jpg
基本的には元データとなるサウンドウェーブをそのまま使用するのではなくサウンドキューとして作成して音声を鳴らすのがおすすめです。またBGMはそのままドラッグで追加するよりブループリントで管理するのが一般的です。というのもBGMは停止させたり、切り替えたりするためにはブループリントで管理しなければならないからです。
🐱では次にそのブループリントでBGMを鳴らす方法を紹介していきます。
②ブループリントからBGMを鳴らしてみよう|実践
では、先ほど追加したレベルのサウンドキューは削除しておきます。
https://scrapbox.io/files/65ce2e13845a35002439ceb2.jpg
レベルブループリントを開いて以下のノードを作成します。BeginPlayからSpawnSound2D(オーディオコンポーネントが生成されて音を再生するノード)を繋ぎます。SpawnSound2Dには先ほど作成したサウンドキュー「BackgroundMusic」を設定します。
https://scrapbox.io/files/65ce2e240d782300246c709a.jpg
SpawnSound2DとPlaySound2Dノードとの違い
SpawnSound2DではなくPlaySound2Dノードでも再生する事はできますが、PlaySound2Dだとあとから音を停止したり切り替えたりなど調整はできません。基本的にSpawnSound2Dノードを使用しましょう。
https://scrapbox.io/files/65ce2e8c0d7c860024283e25.jpg
これでプレイしてみるとゲーム開始時に風の音となるBGMが鳴るようになりました。
https://youtu.be/eokC5QlaEwY
😺これは再生はできました。次にBGMを停止させたりフェードインさせたり切り替えたりなどBGMをブループリントから操作していきましょう。
③BGMの停止と再生を実装してみよう|実践
では、ゲームプレイ中にスペースキーで停止とプレイを実装してみましょう。先程のレベルブループリントで作成したノードのまま進めていきます。
レベルブループリントを開いてSpawnSound2DのReturnValueから右クリック > 変数へ昇格をクリックします。これによって変数が追加かつセットノードが繋げられます。
https://scrapbox.io/files/65ce2f892cd3630025a79e65.jpg
作成された変数の名前をBackgroundMusicという名前にします。
https://scrapbox.io/files/65ce2f9bc607870024ef513e.jpg
ちなみに型はAudioComponentという型になります。AudioComponent = サウンドと覚えておけばオッケーです。
スペースバーノードを作成して、その後ブランチを作成します。BackgroundMusic変数を追加してIsPlayingノードを接続します。trueにStopノード、falseにPlayノードを繋げます。
https://scrapbox.io/files/65ce2fb142696400255b7d62.jpg
StopとPlayノードとは?見つからない場合は?
Stopとは音声を停止させるノードで、Playノードが再生させるノードです。StopとPlayノードは検索すると見つけにくいので一覧から探した方がよいかもしれません。オーディオ > コンポーネント > オーディオにPlayとStopノード,IsPlayingノードがあります。またはBackgroundMusic変数からワイヤーを伸ばして検索すると見つけやすいです。下にblueprintUEのリンクを貼っておきます。
https://scrapbox.io/files/65ce303401baf80025dbca40.gif
IsPlayingノードとは?
IsPlayingでオーディオが再生されているのかどうか調べます。再生中ならtrue、再生中ではないならfalseが出力されます。
これでスペースバーを押したら停止と再生ができる訳ですが、SpawnSound2Dノードは一度停止したらオーディオコンポーネント(サウンド自体)は削除されてしまいます。削除してしまうと再度BGMを再生する事ができません。SpawnSound2Dの下の矢印を開いて、AutoDestroyのチェックを外します。
https://scrapbox.io/files/65ce30a772c6490023d6c178.jpg
プレイするとスペースバーでBGMの停止とプレイが可能になりました。
https://youtu.be/9NZt3rY3CM8
これで一旦このページは以上です。
😺基本的にブループリントでBGMを鳴らして、BGMの場合だとSpawnSound2Dを使用すると便利です。理由は後から再生,停止,音量の調整など行う事ができるためです。では次回音量の調整やBGMの切り替えについて紹介していきます。今回は以上です。お疲れ様でした。