大福未来研究所

大福フューチャーラボのなんか色々なアレ。プログラミング(C++/DirectX/Unity/UE4あたりやりたい)とか音楽とかの。

【UE4】Unreal Engine 4.16 PreviewのGranular Synthを触ってみる

お久しぶりです。なんとか元気にやってます。

さて、UE4.16のプレビュー版が出てからしばらく経っていますが、なんとUE4にSynthesisプラグインなる新しいプラグインが登場し、
これを適用するとUE4の中でシンセサイザーを操作することが出来るようになりました!!

f:id:dfk_ohnuma:20170516022619p:plain
現時点ではこのように、
・「Modular Synth」
・「Granular Synth」
・「Synth Sample Player」
の3種類が追加可能になっています。(また凄いチョイスですねこれ)

このうち「Modular Synth」については、既に国内でもMozPacaさんによるブログ記事や、
mozpaca.hatenablog.com
株式会社プラスシグナルの大久保さんによるブログ記事
www.plus-signal.com
など、既に触れ始めている方がちらほらいらっしゃいます。
実際に私も触ってみましたが、ゲームエンジン内でシンセを触るという初めての感覚がとても面白く、
これをゲーム内でコンテンツとして落とし込めるようになるまでは時間がかかりそうだと思うものの、
シンセサイザーのパラメータをインタラクティブにゲーム側から反映させる事が出来るようになるのはとても大きな魅力であると感じました。
将来、UE4のシンセサイザー機能を利用したゲームが生まれるまではそう遠くないと思いますし、
いつまでたっても出ないなら私が作ってると思います。

というわけでGranularSynthってなんなんだ

それでは本題に入ります。今回私が触ってみたのは「Granular Synth」コンポーネントです。
ラニュラーシンセってなんぞや?と思う方も多いと思いますが、
DTMにおいてはグラニュラーシンセは結構な数が存在しており、
アンビエントやドローン、ノイズ等の領域では使っている方も多いかと思います。

今回はまず、グラニュラーシンセってなんぞやという話からしてみようと思います。

Granular、と入れてGoogle検索すると「粒状」と翻訳されて出てきます。
「偏ったDTM用語辞典」さんの記事を引用しますと、
偏ったDTM用語辞典 - グラニュラーシンセシス:Granular Synthesisとは - DTM / MIDI 用語の意味・解説 | g200kg Music & Software
シンセサイザーの波形合成方式の一つ。 元の音を数mSec~数十mSec程度の非常に細かな粒子(グレイン)に分割し、再配置する事で新たな音を合成する。」
とあります。

つまりグラニュラーシンセというのは、元の音を粉々にして再配置して発音するというシンセサイザーなのです。
このため、元の音から別物と言ってもいいような出音になったりすることも多く、
飛び道具的な使い方をしたり、あるいは実験音楽などにも使われたりしやすいシンセサイザーです。

さっそくUE4で使ってみよう

それでは4.16Preview版のエディタを立ち上げて、Third Personなりなんなりのテンプレから新しいプロジェクトを作ってみましょう。
名前は「SynthTest」とかでいいと思います。
そして、新しいActor Blueprintを作っておきましょう。
f:id:dfk_ohnuma:20170516025204p:plain
テスト用のプロジェクトですので、適当に「SoundActor」みたいな名前を付けておきました。
このアクタに、コンポーネントを追加してみます。
f:id:dfk_ohnuma:20170516022619p:plain
このように「コンポーネントを追加」からグラニュラーシンセを追加しましょう。
ついでに、シンセの効果を実感するためにAudio Componentも一つ作っておくとよいです。

f:id:dfk_ohnuma:20170516025451p:plain
(またひっどい名前)

さて。このグラニュラーシンセ、なんとコンポーネントの詳細画面を開くとSynth Sample Playerとほぼ同じ項目しか見えません。
ラニュラーシンセとしての本来の項目(グレインの長さやらどこから切り取るかやら)というのはBP上でいじるしかないのが現状です。
このプラグインはまだ仮実装だと思われるので、将来的にシンセの各パラメータへのアクセスは改善されるのではないかと思います。

Granular Synthコンポーネント周りのノードはこんな感じのものが並んでいます。
f:id:dfk_ohnuma:20170516075347p:plain


・Note On/Off……いわゆる鍵盤を弾く・離す(Modular Synthとほぼ同じ感じ)

・Set Attack Time…シンセのアタック時間を設定
・Set Decay Time…同じくディケイ時間を設定
・Set Sustain Gain…同じく、サステイン音量の設定
・Set Release Time Msec…同じく、リリース時間の設定
これら4つの項目は、シンセの「ADSR」と呼ばれる4項目の設定になります。
興味がある方は、是非ネットで調べてみると良いと思います。

・Set Sound Wave…ベースになる音をセットする
ラニュラーシンセは元になる音があってナンボなので、必須ですね。

・Set Scrub Mode…スクラブ再生モードの可否の設定
「スクラブ再生」というのは、偏ったDTM用語辞典さんでこのような説明がありますので御覧ください。

・Set Playback Speed…グレインの再生速度を設定する
・Set Playhead Time…グレインの再生開始位置を設定する。「現在の再生開始位置地点からずらす」「ファイルの先頭からずらす」の2種類が選べる

・Set Grain Duration…グレインの長さの基準と分布範囲を設定する
・Set Grain Envelope Type…グレインのエンベロープの種類を設定する
・Set Grain Pan…グレインのパンの基準点と分布範囲を設定する
・Set Grain Pitch…グレインのピッチの基準点と分布範囲を設定する
・Set Grain Probability…グレインの分布率を設定する。下がれば下がるほど音が歯抜けになる
・Set Grain Volume…グレインの音量を設定する
・Set Grains Per Second…秒間いくつのグレインを鳴らすか設定する
以上がグレインの設定になります。これらはTickなどからでも呼び出せるので、リアルタイムに音に変化をもたせることが出来ます。

Start/Stopはいいとして、他の関数はだいたいこんな感じのようです。
(間違ってたら突っ込んでやってください)

そんなわけで、さっそくブループリントで並べてみましょう。

f:id:dfk_ohnuma:20170516081127p:plain
Tickで毎フレームごとにシンセの設定を変えてやりながら

f:id:dfk_ohnuma:20170516081147p:plain
別々のボタンで元の音とシンセの音を鳴らせるようにします。

実際に鳴らしてみた

実際に起動して鳴らしてみたのがこれです。

元の音から全く別物になったのがわかると思います。
もちろん、設定次第ではそこそこ元の音に近いものが出せるようになったりもします。
(今回がかなり極端な例なので……)

まとめ

ラニュラーシンセは音をぶつ切りにして、新しい音に再構成するシンセです。
それにより変化する音の幅はとても大きく、これをうまくゲームと組み合わせることができれば、
新しいインタラクティブサウンドの形が提示される日も遠くはないでしょう。
今まで「シンセサイザーってなんだ 音楽ってなんだ」って思っていた方も、
この機会にゲーム側からシンセをいじってみるのに挑戦してみるのはありだと思います。
是非みなさんも触ってみて、そして良ければ記事を書いたりして知見を共有していただけるととても嬉しいです(`・ω・´)

以上でこの記事は終わりです。ありがとうございました。