【Niagara】Niagara用のアニメーション通知を自作する
Verは4.23です
【初めに】
少し前のVerから、漸くNiagaraにも
アニメーション通知から、エフェクト呼び出すことが出来るようになりました。
この「Play Niagara Particle Effct」
これがNiagaraのエフェクトを発生させるアニメーション通知となります。
設定としては、こんな感じになっています。
カスケードにあったものと基本変わらないと思います。
ただ、Niagaraの場合はデータの作り方によっては
ここで角度や座標などを変えても、変わってくれない場合があります。
その辺に関しては、こちらの記事を参考にしてください。
この場合、この通知では動かすことが出来ない、という事になります。
また、ここの数値だけでは制御しにくい。
というエフェクトの場合もあると思うので。
その対処のために、この通知自体を作ろう、という内容になります。
【アニメーション通知を作る】
ブループリントの作成画面から、AnimNotifyを選択して、ブループリントを作成します。
中に入り、左上にある、オーバーライドから
Received Notifyを選択します。
すると、この二つのノードが作られたグラフが作られます。
例えば、とりあえずこの様に、Niagaraのエフェクトを発生させる処理を組みます。
(アセットを作った時点で、アニメーション通知に追加できるように自動でなります)
そして、今回作ったアセットを追加すると(名前はAnim_Testにしてます)
それだけで、アニメーションの画面でエフェクトが再生されます。
単純に発生させるだけならこれだけで可能なので
ここから使いやすいように、調整していきます。
【通知をカスタムする】
まずは、再生するエフェクトを選択できるようにしましょう。
変数作れば良いだけなのですが。
型がややこしい場合は
System Templateからピンを引っ張ってきて、その先で変数へ昇格
をしてあげると、自動で型を選んでくれるので非常に楽です。
また、アニメーション側から設定できるようにするには
変数の右にあるボタンをクリックするなどで、インスタンス編集可能にする必要があります。
これをしておかないと、変数を作っても、アニメーションの画面から編集する事ができなくなってしまいます。
キャラそのものの座標などが欲しい場合は
GetWorld系のノードを、MeshCompと接続して、繋ぎます。
Soketから指定する場合はこんな感じでしょうか...?
自分自身はSoketから指定するのが、あまり解っていないので
間違ってたらごめんなさい。
MeshCompの出力からは、Skeletal Mesh Component Object Reference
が出力されているようです。
下のAnimationはまんま再生するアニメーションのようです。
具体的にどう使うのか?という部分に関しては
エフェクトそのものをどう作るのかに掛かってくると思いますが。
個人的には、この様に、自分がそれぞれ制御しやすいようになるように
Niagaraの中で直接動かせるようなものを入れています。
イメージとしては、エフェクト用のマクロ作るようなイメージ...
でいいのかなとは思います。
例えばですが、この様な大量のパーティクルが飛び散るエフェクトであれば
発生数と乗算してあげることで。
同じエフェクトでも、アニメーション毎に発生するパーティクルの数を増やしたり減らしたり、という事が可能です。
ただし、デフォルトではUser.系のデータは0の数値が入ってくるようなので
乗算をする場合は、1を加算した数値などを乗算すると解りやすいと思います。
煙などのパーティクルであれば。ここを分ける事により
全体の大きさだけでなく、Particle.SpriteSizeと乗算してパーティクル単体の大きさを変えたり。
Particle.Velocityと乗算して、速度だけを変えたりする事もできます。
特に砂埃などでは、普通に走ってるだけだと発生数少ないが
地面に叩きつけられたモーションでは発生数を増やす...という事も出来るようになります。