ナイアガラ - UE5 のパーティクル システム

Niagara に関する以前の研究ノートの一部はアーカイブされ、UE5.0.1 に更新されました。この記事のすべてのケースは、公式 ContentExample の Niagara_Particles レベルからのものです。

Niagara システムは、完全なプログラム可能性と他のモジュールとの完全な相互作用を備えた新世代の特殊効果ツールです。

前世代のパーティクル システムCascadeと比較すると、エミッタは完全に独立しており、各エミッタを統合するための「コンテナ」としてナイアガラ システムが必要です。

ナイアガラ システムで参照される各エミッタは継承関係であり、エミッタの各パラメータは、元のバージョンに影響を与えることなくナイアガラ システムで変更できます。

空のナイアガラ エミッターを作成した後は、デフォルトのパーティクル生成機能を持つ Cascade とは異なり、単純なスプライト パーティクル エミッターなど、それをサポートするいくつかの基本モジュールが必要です。

モジュールのパラメーターは非常に柔軟です。たとえば、Scale Sprite Size モジュールを通じて Particles.Initial.SpriteSize の Scale Factor パラメーターを変更する場合、Sine 関数を使用して値を計算できます。

Window の属性スプレッドシートから関連パラメータを表示できます。

0 ~ 1 の間隔では、Sin 演算を使用するだけで特定の効果を実現できます。

エミッタが実際に生成するのは、さまざまなパラメータとそのさまざまな属性パラメータ (速度、サイズ、回転など) を備えた「ポイント」であり、モジュールを通じてその初期パラメータまたは処理パラメータを変更し、最終的にさまざまなパラメータをさまざまな属性にバインドし、それらをスプライトまたはメッシュにレンダリングして目に見えるパーティクルになります (便宜上、この記事では概念を区別せず、総称してパーティクルと呼びます)。

Cascade Intro と同様に、Niagara も GPU パーティクルをサポートしますが、CPU パーティクルと比較すると、レンダラーにはライト レンダラーとリボン レンダラーがサポートされていないなどの制限があり、パーティクル スポーンとパーティクル更新のロジックは GPU で実行され、エミッター関連モジュール バーは CPU で実行されます (CPU の制限により、テクスチャ サンプリングや距離フィールド情報の取得などの操作はエミッター モジュール バーでは実行できません)。

以下に、いくつかのパラメーターの基本的な計算方法と考え方を示します。

。。。。。。。。。。。。

記事全文は Zhihu に掲載されました: Niagara - UE5 のパーティクル システム - Zhihu

 


おすすめ

転載: blog.csdn.net/DoomGT/article/details/125901481