80.ブループリントから音を鳴らしてみよう
😺ではここまででオーディオの基本は学んできました。今回はブループリントで実際に音をゲームプレイ中に鳴らしてみましょう。まずはノードを解説するのに必要な用語である2Dサウンドと3Dサウンドの復習からしていきましょう。
2Dサウンド,3Dサウンドとは?復習しておこう
2Dサウンドとは音量の変化が無く、左右対称に聞こえるサウンドの事です。例えばUIでボタンを押した時の「ポチッ」という音や、BGMは2Dサウンドにあたります。なのでこの2Dサウンドの音をゲームで再生したら、左右対称で音量も一定に聞こえるという事になります。
3Dサウンドでは、遠くの音源は小さく聞こえて近くの音源は大きく聞こえ、左で鳴った音は左で聞こえて、右で鳴った音は右から聞こえます。例えばFPSの銃声などは3Dサウンドなのでどこから鳴ったのか大体予測がつきますね。
🐱どこでも聞こえるBGMなどの音は2Dサウンドで鳴らす、足音や銃声などフィールド上での音は基本3Dサウンドで鳴らすと覚えておきましょう。では以上をふまえてブループリントの基本ノードを解説していきます。
①ブループリントから音を2Dで鳴らしてみよう|実践
ではまずは簡単にブループリントからゲーム中に音を2Dで鳴らしてみましょう。
今回もStarterContentを含むサードパーソンのプロジェクトを使用していきます。(前回のプロジェクトのままでも構いませんがレベルに配置したサウンドは削除しておいてください)
https://scrapbox.io/files/65cdf03c845a35002437d811.jpg
レベルブループリントを開きます。
BeginPlayからPlaySound2Dノードを追加します。SoundにはスターターコンテンツのStarter_Birds01を選択します。
https://scrapbox.io/files/65cdfba4b175da00254224b9.jpg
PlaySound2Dノードとは?
PlaySound2Dノードは指定した音(サウンドウェーブまたはサウンドキュー)を2Dサウンドで鳴らす事ができます。
🐱つまりPlaySound2Dノードはプレイヤーがどこいても、左右から一定の音量で聞こえる音を鳴らすためのノードになります。
プレイすると設定したBGM(Starter_Birds01)が流れます。
https://youtu.be/OGAPto4qcXg
では続いてサウンドキューの方も鳴らしてみましょう。レベルブループリントを開いてSoundをStarter_Background_Cueに変更します。
https://scrapbox.io/files/65cdfbe15443a8002682dbcf.jpg
少し似ていますが先程の音声と違ってStarter_Background_Cueが流れている事が確認できます。
https://youtu.be/ik5CdqEI1AY
このようにブループリントから音声 (サウンドウェーブとサウンドキュー)を鳴らす事ができました。
🐱では2DサウンドでBGMを鳴らす事はできたので、今度は3Dサウンドでも音を再生してみましょう。
②ブループリントから音を3Dで鳴らしてみよう|実践
では3Dサウンドで音をブループリントから鳴らしてみましょう。
スターターコンテンツのCollapse01というサウンドウェーブ(音源のアセット)を再生してみます。
https://scrapbox.io/files/65cdfc5d85da9a0024a79416.jpg
Audioフォルダを作成してそこで右クリック > サウンド > サウンドキューを作成します。名前をMyCollapse_Cueにします。
https://scrapbox.io/files/65cdfc772419d900247b8505.jpg
MyCollapse_Cueを開いてWavePlayerノードをドラッグで追加します。
https://scrapbox.io/files/65cdfca0bbecb5002520f589.jpg
WavePlayerノードとは?
WavePlayerノードとは鳴らす音を選択するためのノードです。アウトプットノードが出力するために繋げるノードです。
WavePlayerを選択した状態でCollapse01を選択します。Loopingにもチェックを入れておきましょう。
https://scrapbox.io/files/65cdfccbb251240028867bd8.jpg
アウトプットを選択した状態で、アテニュエーション(減衰)のOverrideAttenuationにチェックをいれます。
https://scrapbox.io/files/65cdfd05b175da0025422c9e.jpg
減衰(アテニュエーション)の設定について
上記の手順によってこの音は減衰が設定されます。つまり音に減衰が追加されて、音が距離によって音量が変化してさらにパンニングも有効になるため左右どっちで音が鳴っているのか聞き分けられるようになります。減衰がわからなくなったら以前のページ「減衰(Attenuation)とは?」をご覧ください。
🐱3Dサウンドの音を鳴らしたい場合は必ず減衰を設定する必要があります。
減衰最短距離を300,フォールオフ距離を800ぐらいにしておきましょう。
https://scrapbox.io/files/65cdfd3c539cdc002581c6af.jpg
減衰最短距離とフォールオフ距離について
減衰最短距離が音量が変化せずに聞こえる距離、フォールオフ距離が音量が徐々に小さくなっていく距離です。試しにMyCollapse_Cueを配置してみると減衰の範囲となる球体が可視化されるのでわかりやすいです。
https://scrapbox.io/files/65cdfd90deb1aa002597d7aa.jpg
確認し終えたらレベルのMyCollapse_Cueは削除しておきましょう。
ではブループリントから作成した音「MyCollapse_Cue」を鳴らします。
レベルブループリントを開きます。作成したノードがある場合は削除しておいてください。
BeginPlayとPlaySoundatLocationノードを追加してSoundに「MyCollapse_Cue」をセットします。
https://scrapbox.io/files/65cdfdc9634dd60024ce052c.jpg
では鳴らす音の位置を決めるのですが、大体プレイヤースタートの左右どちらかで鳴らそうと思います。
https://scrapbox.io/files/65cdfe23ae23c700277f27fb.jpg
レベルブループリントにもどって以下のようなノードを組みます。
VectorのY数値を変えることで、プレイヤーがのそば(数値が正なら右側、数値が負なら左側)から聞こえるようにします。
https://scrapbox.io/files/65cdffbde9f5100024d7374f.jpg
プレイしてみるとプレイヤー初期位置の片側で3Dサウンドの音が再生されており、音量が左右別になっており距離によっても音量が変化している事が確認できます。
https://youtu.be/vd4zkCZaMUE
これでブループリントでの基本の再生方法は以上です。
なお、SpawnSoundatlocationノードでも減衰を設定していない音をSoundに設定すると2Dサウンドとして再生されます。なので3Dサウンドとして音を鳴らしたい場合は、SoundCueを使用して、必ず減衰の設定(OverrrideAttenuationか減衰アセットの作成)を行う必要があります。
https://scrapbox.io/files/65ce00d2f253600025c94ae3.jpg