このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
「蛇口から滴る雫」を作りながらナイアガラ基礎を学ぶ。
※簡易すぎて雫というには少々ボロいがご勘弁。
実際にエフェクトを作るのが初めての人向けの記事。
少し細かいところまで解説する。
今回はシステムで「Empty
」を追加して空のナイアガラを作る。
意味がわからなければは以前の記事を参照
【ナイアガラ超基礎 #1】かんたんな概念【UE5】 | 謎の技術研究部
エミッタの更新
と書いてあるところの+
ボタンをクリック。
モジュールの追加ウィンドウが現れるのでSpawn Rate
で検索してダブルクリックして追加
追加されたSpawn Rate
をクリックして右側のプロパティSpawnRate
に1
を入力
以上の作業でプレビュー画面に白い点が出る。
これがすべての基礎である「パーティクル」という点を生成した状態。
タイムラインが再生されていないとパーティクルは現れないので注意。
エミッタの更新
> Spawn Rate
を追加するとその設定数値に応じてパーティクルが生成される。
先程プロパティSpawnRate
に1
を入力したが、これを増やせばパーティクルは大量に生成される。
しかし、今回はこの数字を増やしても殆ど変化しない。
これは「全く同じところに重なって生成されている」からだ。
というわけで、この記事ではこのパーティクルを動かすことで視覚的にわかりやすくする。
「エミッタの更新」と書かれているモジュールの中身は、毎フレームごとにその中身が評価されている。
つまりこの中に入っているSpawn Rate
が毎フレームごとに「このフレームで玉出す?」という判断が入っていると考えれば良いと思う。
次に「重力」を追加してパーティクルを床に落とす動作を入れる。
パーティクル更新
の+
ボタンからGravity Force
を追加しよう。
右上にエラーのマークが出たのがわかるだろうか。
プロパティ画面にエラー詳細が出ているのだが、気にせず「問題を修正」ボタンを押すだけで良い。
するとSolve Forces And Velocity
というモジュールが自動的に追加されてエラーは消える。
※ナイアガラの良いところはこういったちょっとした配置ミスをワンクリックで修正してくれるところでもある。
通常こういった物理演算は特定のフレーム1個だけで計算されるものではなく、前のフレームの速度や加速度といったパラメタをすべて考慮に入れて初めて今のフレームの状態がどうなっているのかが導き出せる。
つまりこれが計算を纏めて行うモジュールだ。
このあたりは難しいので「これまで積んできた物理演算を計算して結果に出すモジュール」と覚えておけば十分かと思う。
ちょいムズなので、イミフなら読み飛ばしても良い。
こちらのモジュールは「パーティクル1個ごとに毎フレーム評価される」モジュール。
物理演算などはここに入れておかないと前のフレームの速度などと合算できないので想定した動きができない。
試しに「パーティクルのスポーン」側(パーティクルが生み出されるときに1回実行)にGravity Force
を追加してみると、ぱっと見エラーなしで追加できるのだが 何も起こらなくなる。
当然ではあるが重力は加速度なのでフレームごとに速度は上がっていくはずだ。
ということはパーティクルの生成時にだけ速度計算すれば良いものではなく、ずっと演算し続けなければならない。
そこで「パーティクル更新」の中にこれを置いたわけだ。
あとは細かいパラメタを調整して今回はおわる。
Initialize Particle
> Sprite Size Mode
をUniform
にする
すぐ下のUniform Sprite Size
をお好みに(ここでは3)
これによりパーティクルのサイズを自由に変更できる。
レベルに配置したい場合はコンテンツブラウザからナイアガラシステムをドラッグドロップしてやるだけでよい。
ここからはおまけの演出
また、最初で設定したSpawnRate
を1000
のように大きな数字にすると
雫ではなく水が出ているような雰囲気にすることもできる。
例えば水色にしたい場合は
同じくInitialize Particle
でColor
を変えてみよう。
もはや水というよりビームである。
※光っているのはデフォルトのマテリアルの影響なので今回はスルー。いずれ説明したい。
これはQuixel Bridge
にてTap
で検索したアセット
Quixel
のアセットはUnreal Engineならすべて無料で使えるのでここでは説明しないが使い方を調べてみると良い。
正直まだ説明したりない感がまだまだあるが、既に記事のボリュームがパンパンである。
ここまで読み切った人いるのだろうか。
ここからさらにちょっといじるだけで簡単に色々なものができるので引き続きシリーズを読んでいただけたらと思う。
うひょー!
※パーティクルのスポーン
にAdd Velocity In Cone
を使った例