見出し画像

UE5 MetaSound プロシージャルな音を作る 01 ~ドの音を鳴らす~ #UE5 #MetaSounds

【今回のポジティブワード】
やってみて「ダメだ」と分かったことと
はじめから「ダメだ」と言われたことは違います。
~イチロー~

今回からはプロシージャル(手続き型)な音作りをしていきます。作られた音を鳴らすのではなく、MetaSoundのノードだけで音を作っていきます。
音楽知識は昔ピアノを習っていたので楽譜は読めるぐらいですが、「だめだ」「出来ない」とは思わずに一つ一つ調べて理解しながら進めていきます。

1. プロジェクトを作成してMetaSoundプラグインを有効にする

WaveSoundアセットを使用しないので、StarterContentを入れない[Blank]のプロジェクトを作成します。

UE5 EAでBlankのプロジェクトを作成する

[Plugins]を開きます

Edit > Plugins

MetaSoundプラグインを有効にして、プロジェクトを再起動します。(Enabedをクリックして表示されるダイアログは試用版だけど使用しますか?という内容なので[Yes]をクリック)

[MetaSound]で検索 > [Enabled]をクリック > [Messege]ダイアログの[Yes]をクリック
[Restart Now]をクリックしてプロジェクトを再起動する

コンテンツブラウザで作業用のフォルダを作成し、MetaSoundが作成できることを確認します。

コンテンツブラウザを右クリック > Sounds > MetaSound

2.ドの音を再生する

2.1. Sine波を再生する

MataSound[MS_Procedual01]を作成します。

[MS_Procedual01]を作成する Sounds > MetaSound

[Sine]を追加する

右クリック > Sine

[Sine:Audio]と[Output:Audio]を接続します。
[Play]を押すと音が再生されます。

SineとOutputのAudioを接続すると音が再生される

Frequencyは「周波数」です。
数値[440.0]は440Hz(ヘルツ)を意味します。
440Hzは1秒間に440回音が振幅します。

周波数 Hz(ヘルツ)について

440Hzは「ラ」の音にあたり、「ラ」の音で音が流れ続けてます。

440Hzはラの音

Hz(ヘルツ)の数値が大きくなるにつれて高い音になり、数値が低くなると低い音になります。ドレミといった音階には特定のHz(ヘルツ)があるんですね。

音階は、「音を高低の順番に並べたもの」あり、音の高低は周波数で表します。
音は、周波数が半分になると1オクターブ低くなり、周波数が倍になると1オクターブ高くなります。

Hzが大きくなると高い音、小さくなると低い音

2.2. MIDI Note Noでド(C4)の音を再生する

MIDIのNote Noでド(C4)の周波数を取得して、ド(C4)の音を再生できるようにします。
[MIDI To Frequency(Int32)]を追加します。

右クリック > MIDI To Frequency(Int32)

[MIDI To Frequency(Int32):Out Frequency]と[Sine:Frequency]を接続します。
[Play]ボタンを押すとドの音が再生されます。

[MIDI To Frequency(Int32)のOut Frequency]と[SineのFrequency]を接続

絶対音感があるわけでもないので、[MIDI To Frequency(Int32):Out Frequency]の周波数を確認します。
[Print Log(Float)]を追加します。

右クリック > Print Log(Float)

[MIDI To Frequency(Int32):Out Frequency]の数値をLogに出力します。
[Input:On Play]と[Print Log(Float):Trigger]を接続します。
[MIDI To Frequency(Int32):Out Frequency]を[Print Log(Float):Value To Log]を接続します。

[MIDI To Frequency(Int32):Out Frequency]の数値をLogに出力する

[Print Log(Float)]のLog出力は[Output Log]ウィンドウに出力されます。
261.625549が出力されていたので、[MIDI To Frequency(Int32):Out Frequency]の周波数は261.625549Hz(ヘルツ)ということが分かりました。

[Print Log(Float)]のLog出力は[Output Log]ウィンドウに出力される

261.625549Hz(ヘルツ)はド4(C4)の音の周波数(261.626)とほぼ一致しています。
これでドの音を再生していると判断することが出来ます。

ド4(C4)の周波数とほぼ一致する

[MIDI To Frequency(Int32):MIDI In]の数値はMIDIのNote Noを指定しています。

MIDI Inの数値はMIDI Note No

MIDI Note Noの[60]はド4(C4)なので、ド4(C4)の周波数である[261.626]を取得することが出来ます。
MIDI Note Noは数値で特定の音階を指定することが出来ます。

MIDI Note Noの[60]はド4(C4)なので、ド4(C4)の周波数である[261.626]を取得することが出来る

MIDI Note Noを変えてドレミを出してみました。


まとめ

SoundWaveアセットを使わなくても音を鳴らすことが出来ました。周波数のことが少し理解できたのが大きいです。特定の音を鳴らせるので、鍵盤を作ることが出来そうです。
次回は鳴らしっぱなしではなく、区切った音を出せるようにしてみます。その後に特定のBPMでBeatを刻めるようにしてみます。
少しずつでも理解しながら進むと出来ることが増えていくので楽しいです。

早速、鍵盤を作りました。鍵盤の作り方も少しずつ説明していけるようにします。


この記事が気に入ったらサポートをしてみませんか?