UE4 Niagara 各Rendererの持つBindingについて

はじめに

今回は、小ネタとして、Niagaraの持つRendererのBindingに関して書きます。

概要

Rendererの持つBindingについて知りたい。

この記事の内容

  1. そもそもRendererとは?

  2. Bindingとは?

  3. Bindingで何ができるの?


前提

  • Unreal Engine 4.22.1を使用して確認したものとなっています。
  • Niagaraは、アーリーアクセスです。
    今後、本記事の内容とは仕様などが異なる可能性があります。


1. そもそもRendererとは?

Cascadeで言うところのGPU SpritesやBeam、Anim Trailを除いたType Dataのことを指していると認識しています。
Niagaraには、「Sprite / Mesh / Ribbon / Light」の4つのRendererが用意されています。
エディター内においては、Selected Emitterタブ内のいちばーーん下にある背景が赤くなっている箇所が
Rendererセクションとなっています。
Emitterにて使用されているRenderer Moduleは、このRendererセクションに格納されています。
f:id:yuyasaltcanyon:20190518180842p:plain:w300

それぞれの扱い方などは以下の公式ドキュメントから各ページに飛べますので、あわせてご覧ください。

docs.unrealengine.com


余談ですが、Niagaraでは、全てのRendererがGPU対応されています。
(一部、GPU対応されていない機能を使用するとRendererがGPU対応されていたとしても動作しません)

2. Bindingとは?

Renderer Module内の以下の画像の赤枠のことを指します。
f:id:yuyasaltcanyon:20190518174818p:plain:w300

Niagaraでは、各Bindingにバインドされているパラメーターがそれぞれ参照され、
Particleなどに反映される作りとなっているようです。
各Bindingの中身はRendererによって変わります。
以下は、4つのRenderer内のBindingの中身となっています。

1, Sprite Renderer
f:id:yuyasaltcanyon:20190518175228p:plain:w300

2, Mesh Renderer
f:id:yuyasaltcanyon:20190518175318p:plain:w300

3, Light Renderer
f:id:yuyasaltcanyon:20190518175306p:plain:w300

4, Ribbon Renderer
f:id:yuyasaltcanyon:20190518175332p:plain:w300

Bindingに関しては以上となります。

3. Bindingで何ができるの?

できることは色々あるかと思いますが、思いついたモノを書いています。
ただし、「Niagara完全に理解した」状態だと、何言ってるのかわからんとなるかもしれません。
わかるとすごく便利です!

複数のRendererの扱いが上手くなる!

1つのEmitterに対して、複数の同一Rendererを扱う場合、
現在のNiagaraでは、すべて共通のパラメーターがバインドされています。
それぞれ違う結果を持たせたい!といった時には、パラメーターを置き換えるとそれぞれ別の動きができます。

Moduleを作り変えなくてすむ!!

Bindingを自作したパラメーターに切り替えると、
元々使用していた処理結果に対して自身で用意した処理を組み合わせやすくなります。

例えば、自作パラメーターAをRenderer内のBinding Velocityにバインドすることで、
Niagaraが元々もっているParticles.Velocityの値が直接使用されなくなります。
その上で、自作Module内で、Particles.Velocityを参照し、何らかの処理を加え、パラメーターAに対して値を返すと、
今まで使用していたModuleに対して手を加えずに値を参照できて便利です。

これに気づくまでは、Moduleをすべてコピーして、パラメーター名などを変えて使用してました。メンドクサカッタ!!

まとめ

わかれば、すごい便利なBinding、ぜひ色々触ってみてください!

Let's Enjoy Niagara! (リスペクト)