Tips

modoのパーティクルを平面的に移動する方法

放射したパーティクルを平面的に移動する方法について書いてみます。
modoのエミッターはXYZの3軸方向にパーティクルを放射します。これはこれで便利なのですが、平面的にパーティクルを放射したい場合があります。

スケマティックの処理はこんな感じです。

Surface Emitter の設定は「初期速度」「速度の広がり」が 0 で、発生した位置から移動しないような設定です。わかりやすいように「放射レート」にキーを設定して、1フレーム目だけパーティクルを放射するように設定しました。

2D的にパーティクルを移動する処理は Particle Operator を使用します。Particle Operator には特性の「ID」「角速度」「前の位置」「位置」「回転」を追加します。2D的なパーティクル放射に必要なのは「ID」「角速度」のみです。「前の位置」「位置」「回転」は Replicator で複製したアイテムを進行方向に向けるために使用しています。

2D的なパーティクル放射の制御は、「ID」と 360を乗算した値を「Sine」「Cosine」ノードに入力し、その出力値を「角速度」にリンクします。「ID」はパーティクルのIDのことで、パーティクルを個別に制御する場合に使用するための特性です。パーティクルは通常0~1.0の範囲でランダムなID値が割り当てられているので、360と乗算してランダムな方向を設定しています。
※画像には使ってない「Tangent」ノードが含まれていますが、「Tangent」ノードを使うと3軸方向に移動することができます。

Replicator を進行方向に回転する処理は、「前の位置」「位置」を Matrix Construct ノードを使用してベクトルチャンネルを位置のマトリクスに変換します。次ぎに Matrix Construct の出力を Direction Constraint の「起点」と「終点」にリンクし、Direction Constraint の「回転出力」をParticle Operator の「回転」にリンクします。これでパーティクルの移動方向に合わせて Replicator が回転します。「前の位置」を使用している関係で、0フレーム目では Replicator の回転が計算されません。

パーティクルIDと乗算する値を変えると、パーティクルの移動方向を変えることができます。

コメントを残す

*