以下の内容はhttps://shuntaendo.hatenablog.com/entry/2025/12/03/055523より取得しました。


【UE5】Lightweight Emitterを使ってみよう

本記事は Unreal Engine (UE) Advent Calendar 2025 シリーズ1の3日目の記事です。

先日CEDEC九州の前日に Epic Games の池田さんによるハンズオンセミナーがあり、参加してきました。
Lightweight Emitter の使い方以外でも、Niagaraの最適化や細かいテクニックなど、とても勉強になったのでこの場で共有できればと思います。

※ UE5.7時点の情報として参考にしていただけたら幸いです。

Lightweight Emitterとは

名前の通り軽量なエミッターで、UE5.4から追加されました。
2024年のCEDECでもEpic Games池田さんの講演で触れられていたりしました。

通常のエミッターと比べて非常にシンプルな構造で、主にCPUとメモリの使用量を抑えられます。(GPUにも多少効果ありとのこと)
Niagaraは基本的にCascadeよりも重いですが、Lightweight EmitterはCascadeよりも軽いケースが多いとのことです。

実際に通常のエミッターと比べてみました。
シーンには煙のNiagaraエフェクトを10個配置してNiagara Debuggerでゲームスレッドを計測しています。

計測してみると半分近く軽くなっていることが分かりました。

また、大きな特徴として通常のエミッターでは、[Particle Spawn]や[Particle Update]などのステートごとに各パーティクルが内部的に状態を保持しているステートフルな作りに対して、Lightweight Emitterでは、各パーティクルの現在の状態のみに基づき計算されるステートレスな作りになっています。
エミッターの見た目も違いがあります。

Lightweight Emitterでは、他のパーティクルや過去の状態に依存しないステートレスな作りのため、機能は限定的ですがそのぶん負荷が軽くなっています。このあたりもCEDECの資料で解説されていますので詳しい情報はそちらを参照していただければ幸いです。

基本的な使い方

エミッターの作成

通常のエミッターと同じようにグラフ上で右クリックから[Add lightweight emitter]で作成できます。

通常のエミッターとのトレードオフではなく、1つのNiagaraシステム内で共存させることができるので軽量化したいエミッターのみを Lightweight Emitter に置き換えることもできます。

モジュールの追加

通常のエミッターと同じ手順で[+]アイコンからモジュールを追加できます。
大きく[Spawn][Simulate][Render]に分かれています。
モジュールを追加すると並び替えはできず、自動でソートされます。

使用できるモジュールは限られており、自作することはできません。
エンジンから提供されているモジュールは、基本的なモジュールは揃っており、レンダーモジュールを見てみると8種類5種類に減っていますが特殊なモジュールのみ制限されているという印象で頻繁に使うモジュールは同じように使用できます。

 

また、通常のエミッターのモジュールと同名のモジュールは同じように使えますが、詳細ウィンドウでの調整方法に若干違いがあります。
通常のエミッターでは、右端の[▽]からパラメータを変換できますが、Lightweight Emitterでは、プルダウンメニューから限られた選択肢から選んで変換します。

 

Spawn Rate もバーストとモジュールが分かれておらず、1つのモジュールで切り替えられたりします。


ユーザーパラメーター

パラメータを[Binding]に変更して、ユーザーパラメータを指定するだけでLightweight Emitterでも紐づけて使うことができます。



最適化や細かいテクニック

Fast-SU

Niagaraシステム内のエミッターがLightweight Emitterのみであれば、[System State]のチェックを外すことによってさらに軽量化できます。

この状態になっていれば、プレビューの右下に「Fast-SU」と表示されます。(Niagara Debugger上でも表示されます。)


複数のエミッターをまとめる

Niagaraシステムをレベル上に複数配置する場合、1つのNiagaraシステム内でまとめるとさらに軽くすることができます。
[Initialize Paticle][Initial Position Distribution]で初期位置を調整できます。

さらに変態的な軽量化手段として、[Initial Position Distribution]を配列にして1つのエミッターで複数の箇所に生成してしまうという方法もあります。

どちらの方法も範囲を広げすぎると描画負荷が上がってしまう恐れがあるため注意が必要とのことです。

Emitter Stateの設定

通常のエミッターでいうところのEmitter Stateは、Lightweight Emitterでは[Properties]から設定できます。(若干ハマりポイントなので書いておきます。)


システムパラメーターの活用

Lightweight Emitterでは直接扱えない値もシステムパラメーターを介することで扱えてしまいます。

例えば、Lightweight Emitterでは、[Sample Skeletal Mesh]モジュールが無いため、ボーンの位置のサンプリングなどができないのですが、[System Update]でサンプリングしたものをシステムパラメータにセットし、さらにLightweight Emitter側でバインディングすることによって特定のボーンの位置からパーティクルを出すといったことができるようになります。



まとめ

この他にもNiagara Debuggerの使い方やDynamic Material Instanceを介してパラメータを渡す方法などハンズオンセミナーの中では勉強になることがたくさんありました。

最適化目的以外でもLightweight Emitterはシンプルな構成なのでNiagaraの学習目的にも良いのではないかという紹介もありました。
Lightweight Emitterは比較的新しい機能なので今後もアップデートされていくと思いますが、現時点でも十分使える機能だと思います。今後もアップデートが楽しみです。


UE Version : 5.7.1




以上の内容はhttps://shuntaendo.hatenablog.com/entry/2025/12/03/055523より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14