UE4のNiagara Systemでキャンドル炎(Candle Fire)を作りました。
いつものようにYouTubeにアップしましたので、ご覧いただければ幸いです。
■テクスチャ
炎が複数個並んでもある程度形がバラけてくれるよう、SubUVを想定して作成。


■マテリアル
エミッシブ値をいじるパラメータをあえてマテリアル側に配置。
実は、最初はNiagaraSystem内で発光感を出そうとしたが、テクスチャの色が失われていくのに気づき、マテリアル内に配置。
計算手法の違いがあるのかと思いますが、また時間がある時に検証してみるかもしれません。

炎の下部の青味がある部分は、マテリアルでも調整できるようにしています。
テクスチャでもある程度色分けしていますが、マテリアル内で調整した方がトライ&エラーが早いので、そうしてしまいました。
もし次も作ることがあれば、テクスチャで色付けしないかもしれません。

アルファのグレースケール調整について、炎の芯部分のアルファを保ったまま、他部分のグレースケール具合を調整したかったため、「SmoothStep」で調整を入れています。

炎は全体で揺らいでいるものの、根本部分は特に固定したいので、グラデーションで下部が固定されるようにしました。
炎のテクスチャを歪めるための処理(下図の上部群の処理)と、最終的に乗算することで、根本固定用グラデーションを適用しています。
これらのノード群が炎のテクスチャに繋がっています。

■Niagara System
テクスチャの歪み強度やスクロール速度など、ユーザーパラメータ化し、レベルに配置したナイアガラシステムの値を個別に編集できるようにしました。


パーティクルの寿命を永遠にしました。
「Kill Particles When Lifetime Has Elapsed」のチェックを外すと、永遠になります。

■マテリアルファンクション
少し余談にはなりますが、エンジンコンテンツにMakeFloatと名の付くマテリアルファンクションがあります。
既にエンジン側で用意されているマテリアルファンクションを使用できる箇所に使用していくことで、新規で同様の処理のマテリアルファンクションを作り適用するより、データ量または処理的にメリットがあるそう。。。

例えば、「MakeFloat2~4」は、ScalarParameterをAppendでまとめてくれる処理となっています。

例えば、MakeFloat2は、こんな感じで使ったりする。
