thinkingParticles 2: 放物線とパーティクルグループの変更

パーティクルグループの準備

今回は二つのパーティクルグループを扱うので,最初にグループを二つ作成し,redとblueという名前にしておきます.それぞれのグループのカラーを赤と青に変えておきます.

パーティクルを斜め上に真っすぐ飛ばす

ダイナミックセットを作成して名前をGererateに変更します.中にGeneratorのBornノードとOperatorsのStandardからVelocityノードを作成します.Bornはデフォルトで原点からパーティクルを発生しますが,まだパーティクルはその場にとどまるだけなので,Velocityノードのパーティクルに接続します.Velocityは速さと向きを定義できます.Speedを100,Directionを0,1,1とするとちょうど斜め上にパーティクルが飛んでいきます.また,BornノードはパーティクルグループがAllになっているので,redに変更しておきます.赤いパーティクルが出てきますね.
20190128-1

重力をつくる

重力はMAXのフォースから重力を下向きに作成して,GravityとTPをスペースワープでバインドを行います.重力の強度は適当に設定します.
新規ダイナミックセットを作成して名前をForceにして,中にAllグループと,StdForceノードを作成し,Particleポートを繋ぎます.StdForceはスペースワープにバインドしたのでDeactive ListにGravityが追加されているはずです.これをActiveにすれば重力がAllグループ,つまりすべてのパーティクルに作用します.
redグループのパーティクルが放物線を描いて落ちていく.
20190128-2

パーティクルグループを変える

今回はパーティクルグループをredグループからblurグループへ途中で変えてみます.新規ダイナミックセットを作成して名前をChange_groupに変更します.
この中にredグループ,Groupノード,PatricleAgeノードを作成しておきます.O redからO GroupへParticleを接続します.O GroupのGroupをblueに変更します.
さらにParticleAgeのParticleポートへO redを接続し,OutポートからO GroupのONポートへ接続します.この時,PatricleAgeのパラメータはRelativeにしてTime1を50,Time2を100としておきます.Relativeはスカラー値なので50にした場合,パーティクル寿命のちょうど中間地点でTrueが出力されるので,そこでblueグループのパーティクルに変更されます.Absoluteだと時間のようです.
パーティクルが途中でredからblueに変わりました.
20190128-3

風を追加してTurbulenceを入れる

重力と同じ手順でフォースの風を追加,バインド,Activateします.Turbulenceの数値を少しあげて乱流をつくりました.他,重力やBornのパーティクル数も変えてみます.
20190128-4

red,blueグループのシェイプも作ってみる

StdShapeは前回使ったので,今回は実際のジオメトリをパーティクルとして飛ばしてみます.シーンの中にキューブと球体を作っておきます.
新規ダイナミックセットを作成し,名前をShapeにします.中にred,blueのグループノードを作ります.さらにOperatorsカテゴリからShape→GeomInstanceノードを二つ作成して,それぞれのグループのParticleポートを接続しておきます.GeomInstanceのパラメータにPick Objectを使ってシーン内のキューブと球体を各GeomInstanceノードに設定しておけば,redはキューブ,blueは球体といった具体でシェイプを定義できます.途中でグループが変わるとメッシュも入れ替わります.
20190128-5