このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
2022/03/22: Unreal Engine 5 Preview 2
でロケーションモジュールの設定方法が変更になったので記事を修正
Spawn
系のモジュールがパーティクルを生成するのは以前紹介した。
【ナイアガラ超基礎 #4】Spawnの種類【UE5】 | 謎の技術研究部
しかし、これだけだとどこか特定の1座標に重なって生成されてしまうため、どれだけパーティクルを増やそうとも1個のパーティクルにしか見えない。
Location
というモジュール類を使用するとSpawnの位置を指定された範囲内でランダムにできる。
これを使ってパーティクルの散らばり方をコントロールし、様々な形状を作り出すことができる。
パーティクルのスポーン
に入れることLocation
はパーティクルのスポーン
の中に入れる必要がある。
これは「パーティクル生成時に1度だけ実行される」項目になるためである。
また解説では上級者すぎる設定項目などの解説はスキップしているので悪しからず。
今回は少し細かく書いている兼ね合いで長い記事となっている。
初心者は上から1,2個のLocation
だけ理解できたら後は全体のサンプル画像に目を通すだけでも十分かと思う。
必要に応じてまた読みに来てもらえれば幸いだ。
UE5のPreview2よりShape Location
という一つのモジュールの中に複数のロケーションが含まれるようになった。
まずはこちらのShape Location
モジュールをセットしてShape Primitive
からロケーションの形状を選ぶ。
ここで選んだ形状により設定できる項目が変化するので順番に解説する。
※設定項目の解説も記述するが、簡単な設定のみにとどめてある。
まずはBox / Plane
。
わかりやすいように大量にパーティクルをスポーンさせると次のような形に見える。
ご覧の通り「箱型」の範囲にパーティクルがバラけた。
パーティクル数を少なくすると
このようなイメージ。
Box Size
プロパティではこのを大きさを定義する。
Cylinder
こちらは円柱状
Shapeタブ
Distributionタブ
※旧バージョンの設定項目Hemisphere
から名称が変わった。次の画像は旧バージョン
Cone
こちらはコーン状。ソフトクリームのコーン的な。
Shapeタブ
Distributionタブ
Transformタブ
球体型のLocation。
ちょっとわかりにくいので、Spawn数を減らした例
Shapeタブ
Distributionタブ
Sphere Orientation Axis : 球体の方向。上で形状を調整したあと、これで方向を設定するイメージで。
Sphere Distribution : 注目プロパティ。Uniform
にするとスポーン地点を完全なランダムではなく球体内で整列する。美しい。
Transformタブ
Distribution
タブ > Sphere Distribution
>Uniform
に設定した例が美しいので例を出す。
Uniform Spiral Amountを調整するとSpawn地点が数学的に整列される
1.0
に設定
4.16
に設定
設定によってものすごく多用な変化をするのでここは是非自分で試してみてほしい。
Spawn Rate
を5000
程度。Initialize Particle > Life Time
を10秒ほどに。
Vortex Velocity
をパーティクルの更新に追加。Velocity300
+軸をいじる。
最後にSphere Location
の上記パラメタを適当にいじっただけ。
もっとしっかり煮詰めれば、たったこれだけの知識でもかなり面白いものが作れると思う。
また、Sphere Distribution
をDirect
に設定。
U Position,
V Position
ダイナミックインプット(動的入力)であるReturn Normalized Exec Index
を設定するともっと正確な何かが作れそうだ。
※ダイナミックインプットは今後重要になってくるが、まだ解説してないのでわからなければ「ほーん」ぐらいの理解で。
なんかすごいかっこいいものが出来上がるのだけれど、正直このダイナミックインプットも含め何が起こっているのか私には解説できないので、いずれ理解が深まったら記事にしたい。
参考サイト:【UE4.26】Niagara Advanced 解説基礎編Particle Attribute Reader – HeyYo CG
ドーナツ型のメッシュをCG用語でトーラスという。英語を日本語訳すると「円環体」というらしい。
その名の通りの形状になる。
Torus Mode
をいじると形状を変更できる(上の画像はデフォルトのTorus
)
TorusKnot
に変更しKnot Helix Loops
, Knot Ring Loops
を1~10ぐらいでいじると面白い形状へと変化する。
こちらも言葉で解説が難しいので調整してみてほしい。
桜の花のような形状に
すぐ回転させたくなる
※こちらはパーティクル更新
のVortex Velocity
で回転させてるだけ。
また、TorusにもDistribution
の項目があるが、基本はSphere Location
と同様なので省略
リング状に配置する。
これは以前のバージョンでTorus
で再現できていたが、作る場合は上級者向けの理解が必要だったがRing / Disc
を選べば簡単にできるようになった。
Ring / Disc Mode
をHexagon
にすると六角形になる
こちらも細かい設定はTorus
と同じでDistribution
タブをいじることにより幾何学的な模様になるので試してみると良い。
注意:ここからはShape Locationではなくモジュールそのものが違うので注意
こちらは必ずエミッタの更新 > Spawn Particles In Grid
と共に使う。
※Grid Location
を追加するとエラーが出るので問題を修正
ボタンで追加してくれる。
デフォルトだとわかりにくいので少し数値を調整しているが、このような感じでパーティクルをグリッド状に正確に並べた状態で配置してくれる。
なんというかデジタルっぽさを感じさせるエフェクトが作れそうだ。
Spawn Particles In Grid
というモジュール側を設定する
X,Y,ZそれぞれにCountというプロパティがあり、これがグリッドの数を決定している。
例えば(3,3,3)だと
このような感じ。
Box Location
が箱の中でランダム位置にスポーンだったのに対し、こちらは完全に整列されている所がポイント。
また、上の設定だとSpawnするマスの数だが、単純に広さを調整したい場合はGrid Location
モジュールのXYZ Dimensions
から設定する
これ以外の項目は直感的に触っても面白い動きをしないので、上級者向けという解釈でスキップする。
こちらは名前の通りスタティックメッシュの表面からパーティクルを出すモジュール。
つまり何かしらのモデルのポリゴンに沿ってパーティクルを出す。
ロケットのモデルに適用した例。
各ポリゴン表面からパーティクルが出ている。
メッシュが細かい箇所にはたくさんパーティクルが生成され、メッシュが荒い部分が少なくなっている点にも注目。
スタティックメッシュを読み込むときは別のモジュールと組みわせる必要がある。
このメッシュを読み込むためのモジュールがSample Static Mesh
モジュール。
こちらはStatic Mesh Location
追加したときに現れるエラーの問題を修正
ボタンを押せば自動で追加される。
Static Mesh Location
のすぐ上にSample Static Mesh
が来れば良い。
基本的にはSample Static Mesh
側にメッシュを指定するだけでよい。
Preview Mesh
とDefault Mesh
両方に同じものを入れておこう。
コレまでのと違いスケルタルメッシュに適用し複雑な動作をさせるもの。
かなり複雑なエフェクトを作ることができるが初心者向けではないのでここでは割愛する。
こちらは知る限りでは単純にエミッターシステムが配置された「点」+オフセットの値の場所をロケーションにするためのものだと思われる。
一応Spawn Group Mask
等も使えるが、シンプルすぎて逆に使い所がよくわからない。申し訳ない。
Locationというも名称は付いていないが、モジュールを追加する時にLocationで検索すると一緒に出てくるものも見ておく。
スポーン地点をランダムにずらすモジュール。
例えばGrid Location
で正確に配置してJitter Position
でズラすと
このように僅かにブレる。
まだ解説してないので別記事でやりたいのだが、ビーム系と合わせると電撃のようになる。
1点を中心に発生したパーティクルを回転させる。
こちらは非常に複雑だがうまく使うと幾何学模様のようなものも作れるので解説しきれない。
よって別記事で取り扱いたい。
さくっと遊ぶのであればパーティクルの更新
に入れてRotation Rate
(回転の速さ)に1.0
を入れてSetup > Radius
(半径)を調整する。
これだけで何のLocationも指定していなくても回転し始めるはずだ。
次はパーティクルのスポーン
に入れる例
まだ記事にしてない「動的入力(Dynamic Parameter)」を使っているので、初心者は「ほーん」ぐらいで。
もっともっと複雑な形状がつくれるはず。
Locationもそれほどモジュールの数はないが、こうやって記事にしてみると簡易解説でも結構なボリュームになってしまった。
これだけでも結構遊べると思う。