Tips

modoでパーティクルの位置をブレンドする方法

modoでパーティクルの位置をブレンドする方法について書いてみます。
901で追加された Particle Constraint と Matrix Blend ノードを使用すると、アイテムの形状にパーティクルが集まるような表現を手軽に作ることができます。

 

単純なパーティクル位置のブレンドの画像です。

Particle Operator に「ID」「位置」を追加。IDを Particle Constraint の Particle ID にリンクします。これでパーティクルのIDが近いもの通しをコンストレイントしたことになります。

Particle Constraint の「出力」を Matrix Blend ノードでブレンドします。 Matrix Blend はその名の通り入力されたマトリクスをブレンドするノードです。「ブレンド」が0%だと「マトリクスA」、100%だと「マトリクスB」のマトリクスを出力します。50%だとマトリクスABの中間地点を出力します。ブレンド チャンネルにキーを設定することで、パーティクルの位置をアニメーションしてます。
Matrix Blend はいろんなリグに使える便利なノードだと思います。

Matrix Blend の「マトリクス出力」を Matrix Vector でXYZの移動に分解して、Particle Operator の「位置」にリンクします。これでパーティクルの位置をブレンドすることができます。画像ではMatrix Blendを2個つかって3アイテムの頂点位置とブレンドしてますが、最初はMatrix Blendを1個で2アイテムから試すとわかりやすいと思います。

 

パーティクル位置のブレンドはポリゴンだけでなく、別のパーティクルシミュレーションとブレンドすることもできます。

スケマティックでParticle Simulation_2にCSV Point Cash ノード使用してますが、なくても大丈夫です。

 

単純なブレンドだと機械的に補完され過ぎて感じるかも知れません。このチュートリアルのように、ベクトル減算と Vector:Multiply By Scalar ノードでパーティクルの速度を変化させるとリニアなブレンド感が緩和されると思います。

Randomize ID は速度にランダムさを設定してます。

 

パーティクル位置をブレンドすると、ロゴに集まるパーティクルなんかを作ることができます。

パーティクルの波うつ軌道は Curve Force です。GLの画像で青色のパーティクルが変な動きしてるのは、 CSV Point Cache のオフセットを使ってタイミング調節してるためです。CSV Point Cache のオフセットにキーを設定するとステップ補間になってしまうので、演算ノードをリンクして、演算ノードのチャンネルにキーを設定してます。

ここで問題になったのが、12.1でCSV Point Cache を Particle Constraint にリンクしてシミュレーション実行するとmodoがフリーズします。いちどParticle Simulationを繋いで計算した直後に、CSV Point Cache を繋いでシミュレーション実行するとフリーズせずに動作するというハックに気がついたので何とかなりました。

何となく Particle Constraint はバグってる気がします。シミュレーションを繰り返すと計算速度が徐々に遅くなるような気がするのと、パーティクル数が少なくてもシミュレーションに時間がかかりすぎる印象があります。

Particle Constraint と同じようなことは、 Matrix Compose と ジオメトリ コンストレイントノードを使って再現することもできます。こちらのノード処理の方が Particle Constraint より速く動作するのでお勧めです ( CSV Point Cache とブレンドしたい場合は Particle Constraint を使う必要がある気がします)

 

参考

emFlock2 みたいなの簡単に作れるようにならないかなー。
http://www.mootzoid.com/plugin/emflock2#lightbox[demoAssets]/0/

Modo Tips



 

記事のまとめページ

コメント

  1. 通りすがりのもの より:

    どれも素晴らしいチュートリアルです。
    ありがとうございます!凄いためになります。

    1. kai より:

      ありがとうございます。そう言っていただけると嬉しいです。:-)

コメントを残す

*