アルゴンUE4&アプリ開発日記

UE4のモバイル開発やアプリ開発をメインに紹介します!主に初心者から中級者向けに紹介していく予定。

【UE4】Niagaraを今更だけど試す!!

UE4Niagaraの使ってみよう(^o^)!

今まではエフェクトの作成でカスケードを使用してエフェクトを作成していましたが、

今回はNiagaraの構成やエフェクトの作成方法などをやってみます。

Niagara(ナイアガラ)とはどんなものなのか?

UE4ではカスケードとナイアガラでVFXを作成できます。

カスケードの場合、量子シミュレーションなどをハードコードで制御されているが、

ナイアガラの場合はノードグラフによって制御するため、

プログラマを必要とすることなくエフェクトを作成出来るように力を入れている機能。

※間違いがあったら指摘お願いしますm(_ _)m

ここからはNiagaraを実際に動作させてみようと思います。

UE4のバージョンは4.20.3を使用しています。

Niagara(ナイアガラ)のファイルを作る。

ここからNiagaraを作成していきます。

その前にNiagaraを使用する際、プラグインの設定を追加します。

niagara」で検索すれば表示されます。

f:id:yoshikata1990:20180923113327p:plain

Niagaraプラグインを追加することで、

詳細なアセット作成の欄に「FX」という項目が追加されます。

f:id:yoshikata1990:20180923113631p:plain

ここからは実際にNiagaraEmitter等を利用して作成して、

エフェクトを作成していきます。

アニメーションに合わせての粒子分解エフェクト作り

それでは実際に作っていきます。

今回は機能別サンプルのEffectsで使用されているキャラを、

あらかじめデータをプロジェクトに持ってきておきます。

f:id:yoshikata1990:20180924094124p:plain

続いてNiagaraのEffect1つ1つを設定出来るNiagaraEmitterと、

それぞれのNiagaraEmitterを管理するNiagaraSystemファイルを追加します。

加えて今回はキャラクターの位置に合わせて量子エフェクトが出るように、

する必要があるためNiagaraModuleScriptを追加しておきます。

f:id:yoshikata1990:20180924094141p:plain

エフェクトのEmitterの部分を設定していきます。

今回不要なAdd VelocityとAccelerationForceを削除します。

その後Spawn Rateを削除して、Spawn Burst Instantaneouを追加。

これは一度に指定した数だけレンダリングします。

f:id:yoshikata1990:20180924094223p:plain

そこまで完了したら今度はキャラクターのスケルタルメッシュに合わせて、

エフェクトを設定するためにパラメータを追加します。

Particles.SkeltalMeshというパラメータを設定します。

※Particlesの部分が違うと正常にParticlesとして登録できないので注意!

f:id:yoshikata1990:20180924094314p:plain

Particles.SkeltalMeshというパラメータを追加したら、

今回適応するキャラのスケルタルメッシュを指定します。

f:id:yoshikata1990:20180924094332p:plain

f:id:yoshikata1990:20180924094409p:plain

今度はNiagaraSystemの方にEmitterを適応します。

NiagaraSystemはEmitterを設定してレベルのアウトライナに設定したり、

アタッチする以外にNiagaraSystemから直接Emitterの数値をSystem用に、

変更することも可能です。

今回はTrackにエフェクトの動作を設定するだけになります。

f:id:yoshikata1990:20180924094447p:plain

スケルタルメッシュが更新されるたびに、

Emitterが発生する位置を更新する必要があります。

NiagaraModuleScriptを使用してスケルタルメッシュの位置を取得します。

ModuleScriptをEmitterの方から参照する時に分かりやすくするため、

カテゴリを設定しておきます。

f:id:yoshikata1990:20180924094927p:plain

カテゴリ設定が終わったらMapGetに「Particles.SkeltalMesh」を追加し、

MapSetに「Particles.Position」を追加して下記画像の様に、スクリプトを組みます。

f:id:yoshikata1990:20180924094942p:plain

組み終わったら、Emitterにスクリプトを適応します。

Particle Spawnの「+」ボタンを押して、

作成したスクリプトを選択して追加します。

f:id:yoshikata1990:20180924095035p:plain

ここまで完成すればキャラクターのアニメーションに合わせた、

粒子エフェクトが出るようになり、こんな人形になれば問題ありません。

f:id:yoshikata1990:20180924095057p:plain

キャラクターに合わせてだけだと寂しい感じがしたので、

Particle Updateの「+」ボタンを押してCurl Noise Force」を選択します。

f:id:yoshikata1990:20180924095144p:plain

Curl Noise Forceは3軸で強さに応じてエフェクトを霧散出来るので、

色々使えるかと思います。

最後に、作成したNiagaraをキャラクターにアタッチします。

キャラクターはスタティックメッシュしかないので、

ブループリント化していただき、

下記のようにBPを組めば1秒ごとにエフェクトをアタッチしてくれます。

※このBPはテストで作ったものなので、タイマーに変えてあげてください。

f:id:yoshikata1990:20180924095201p:plain

完成すると下のように下の画像のようになります。

f:id:yoshikata1990:20180924095530p:plain

細かく調整するとTwitterで公開している下のような形になります。

Niagara(ナイアガラ)をやってみての感想

プログラムの編集とかはなくすべてノード形式で作れるのと、

簡単にきれいな粒子エフェクトが作れるのでとてもいいと思いました!

今回は以上です!ありがとうございました!!