このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
ナイアガラのVelocity
とは「速度」を決めるモジュール。
つまり、ひとまずコレを設定してやると「パーティクルを動かすこと」ができる。
※Add Velocity In Cone
の例。速度がつくとパーティクルは移動する。
初心者向けなのでまだは殆ど触れていないがForce
というのもパーティクルを動かすモジュールになる。
こちらは速度とは違い「力」なので「加速度」を含んでいる。
今は覚えなくて良いので気になる人向けに簡単にさらっと
Velocity
だけだと一定の速度で進みForce
だと加速するので時間が立つほど早くなる。
Empty
のシステムかエミッターを作って
エミッタの更新
にSpawn Rate
を追加。
SpawnRate
も適当に設定。10
ぐらいで良いかと思う。
Add Velocity
まずは最も基本のAdd Velocity
を作る。
こちらは「単純にまっすぐ飛ばすだけ」のモジュール
Velocity
系モジュールは「パーティクルのスポーン」に入れる。
エラーが出ているのはSolve Forces And Velocity
がないため。
※速度などのモジュールは計算式が積まれた状態になるだけ。最後にこれが式をまとめて計算して速度に変換している(たぶん)
最後にAdd Velocity
のパラメタVelocity
に500
のような数字をいれよう。
これが速度を決定している。
これで指定した軸方向にパーティクルが飛ぶはずだ。
パーティクル更新の中にVelocity
を入れてしまうと飛ばないので注意。
非常にしょぼいがコレがすべての基礎となる。
Velocity
系のモジュールは数が少ないため、上記以外のモジュールをすべて解説していく。
初心者は無理に覚える必要はない。
気になったらまたここに帰ってくるぐらいで良い。
また過去に解説していないLocation
系のモジュールも出てくるので、わからなければスルーで良い。
記事のボリュームが大きくなりすぎるので、細かいパラメタは無視して概要のみとする。
Add Velocity From Point
いきなりちょっと難しいモジュール。
まずVelocity
が入っていない状態でBox Location
でSpawnさせているだけ(動かない)
これだけだと意味がわからないがAdd Velocity From Point
を追加して、Z=200
ぐらいにする。
再生すると次のようになる。
これがどうなっているのかというと
赤枠で囲ったあたりにAdd Velocity From Point
の原点がきている。
そこから発生した各パーティクルのベクトルがそのまま「速度」になる。
ベクトルに角度がないとまっすぐ下へ飛ぶだけなので、最初に四角形に横に広げたパーティクルを出したというわけだ。
Add Velocity In Cone
「ソフトクリームのコーン」のような形状で速度が設定されるモジュール。
Add Velocity From Point
との違いAdd Velocity In Cone
:パーティクルが発生した点で角度が決まっている。
Add Velocity From Point
:パーティクルが発生した地点とAdd Velocity From Point
で設定した原点を「結んだベクトル」になる。
よくわからなければAdd Velocity In Cone
のほうが圧倒的にコントロールしやすいのでこちらだけ覚えておけば良い。
Inherit Velocity
非常に面白いモジュール。
まずこれだけ設定しても何も起こらない。
こちらは「ゲーム上に配置した上で位置を動かす」と効果がある。
マヨネーズを水に浮かべるゲームです。
このように「動いた方向をそのまま維持する」という動作になるため、発生してからジワーッと外側へ飛んでいっている。
Inheritとは「受け継ぐ」という意味で、移動した方向を速度として受け継いでいる。
Static Mesh Velocity
こちらは追加するとエラーが表示されるので解決ボタンを押すとSample Static Mesh
のモジュールも追加される。
まずはこちらのSample Static Mesh
に何かしらのモデルを追加してやる。
例えばCube
を追加してやると
これは設定した「メッシュの面法線」の方向が速度になるモジュールなので、キューブの各面の方向にパーティクルが発射されている。
これだけだと使い方がよくわからないが、例えばこの後にAdd Velocity In Cone
を更に追加してみると
このようにどんどん複雑にしていく事ができるので非常に可能性を感じるモジュールである。
Vortex Velocity
「渦」のような速度を与えるモジュール。
動きの理解はサンプルを見るほうが早い。
こちらも追加するとエラーとなり問題を修正ボタンをおすとApply Initial Forces
が追加される。
※なぜこのモジュールが必要なのか私も実はよくわかっていない。Force
をVelocity
に変換するモジュールらしいので加速度がつくわけではない。
また注意点としてLocation
等のモジュールでSpawn地点が散らされてないと何も起こらない。
※恐らくこちらも位置ベクトルを元に計算されるモジュールだからだと思われる。
Add Velocity From Point
と一緒じゃ?実際に試した人は気付いたかもしれないがAdd Velocity From Point
をデフォルト(原点を0,0,0のままずらさない)で追加したものと似た動きになる。
実際は違ってVortex Velocity
だと平たく広がる渦の効果になるので
横から見ると水平に広がっている。
一方Add Velocity From Point
を(0,0,0)座標で使用すると均一に広がってしまうので
どの視点からみてもこのようになる。
ここまでのモジュールは全て「パーティクルのスポーン」に入れてきた。
つまり、パーティクルが発生した瞬間に1度だけ速度を決めて、あとは等速直線運動になっていたはずだ。
しかし、実はパーティクル更新にも入れられるモジュールがある。
※毎フレームごとに速度を再計算する(と思うのだが自信なし)
Vortex Velocity
この方法は「外へパーティクルを飛ばさない、範囲内だけの渦」にしたい場合に有効。
※この場合Apply Initial Forces
は無くても良さそう
Static Mesh Velocity
こちらもパーティクル更新に追加できる。
おそらくフレームが更新されるごとに速度の方向が再設定される理由(上も同じ)でこのような動作となるはずだが、あまり詳しく説明できないのでサンプルだけに留める。
一つ一つのパーティクルが直線ではない動きをしている。
雪が舞い散るような非常に美しい動き。
Scale Velocity
パーティクルのスポーンではなく「パーティクルの更新」側にだけ追加可能なモジュールにScale Velocity
がある。
こちらはシンプルに上でスタックされた速度計算に対してXYZ軸方向に速度の引き伸ばしができるモジュール。
※このモジュール単体で速度付けはできない。あくまで設定された速度を調整するだけ。
例えば先程の「渦」を「縦長にしたいなぁ」なんて時
中央で回転はしてるけれどもパーティクルは縦長に飛んでいく。
ざっくりとなってしまったが、一応これで全てのVelocity
を解説した。
ただ「パーティクル更新」に入れるVelocity
の方は私も詳しく説明できないのでひとまずここまでとした。
細かい設定方法などはいずれ別々で見ていきたい。