81.音関連の基本ノード15個を紹介!
🐱では前回ブループリントで音声を鳴らす事はできたので、他にどんな音を鳴らすノードがあるのか見ていきましょう。音量を変化させたり、再生中の音を停止させるノードなど紹介していきます。
事前の準備
StarterContentを含むサードパーソンのプロジェクトを使用して、レベルブループリントに以下に紹介するノードを実装していきます。
https://scrapbox.io/files/65cdf03c845a35002437d811.jpg
音関連の主に使用するノード15個を紹介していきます
①Play Sound 2D (音を2Dで鳴らす)
https://scrapbox.io/files/65ce040dc296a900255c1eb5.jpg
PlaySound2Dは前回のページで紹介しましたが再度紹介します。指定の音を2Dサウンドで鳴らすノードです。2Dサウンドとは以下の動画の様に距離によって音量の変化が無く、左右対称に音を鳴らすのが2Dサウンドになります。
https://youtu.be/vd4zkCZaMUE
BGMやUIのボタンの音などにこのノードを使用します。Soundにはサウンドウェーブまたはサウンドキューを選択できます。またノード下の矢印から詳細設定を開くと、音量やピッチを変更する項目や、何秒後に再生させるかなどの項目が表示されます↓
https://scrapbox.io/files/65ce0453b175da0025426a11.jpg
②Play Sound at Location (音を3Dで鳴らす)
https://scrapbox.io/files/65ce0463d5cfbc00254762df.jpg
PlaySoundatLocationは、指定した音声を指定した場所で3Dで鳴らす事ができます。つまり3Dサウンドの音を鳴らしたい場合に活用するノードです。3Dサウンドとは音量が距離によって変化して、左右の音量が異なって聞こえるものです。例えば足音や、銃声などはこれにあたります。
下動画は前回のページの動画ですが3Dサウンドでスターターコンテンツにあった効果音を鳴らしています。
https://youtu.be/vd4zkCZaMUE
このように3Dサウンドで音を鳴らすのがPlay Sound at Locationノードになります。
なお鳴らす音アセットにAttenuation(減衰)を設定していないと2Dサウンドとなるので、その場合PlaySound2Dノードで音を鳴らした場合と全く同じになります。なのでAttenuation(減衰)を設定したサウンドウェーブまたはサウンドキューをセットする必要があります。
🐱超基本的な音を鳴らすノードはこの上二つのノードになります。ではここからは音を再生,停止させたりするノードについて紹介していきます。
③Spawn Sound 2D (2Dサウンドで鳴らす)
https://scrapbox.io/files/65ce060454215a0024efd3f2.jpg
SpawnSound2DノードはPlaySound2Dノードと少し似たようなノードで2Dサウンドで音を鳴らすノードです。違いとしてはSpawnSound2Dノードで音を再生させると後からその再生させた音を停止したり、音量を変化させたりなど音の編集が可能になります。ReturnValueの出力ピンから再生させた音の参照データを出力できます。
なお正確に言うとSpawnSound2Dノードはオーディオコンポーネントを作成してそのオーディオコンポーネントを再生するノードという意味になります。
オーディオコンポーネントとは?
ここでいうオーディオコンポーネントは、アクタのコンポーネントとは違って実際にレベルに生成される訳ではありません。単にここで言うオーディオコンポーネント = レベル上のサウンドという認識でオッケーです。つまりサウンドをレベルに作成してそのサウンドを再生させるのがSpawnSound2Dノードになります。
以下の使用例ではSpawnSound2DノードでBGMを再生させて、一旦変数に保存。その後にSキーを押すと停止させるという処理を行っています↓
https://scrapbox.io/files/65ce0661634dd60024ce5674.jpg
https://scrapbox.io/files/65ce066e2419d900247bdee9.jpg
詳細な実装方法については後のページ「BGMを鳴らしてみよう」で解説していきます。
🐱音を後から編集できるのでPlaySound2Dノードより、単にこっちのSpawnSound2Dノードの方が便利なノードになります。
④Spawn Sound at Location (3Dサウンドで鳴らす)
https://scrapbox.io/files/65ce06b345613a0024ae62c2.jpg
SpawnSoundatLocationノードはPlaySoundatLocationと少し似たようなノードで3Dで音を鳴らすノードです。ただしSpawnSoundatLocationノードで音を鳴らすと後から音を停止させたり音量を変化させたりの編集が可能です。
以下では3DサウンドでBGMを再生してSキーで停止する処理を実装しています。
https://scrapbox.io/files/65ce06cbb02de60024f831b6.jpg
😺基本的にレベル上で動的に音声を鳴らしたい時にはこのノードを使うケースが多いでしょう。
ノードはPlaySoundとSpawnPlaySoundのどっちを使用しても良いですがSpawnSoundの方を使用すると何かと便利です。詳細な使い方については後のページで解説していきます。
⑤Spawn Sound Attached(コンポーネント作成後アタッチ)
Spawn Sound Attachedノードはそこまで使用するノードではありませんが紹介しておきます。3Dサウンドを特定のコンポーネントにアタッチさせて3Dサウンドを鳴らすノードです。
https://scrapbox.io/files/65ce072deb552a00284f253f.jpg
コンポーネントにアタッチする事によって生成したサウンド(オーディオコンポーネント)の位置がそのアクタについていきます。例えば上空に向かうロケットに発射音として音声を鳴らし、かつ一緒に音源位置を移動させたい時などに使用します。
簡単な実装手順
まずブループリントクラスを作成してCubeコンポーネントを追加したものをレベルに配置します。
https://scrapbox.io/files/65ce077bdeb1aa00259829a5.jpg
Cubeのブループリントクラスに以下のノードを作成します。CubeコンポーネントをドラッグしてSpawnSoundAttachedに接続します。SpawnSoundAttachedにはStater_Music_Cueをセットします。
https://scrapbox.io/files/65ce0787e9f5100024d77bed.jpg
鳴らす音アセット(Stater_Music_Cue)に減衰を設定します。
https://scrapbox.io/files/65ce07a83fb71e00246cb630.jpg
プレイしてみます。以下の動画では、SpawnSoundAttachedノードでキューブに対してサウンド(オーディオコンポーネント)をアタッチしています。減衰も設定している3Dサウンドなので動くキューブ自体からBGMが聞こえます。
https://youtu.be/PD1Y_i7Jbn8
😺こんな感じにサウンドをコンポーネントにアタッチできるのがSpawn Sound Attachedノードになります。ただしSpawn Sound at Locationノードでも音源を移動させようと思えば可能なので必ずしもSpawn Sound Attachedノードを使用する必要はなく、使用が必須な状況があまり思いつかないです。基本的にはSpawn Sound at Locationノードで間に合うでしょう。
⑥Create Sound 2D(オーディオコンポーネントを作成)
https://scrapbox.io/files/65ce07d30e28420023703516.jpg
オーディオコンポーネントを作成するだけで音は鳴らさないノードです。つまりサウンドをレベルに用意するだけといった感じのノードになります。SpawnSound2Dノードの音を鳴らさないバージョンのノードです。
⑦Play(音を再生する)
Playノードは音声を再生させるためのノードです。例えば以下では、 CreateSound2Dでオーディオコンポーネントを作成しておいて、Sキーを押したら音が再生されるようになっています。
https://scrapbox.io/files/65ce0811edde530025c62bab.jpg
なおPlayノードは検索時候補に沢山出てきますが、オーディオ > コンポーネント > オーディオの中にあります。
https://scrapbox.io/files/65ce084e2d037e00257c24c6.jpg
🐱なお基本的にはSpawnSound2Dノードでオーディオコンポーネントの作成と再生ができるのでそちらを使えば良いです。
⑧Stop(音を停止させる)
Stopノードは再生している音を停止させるためのノードです。例えば以下では、 SpawnSound2Dでオーディオコンポーネントを作成して音声を鳴らしておいてSキーを押したら音が停止されるようになっています。
https://scrapbox.io/files/65ce085ced206b0023ea83a0.jpg
🐱音を停止させたい場合はこのStopノードを使用します。
⑨Adjust Volume(音量の調整)
AdjustVolumeは音量を調整するノードです。
例えば上のノードでは、SpawnSound2Dでオーディオコンポーネントを作成し、音声を鳴らしておいてSキーを押したら音量が0になります。完全に音量が変更するまで3秒かかります。AdjustVolumeDurationが変更時間で、AdjustVolumeLevelが変更後の音量です。
https://scrapbox.io/files/65ce0875dc21eb0024a97153.jpg
⑩Set Volume Multiplier(音量調整)
サウンドの音量に掛け算を行って音量を調整できるノードです。
NewVolumeMuMultiplierが0.5なので音量は半分となります。
https://scrapbox.io/files/65ce088319c24700268f993c.jpg
⑪Set Pitch Multiplier(音程調整)
音量のピッチに掛け算を行って音程(再生速度)を調整できるノードです。
例えばNewPitchMuMultiplierが0.5ならピッチが下がるので音程は低くなります。
https://scrapbox.io/files/65ce0890b175da0025428753.jpg
⑫Fade In(音量を徐々に上げる)
FadeInノードはフェードしながら音を再生させるノードです。
https://scrapbox.io/files/65ce08b7edde530025c63039.jpg
例えば上のノードだと、オーディオコンポーネントをCreateSound2Dで作成した後にSキーを押した後にFadeInでフェードしながら(音量を上げながら)音を再生させます。
FadeDurationでフェード時間を設定でき、FadeVolumeLevelでボリュームを調整できます。スタートタイムで音楽が再生されるまでの遅延時間、FadeCurveでどのようにフェードさせるのか決定できます。
⑬Fade Out(音量を徐々に下げる)
FadeOutノードはフェードしながら音を停止させるノードです。
https://scrapbox.io/files/65ce08db2419d900247bf216.jpg
FadeOutDurationでフェードアウトするまでの時間を設定できます。上のノードだと5秒かけて音を小さくしていき停止させます。FadeVolumeLevelではフェードアウト時の最終的な音量を設定でき基本的に0を設定する事になると思いますが、1以上に設定した場合は音は停止されないようです。
⑭Set Sound(音を変更する)
SetSoundノードでは、サウンドをセットする事ができます。下のノードではSpawnSoound2DでStater_Musicが再生された後、Sキーを押すとSetSoundでStaeter_Birdsというサウンドに切り替わります。
https://scrapbox.io/files/65ce1e8abaaf8b0023b30ecf.jpg
⑮Is Playing(音が再生中かどうか検知)
IsPlayingノードは音が鳴っているのかどうかBoolで返すノードです。
https://scrapbox.io/files/65ce09200b539d0025bfb2b8.jpg
例えば上記ではBGMが再生されている時にTickノードによって「再生中です」とテキスト表示されるノードになっています。
IsPlayingはオーディオ > コンポーネント > オーディオの場所にあります。
https://scrapbox.io/files/65ce0962cb9c1d00276790f9.jpg
これで音関連の基本ノードは以上になります。
音関連ノードまとめ
これから実践のページにてこれらのノードは使っていきますが基本的な区分としてはBGMやボタンの音などはPlaySound2DやSpawnSound2Dを使います。
フィールド上の効果音(銃声や足音,環境音)などはSpawnSound2DやSpawnSoundatLocationノードを使用して音を鳴らしていくといった感じになります。
他にも音を動的に停止するにはStop,プレイさせる場合にはPlay,といった感じでノードを組んでいきましょう。