#はじめに
この記事は「Advent Calendar 2021」その2の24日目の投稿記事です。
ぷちコンで応募した作品のナイアガラモジュールのスクリプトがあるのでそちらの紹介をしたいと思います。
#####できあがったもの
グレーマンが動いたときに周辺にあるエフェクトを動かすものができました。
バージョンはUE5.0で作成しています。
#プロジェクトの解説
下記フォルダに今回主に追加したアセットを追加しています。
Contents/Game/Niagara/
NE_Snow : 雪を降らせるナイアガラエミッタ
NS_Snow : 雪を降らせるナイアガラシステム
NM_Wind : グレーマンが近くを走った時にノイズ値を計算するナイアガラモジュールスクリプト
###各アセットの解説
####NE_Snow
SPHERE LOCATIONの範囲にエフェクトを発生させて、GRAVITY FORCEで少しずつ落下させるエフェクトになります。
グレーマンが動いたときに近くのエフェクトを動かすためにモジュールのNM_WINDとCURL NOISE FORCEを追加しています。
グレーマンの位置、移動速度はレベルBPでエフェクトに設定しています。
####NS_Snow
上記NE_Snowを持っており、レベル上に配置しているアセットです。
####NM_Wind
エフェクトの位置からグレーマンの位置(入力 Location)の距離、速度(入力 VelocitySize)に応じてノイズの数値を計算しています。
引数の説明
Location:グレーマンの位置
Position:パーティクルの位置
WindDistance:風(ノイズ)を発生させる距離
NoiseRate:VelocitySizeの倍率
VelocitySize:グレーマンの速度
上記モジュールで計算した結果をWindNoiseに渡しており、CURL NOISE FORCEのNoise Strengthに渡してグレーマンの周辺だけエフェクトのノイズを発生させています。
#応用して、桜の花びらを舞わせる
上記を応用して桜のメッシュをNiagaraに設定等をすることにより、下記動画のようなこともできましたが、
CurlNoiseの値が大きすぎると違和感が出るのでいい感じに調整する必要がありました
#おわりに
ナイアガラのモジュールスクリプトを使用して自前でエフェクトの動きを実装してみました。
どんなエフェクトの動きを実装したいかのイメージがついていれば手探りの実装でも何とかなりそうでしたので、これから触る方などの参考になれば幸いです。