このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
ナイアガラの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の方は私も詳しく説明できないのでひとまずここまでとした。
細かい設定方法などはいずれ別々で見ていきたい。
