moyasiエフェクト館

主にエフェクト関係の記事を上げていこうかと思います。


エフェクトに関係する記事上げてきます
エフェクト関係の記事の内容は緩く募集中
自分がわかる範囲であれば書いていこうかなと。

【Niagara】Niagara用のアニメーション通知を自作する

f:id:tktknkyo:20190916181156p:plain

Verは4.23です

 

【初めに】

 

 

少し前のVerから、漸くNiagaraにも

アニメーション通知から、エフェクト呼び出すことが出来るようになりました。

 

f:id:tktknkyo:20190916181459p:plain

この「Play Niagara Particle Effct」

これがNiagaraのエフェクトを発生させるアニメーション通知となります。

 

f:id:tktknkyo:20190916182159p:plain

設定としては、こんな感じになっています。

カスケードにあったものと基本変わらないと思います。

 

ただ、Niagaraの場合はデータの作り方によっては

ここで角度や座標などを変えても、変わってくれない場合があります。

 

tktknkyo.hatenadiary.jp

 

その辺に関しては、こちらの記事を参考にしてください。

 

この場合、この通知では動かすことが出来ない、という事になります。

また、ここの数値だけでは制御しにくい。

というエフェクトの場合もあると思うので。

その対処のために、この通知自体を作ろう、という内容になります。

 

 

【アニメーション通知を作る】

 

f:id:tktknkyo:20190916183054p:plain

ブループリントの作成画面から、AnimNotifyを選択して、ブループリントを作成します。

 

f:id:tktknkyo:20190916183218p:plain

中に入り、左上にある、オーバーライドから

Received Notifyを選択します。

 

f:id:tktknkyo:20190916183311p:plain

すると、この二つのノードが作られたグラフが作られます。

 

f:id:tktknkyo:20190916183456p:plain

例えば、とりあえずこの様に、Niagaraのエフェクトを発生させる処理を組みます。

 

f:id:tktknkyo:20190916183617p:plain

(アセットを作った時点で、アニメーション通知に追加できるように自動でなります)

そして、今回作ったアセットを追加すると(名前はAnim_Testにしてます)

 

f:id:tktknkyo:20190916183757p:plain

それだけで、アニメーションの画面でエフェクトが再生されます。

 

 

単純に発生させるだけならこれだけで可能なので

ここから使いやすいように、調整していきます。

 

【通知をカスタムする】

 

まずは、再生するエフェクトを選択できるようにしましょう。

f:id:tktknkyo:20190916184505p:plain

 

変数作れば良いだけなのですが。

型がややこしい場合は

System Templateからピンを引っ張ってきて、その先で変数へ昇格

をしてあげると、自動で型を選んでくれるので非常に楽です。

 

f:id:tktknkyo:20190916184751p:plain

また、アニメーション側から設定できるようにするには

変数の右にあるボタンをクリックするなどで、インスタンス編集可能にする必要があります。

これをしておかないと、変数を作っても、アニメーションの画面から編集する事ができなくなってしまいます。

 

f:id:tktknkyo:20190916185123p:plain

キャラそのものの座標などが欲しい場合は

GetWorld系のノードを、MeshCompと接続して、繋ぎます。

 

f:id:tktknkyo:20190916185613p:plain

Soketから指定する場合はこんな感じでしょうか...?

自分自身はSoketから指定するのが、あまり解っていないので

間違ってたらごめんなさい。

 

f:id:tktknkyo:20190916185818p:plain

MeshCompの出力からは、Skeletal Mesh Component Object Reference

が出力されているようです。

下のAnimationはまんま再生するアニメーションのようです。

 

 

f:id:tktknkyo:20190916190633p:plain

具体的にどう使うのか?という部分に関しては

エフェクトそのものをどう作るのかに掛かってくると思いますが。

個人的には、この様に、自分がそれぞれ制御しやすいようになるように

Niagaraの中で直接動かせるようなものを入れています。

 

f:id:tktknkyo:20190916191058p:plain

イメージとしては、エフェクト用のマクロ作るようなイメージ...

でいいのかなとは思います。

 

 

f:id:tktknkyo:20190916191326p:plain

例えばですが、この様な大量のパーティクルが飛び散るエフェクトであれば

 

f:id:tktknkyo:20190916191539p:plain

発生数と乗算してあげることで。

同じエフェクトでも、アニメーション毎に発生するパーティクルの数を増やしたり減らしたり、という事が可能です。

ただし、デフォルトではUser.系のデータは0の数値が入ってくるようなので

乗算をする場合は、1を加算した数値などを乗算すると解りやすいと思います。

 

煙などのパーティクルであれば。ここを分ける事により

全体の大きさだけでなく、Particle.SpriteSizeと乗算してパーティクル単体の大きさを変えたり。

Particle.Velocityと乗算して、速度だけを変えたりする事もできます。

特に砂埃などでは、普通に走ってるだけだと発生数少ないが

地面に叩きつけられたモーションでは発生数を増やす...という事も出来るようになります。