2021-12-15

【ナイアガラ超基礎 #4】Spawnの種類【UE5】

エミッタの更新に追加できるSpawnの種類をずべて見る。最も直感的に理解できるモジュールで、数も少ないのですぐ理解できる。

Article Image

Spawnモジュールとは

最も基礎となる「パーティクル」を生み出すために必須となるモジュール。

「どれぐらいの頻度」で「どれぐらいの数」を生み出すのかを決定するモジュール。

picture 6

エミッタの更新 > Spawningの項目に入っているのがすべて。

次の項から実際に一つずつ見ていく。

Spawn Rate

まず、前回の記事で使用したもの。

前回記事:【ナイアガラ超基礎 #3】しずくを作る【UE5】 | 謎の技術研究部

Spawn Rateは「1個ずつパーティクルを生み出す」非常にシンプルなモジュール

picture 1

SpawnRate

プロパティのSpawnRateには「1秒間に生み出す個数」を指定する。

picture 2

10で設定すると

picture 3

1秒間に10個となる。

※ここでは前回使用した重力がかかっているので生成されたパーティクルは下方向に移動する。

Spawn Probability

picture 4

こちらは生成される「可能性」を指定する。

1以下の数値で表現するため例えば0.5なら50%を表す。

picture 5

1秒間に10個と指定すると常に連続したパーティクルが見えるが50%の確率で間引きされる。

Spawn Per Frame

さきほどは秒だったがこちらは「フレーム単位」

picture 7

Spawn Count

1フレームに出力されるパーティクルの数。

当然だが1秒間にいくつもフレームがあるのでSpawn Rateよりたくさん出る。

picture 8

Spawn

こちらのチェックを外すと何も生成されなくなる。

picture 9

プログラムでコントロールする用なので特に気にしない。

※Spawn Groupは少し上級向けなのでここでは解説しない。

Spawn Burst Instantaneous

picture 10

1回で「まとめて」パーティクルを生成するモジュール。

Spawn Count

ここで指定した数のパーティクルが一気に出力される。

今回は例として100にする。

picture 11

実際に設定してみると

picture 12

1個しか生成されていないように見える。

気づいたかもしれないが、この例ではスポーンする座標が固定の1点なので「全く同じ場所に重なって生成されている」だけだ。

今回はわかりやすくするために座標1点だったものを「とあるスフィアの範囲」に変更する。

picture 13

パーティクルのスポーン > Sphere Location を追加。

※これに関してはいずれ解説するが今回はそういうものと記憶してもらればと思う。

すると

picture 14

「一気に100個のパーティクル」が生成されている。

Spawn Time

生成される「時間(秒)」を指定する。

picture 15

例えばここで2.0に設定すると

picture 16

再生してから2秒のところで生成される。

※緑矢印が差している点を直接ドラッグしてSpawn Timeを移動することも可能

Spawn Per Unit

今回一番難しいポイント。

ひとまずこれを設定してもなにも描画されない。

picture 17

これはナイアガラのシステムそのものをレベルに追加しないと効果が現れないので

picture 18

コンテンツブラウザからドラッグドロップして実際のレベル側に設置してやる。

これでもなにも発生しないのだが、今度は設置したシステムをドラッグして移動してみると

picture 19

移動するたびにパーティクルが生み出される。

ちなみにマウスでドラッグしながらGキーを押すことでゲームモードで余計な表示を非表示にできる。

わかりにくいと思うので動画を用意した(上のSphere Locationも入っている)

これだけでもずっと遊んでいられる。

Spawn Per Unit

こちらは大きくすればするほどスポーンする数が「少なくなる」。

これまでと少し挙動が違うので注意。

※「何センチメートル移動するごとに出す?」という設定であるため

picture 20

Movement Tolerance

「ほんのちょっと動いただけ」の移動が「移動したとみなされない」という制限を設ける事ができる。

例ではここを50ぐらいに設定したあたりから反応する。

picture 21

※細かい数値の計算式は私もよく把握できていない

つまり、アクタが大きく動いたときにだけパーティクルを発動したいのであればここの数値を上げれば良い。

Spawn Per Unitの値が非常に小さい(小さな移動でかなりたくさんパーティクルが出る)時など相性が良さそう。

Max Movement Threshold

理解が難しいがこちらは上の逆。

「1フレームで一気に動いた時」に「移動したとみなされない」という制限にすることができる。

例えばこれを300ぐらいに設定し、ゆっくり動かすとパーティクルは出るがマウスで一気に動かすとその範囲はパーティクルが出ない。

picture 22

おまけ

Spawn Per Unitを使って次のようなことができる。

※こちらの作り方は次回へ持ち越し

以上

今回比較的簡単なので殆どのパラメタを解説した。

暗記しなくてもいずれ覚えるような内容かと思うのでサラっと確認する程度でも良いかと思う。



謎の技術研究部 (謎技研)