UE5.1でやる場合はここのやり方でできないからこっちも参考に
https://qiita.com/Noirkun/items/3e1c6a85005fd97e0d2a
こんな感じでプレイヤーが通ったらNiagaraにも変化が出るようなもの作っていくよ
今日やって忘れそうだから急いで書いてるよ。
はじめるにあたって必要なこと
まず今回の作るのに必要なもの
・プラグイン "Niagara Fluids"
・UnrealEngine 5.0.3
こっから下はプラグインの入れ方を書いてるからわかる人は本題まで
まずやるにあたって"Niagara Fluids"っていうプラグインを追加しておくよ。
チェック付けたら再起動を忘れずにね。
本題
1.サンプルのNiagaraを出していく
まずプラグインで追加されたNiagaraを出してくるよ。
コンテンツブラウザ内で右クリックしたらNiagaraシステムっていうのを押すよ。
最後に"Grid 3D Gas Smoke"ってやつを選択(プレイヤーが当たって動くようにするだけだからほかのやつでも大丈夫...なはず)
後はそれっぽい名前を付けて保存(ここではNS_Smokeってつけたよ)
ちなみに今の状態で煙にあたってもこんな感じでなにも起こらないよ。
2.NS_SmokeにSkeletalMeshCollisionの項目を追加
実はこの煙くんStaticMeshは判定が取れるけどSkeltalMeshとかは取れないんですよね...(調べた限りは無かった。あったらごめん...)
なので判定が取れるようにこの煙くんの中身をいじっていきます。
それとStaticMeshの判定の取り方もちょっと下に一応書いておくので気になる人は見てね。
まずはNS_Smokeをダブルクリックで開いたら、青色のノードの中のユーザーパラメーターから”Object”を追加するよ。
追加出来たら名前が”New Object”的なやつだと思うので”SkeletalMeshCollision”に名前を変えてくよ。名前のところを押してF2を押すとすぐ編集できるよ。
(下から二番目が追加して名前を変えた項目)
次にさっきの画像の上から二番目の”Physics Asset”って書かれてるところを開いて、さっき作ってあげた”SkeletalMeshCollision”をくっ付けてあげるよ。
青色のところの設定はこれで終わり。
次に下のエミッターの部分をいじるよ(数秒で終わる)
エミッターの中のエミッタの概要から”Physics Asset”の項目にチェックを入れるよ。
(UE5.1だとこの項目がないからこっちの記事でやってみてね)
はいエミッターも終わり。
最後に煙くんを保存してあげてね。
3.”SkeletalMeshCollision”の中身を設定してあげる。
最後に”SkeletalMeshCollision”の中身を設定してあげるよ。
まずはレベル上にNS_Smokeを出してあげるよ。
次にレベルブループリントを開こう。
開いたら"BeginPlay"(Pを押しながら左クリックでも出せるよ)と
レベル上のNS_Smokeをこんな感じで取ってくるよ。
そしたら”Set Niagara Variable(object)”っていうノードを出すよ。
このノードでは"In Variavle Name"に書かれたところに何のオブジェクトを入れてあげるのかを決めるよ。
ここで”SkeletalMeshCollision”の中身をこんな感じに設定してあげる。
"In Variavle Name"にはNS_Smokeで追加した”SkeletalMeshCollision”って名前
ObjectにはプレイヤーのSkeletalMeshを入れてあげるよ。
"Get Compompoment by Class" には"SkeletalMeshCompompoment"を入れてあげてね
これで終わり!!
後は実際にプレイしてみると...
煙が...動く!!!(元から動いてる)
ていうのができます。
Niagara Fluidsちゃんと触ったの今日からだけどちゃんと使えたら楽しそう...
みんなも使ってみて情報増やしていこう
おまけ.StaticMeshの当たり判定の追加のしかた
ここは割と簡単なので後ろに回したよ。
まずはNiagaraをレベルに出してくるよ。
ちょっと気分変えてPoolのNiagaraでやってるけど上で作ったやつでもできるから安心してね。("Grid 3D FLIP Pool"っていうのを使ってるよ)
そしたらStaticMeshを準備するよ。
左のアクターの中から適当なものを持ってくるよ。
動かないのを確認したら出してきたStaticMeshを選択して詳細(Detail)から"tags"と検索するよ。
そしたら"タグ"と"アクタ"が出てくると思うんだけどアクタのほうでタグを作成していくよ。
この中に”Collider”って入力。打ち間違えとかしてたら何も起きないから注意だよ。
そしたらもう一度動かしてみよう。
めっちゃ動く。
ようはスタティックメッシュはタグでCollisionの判定を取ってあげてるんだね。
ちなみにタグの名前はNS_Poolを開いて青色のノードのユーザーパラメータに入ってるStaticMeshCollisionsから確認できるよ
なのでここを適当な文字にセットしたらStaticMeshのほうのタグの名前も変えてあげれば動くよ。
おまけおしまい。