[UE5] Niagara

UNiagaraComponent::Deactivateしてもエフェクトがすぐに消えない
UNiagaraComponent::Deactivate()はエフェクトの寿命を待ってDeactivateする。
すぐに無効化したい場合は、UNiagaraComponent::DeactivateImmediate()を使う。

エフェクトをつけたアクターを移動させても、エフェクトがついてこない
EmitterのLocalSpaceフラグを立てる

スプラインに沿ってエフェクトを表示させる
モジュールスクリプトの作成
まず、スプラインを各パーティクルの位置に変換するモジュールを作成する。
アセットブラウザー>右クリック>FX>Script>Niagara Module Script で、モジュールスクリプトを作成。
ここではMS_Splineという名前にする。
InputにSplineを設定し、Splineから線を引き出してSampleSplinePositionByUnitDistanceWSへつなぐ。出力は、particelsのPositionピンをはやして、そこへつなぐ。
保存して、MS_Splineを閉じる。
Niagara Systemを作る
アセットブラウザーから、NiagaraSystemを作る。
テンプレは何でもいい(ここではSimpleSpriteBurstを選択)
名前は何でもよいが、ここではNS_PathVisualizerとする。
NS_PathVisualizerを開き、
ParticleUpdateに、先ほど作ったモジュールスクリプトを指定する。(図中のMS Spline)
User ParametersにSpline型のパラメータを作る
カスタムモジュールスクリプト( MSSpline)のDetailsの、Spline User Parameterに、
先ほど作ったユーザーパラメーターを指定する
Reanderセクションを選択し、既存のレンダラーを削除し、RibbonRendererを追加する。
Emitter UpdateにSpawnRateを追加する。
今回SpawnRateは100程度にしておく。
NS_PathVisualizerを保存して閉じる。
ブループリントを作る
アセットブラウザーから、Blueprintクラスを作成する。
親クラスはActorとする。
ここでは、BP_TestSplineという名前にする。
BP_TestSplineを開き、ComponentsにSplineを二つ追加する。
NiagaraComponentも2つ追加しておく。
※手元の環境では、SplineとNiagaraをひとつずつ追加するだけで、勝手にエフェクトがパスに沿う動きをするようになったのだが、今回は応用が利くように、手動で紐づけする方法を試すため、二つのSplineを作成し、それぞれに別のNiagaraエフェクトを当ててみる。
Niagara ComponentのそれぞれのNiagara>Niagara System Assetの項目に、先ほど作成したNiagara System(NS_PathVisualizer)を指定しておく
SplineComponentのそれぞれを選択し、Viewport上で適当なスプラインを作成する。
ContructionScriptタブを開き、
NiagaraComponent、SplineComponentのGetノードをそれぞれ配置。
NiagaraComponentからSet Niagara Variable(Object)ノードを引き出し、配置する。
引数のObjectには、沿わせたいSplineComponentを入れ、
In Variable Nameには、NS_PathVisualizerのUser Parameterで設定したパラメータ名を入れる。
パスに沿って線が表示されたら成功
念のため、適当なレベルに配置してみて、動作を確認する。