Epic Gamesが配布している、Unreal Engineの様々な機能のサンプルをまとめたプロジェクト「機能別サンプル(Content Examples)」の中に、UE4.26では、Niagara AdvancedというMapがあります。
そこでは、Niagaraの新機能やそれを使った応用例など、とても参考になるサンプルが多く配置されていて、実装内容を見てみるとたくさんの学びがあります。
それらのサンプルについて、いくつかの記事に分けて解説を行っていきます。
![](https://heyyocg.link/wp-content/uploads/2021/02/feature_sample-1024x446.png)
ちなみに、機能別サンプルはEpic Games Launcherのラーニングタブからダウンロードできます。また、UEのバージョン毎に内容が違うので注意してください。
TLDR;)
- ComponentをNiagaraのアウトプットとして設定できるようになったよ
- 別のNiagaraを設定したり、Skeltal Meshを設定して、大きさや位置、アニメーション速度などをNiagaraから制御できるよ
はじめに
この記事では、4.26から追加された新機能Component Rendererについての解説をしていきます。
Niagara Advancedの中にもこれのサンプルは、「4.1 Component Renderer」の一つしかないので、その解説をします。
ただ、Epic曰くまだvery experimentalな機能なので、プロダクションで使えるようになるにはまだ時間がかかりそうです。
Component Renderer とは
NiagaraのRenderは、従来までは
- Sprite Renderer
- Mesh Renderer
- Ribbon Renderer
- Light Renderer
の4つでした。そこになりもの入りで登場したのが、Component Rendererです。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_02.png)
そもそもComponentとはなんぞやという話ですが、基本はブループリントのアクタに追加していく、機能毎にまとまった構成要素です。CameraやLight、Shapeなど様々です。詳しくは、公式ドキュメントを参照してください。
コンポーネント | Unreal Engine Documentation
今回は、これをNiagaraから呼び出せるようになりました。驚きです。
設定できるComponentの種類もある程度網羅していそうな感じなので、ちゃんと使えるかはわかりませんが、設定自体はできそうです。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_03.png)
4.1 Component Renderer の解説
![](http://heyyocg.link/wp-content/uploads/2021/02/FeatureSample-Preview-NetMode_-Standalone-64-bit_Windows-2021-02-10-18-36-25.gif)
このサンプルでは、上方でフヨフヨ軌跡を描いているのと、下から生えてくるグレイマンの、二つのEmitterがあり、それぞれ別のタイプのComponentが設定されています。
まずは、前者のフヨフヨしている方から見ていきます。
Niagara Particle System Renderer
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_04.png)
Niagara Particle System RendererというComponent Rendererを使用している以外は特別なことはないので、その辺の解説は割愛します。
Renderの横のプラスボタンから、Component Rendererを選択すると、下の画像のような感じでComponent Rendererが追加されます。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_06.png)
デフォルトでは、Component TypeがNoneになっているので、ドロップダウンから任意のComponentを選びます。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_05.png)
今回のサンプルでは、Niagara Componentを設定しています。設定したComponentに応じて、Component Rendererの名前が変わり(Niagara Componentの場合、Niagara Particle System Renderer)、設定項目も増えます。
Niagara Componentを設定すると、Niagara System Assetを指定できるようになります。
ここでは、Component Renderer Sub EmitterというNiagara Systemが設定されています。このNiagara Systemは、くねくねした動きをするエフェクトを一つ作っています。
![](https://heyyocg.link/wp-content/uploads/2021/02/ComponentRendererSubEmitter-2021-02-12-14-51-49.gif)
つまり、エフェクト単体の制御は、Component Renderer Sub Emitterの方でしていて、それらを様々な場所に出現させ、エフェクト全体に少し動きをつけるといった制御を、元のNiagara Systemの方でやる。ということを実現しています。
このように、Niagara Systemを別のNiagara Systemで制御するといったことが可能となります。
続いて、グレイマンの方の解説をします。
Custom Skel Mesh Component
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_08.png)
Niagaraで、Meshの向きや出現位置、大きさ、そしてアニメーションの速度を制御しています。
Component TypeはNiagara Custom Skel Mesh Componentを設定しています。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_09.png)
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_10.png)
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_11.png)
Niagara Custom Skel Mesh Componentを使うと、Meshやアニメーションを設定でき、またアニメーションの速度や、位置、回転、大きさなど、ParticleのAttrigbuteとバインドすることで制御できます。
![](https://heyyocg.link/wp-content/uploads/2021/02/component_renderer_12.png)
AnimationPlayRateは、Niagaraの方でランダムに設定されています。これで、出現するグレイマンの手を振る動作のスピードをランダムにすることができます。
おわりに
NiagaraからComponentを最終アウトプットとして設定できるのは、かなり実装効率を上げうる機能かなと思います。
Niagara System同士の連携もそうですし、各種Componentを使うことで、今まで実現が面倒だったものが、簡単にできるようになるかもしれません。
まだまだExperimentalな機能ですが、近いうちに有力な機能になるのではないでしょうか。期待大です!