マウスに追従するパーティクルを作る
Metaball SOP、Force SOP、Particle SOPを利用してマウスに追従するパーティクルを作ります。サンプルファイルはこちら。
基本の3Dレンダリングのセットアップ
まずはBox SOPとPhong MATを使ったレンダリング環境をセットアップします。BoxはInstancingするので小さく設定します。
Particle SOPのセットアップとInstancing
次にParticle SOPを設定してInstancingします。ポイントはSort SOPでRandomを設定してランダムな位置から出現させること、SOP to CHOPのCustomを使ってvx、vy、vzを取得してInstancingのRotate to Vectorに入れて進行方向をBoxが向くようにすることです。
Metaball SOPとForce SOPで力場を作る
次にMetaball SOPとForce SOPを使ってパーティクルを引っ張る引力を作ります。その際、Mouse In CHOPでマウスの座標を送るのですがデバッグしづらいのでLFO CHOPで仮想のマウス座標を作成します。Metaball SOPのCenterをこのCHOPのtxおよびtyとリンクさせます。
次にForce SOPのDirectional ForceのVortex ForceとSpiral Forceを1に設定して回る力がかかるようにします。最後にParticle SOPの3つめの入力にForce SOPの出力を入れるとBOXのパーティクルが引っ張られるようになります。
SOP to CHOPして色と形を作る
SOP to CHOPでLifeを取得してそこからBoxのパーティクルのサイズを決めるScaleというパラメータを作ります。寿命と現在の年齢を取得してMathで正規化し、LookUp CHOPを使って最初と最後は小さく、寿命の真ん中ぐらいで最大のサイズになるように調整します。色はNoise CHOPでランダムで決まるように作成します。
仕上げ
Particle SOPやBox SOPのパラメータを変更して見た目を詰めていきます。また、パーティクルの出現位置を決めるSphere SOPの位置もランダムで代わるようにします。 最後にBlur TOPを使ったブルーム(光っているような表現)をつくります。