UE4初心者が頑張ってるブログ

Unreal Engine4を使用した開発メモ、及びそれに関連することについて不定期に書いています。

UE4 Modular Synthを触ってみる。

4.16のPreview1からちょっとずつ触っていたのですが、

ある程度理解できた(と思う)ので記事にまとめておきたいと思います。

 

マニアックな機能だとは思いますが、

かなり情報が少ないです。タスケテ...

誰か!日本語で!解説記事お願いします!

 

ではやっていきましょう。

 

準備

今回はUE4 4.16 Preview3を使用します。

f:id:MozPaca:20170514163142j:plain

 

適当なテンプレートからプロジェクトを作成しましょう。

私はThird Person Templateを使用しています。

 

プロジェクトが作成できたら、

左上のEdit→Pluginを開いてください。

f:id:MozPaca:20170514163305j:plain

 

Audioタブに「Synthesis」というプラグインがあるので、

これにチェックを入れ、エディタを再起動しましょう。

f:id:MozPaca:20170514163229j:plain

 

ブループリントを作成する

再起動が完了したら、コンテンツブラウザから

右クリック→Blueprint Classを選択します。

f:id:MozPaca:20170514163812j:plain

 

名前は適当にBP_SoundActorにしました。

f:id:MozPaca:20170514163918j:plain

 

ActorにComponentを追加する

BP_SoundActorをダブルクリックで開きます。

左上のAdd Componentから

「Modular Synth」を追加します。

f:id:MozPaca:20170514164205j:plain

 

階層は適当でいいと思います。

f:id:MozPaca:20170514164242j:plain

 

Blueprintに処理を書く

Componentを追加できたら、

このように処理を書きます。

f:id:MozPaca:20170514164532j:plain

CキーでNote Onを呼び出し、音を鳴らし始め

VキーでNote Offを呼び出し、音を鳴らすのを止めます。 

 

f:id:MozPaca:20170514165821j:plain

Note Onは鍵盤などを「押した」という信号を送るものです。

 

Noteの中に入っているFloat型の数値は

Note Numberと言われるもので、それぞれに音を表しています。

上の画像のように60にすると4C、鍵盤の真ん中のドの音の

信号を送ります。

 

Velocityは音の大きさです。

数値が高ければ大きく、低ければ小さくなります。

 

Durationは音の再生時間です。

5にすると5秒間音を鳴らすという感じになります。

 

f:id:MozPaca:20170514170603j:plain

Note OffはNote Onと反対に音の信号を送るのを止めるものです。

 

Note Onを繋げてNote Numberを打ち込んでいけば

こんな感じに演奏もできます。

※音が小さいので、大きくして再生してください。

www.youtube.com

 

話を戻しまして、

Note On、Note Offにそれぞれパラメータを入れていきます。

・Note : 60

・Velocity : 120

・Duration : -1

f:id:MozPaca:20170514182322j:plain

これでCキーを押すとドの音が120の大きさで永続的(-1)に再生されます。

 

次にModular Synthのパラメータ変更処理を書いていきます。

Modular SynthにはたくさんのSet関数があり、

たくさんのパラメータがあります。

f:id:MozPaca:20170514182714j:plain

すべてModular SynthのSet関数です。

(まだ見落としがあるかも...)

 

これらすべての処理を書いていくのは大変なので、

今回はSet Synth Preset関数を使用します。

f:id:MozPaca:20170514182939j:plain

中に全てのパラメータが管理されており、

このノードを更新することで、パラメータを反映させることができます。

 

ではModular SynthからSet Synth Presetノードを出しましょう。

f:id:MozPaca:20170514182512j:plain

 

次にSynth Presetから線を引っ張り、

Promote to Variableで変数を作成します。

f:id:MozPaca:20170514183134j:plain

 

変数名は何でもいいです。

f:id:MozPaca:20170514183121j:plain

 

扱いやすくするために変数をPublicにしておきましょう。

f:id:MozPaca:20170514183258j:plain

 

この作成した処理をEvent Tickに繋げます。

f:id:MozPaca:20170514183350j:plain

これで処理は完成です。

 

実行してみる

Actorをレベルに配置し、実行してみましょう。

f:id:MozPaca:20170514183436j:plain

 

実行したら指定したキー(今回はCキー)を押してみましょう。

恐らく、なんとも言えない音がなると思います。

動画のようにPublicにした変数をいじることで、

一応動的にパラメータを変更することもできます。

www.youtube.com

 

触りとしてはこんな感じではないでしょうか?
手元にMIDIコントローラーがあれば色々試せそうですが、

私の手元には無いので、今回はここまで。

 

-- 追記 --

※キーボードイベントを使用する場合はPlayer Characterに設定するなどで、

イベントが取得できるようにしてください。

f:id:MozPaca:20170514164444j:plain