CG 日記

modoでホーミングミサイル

modoのパーティクルノードでホーミングミサイルを作ってみた。
ミサイルの動きはFlashゲームなんかで使われてるのと同じ基本的な計算を使用しています。球体は正弦波ノードで自動的にアニメーションしてます。
パーティクル全体のスケマティックはこんな感じです。

全部解説すると大変なので、ミサイルが追尾する部分の処理について解説してみます。
追尾部分だけ表示するとこんな感じです。

上の部分はメッシュからSurface Emitterを使用してミサイル用のパーティクルを発生させています。
Particle Simulation は Particle Look At Modifier を経由してリプリケータに接続します。
Particle Look At Modifier はミサイルが目標アイテム方向を向くように設定するために使用しています。

下の部分がミサイルが追尾する処理です。modoではパーティクルの動作はParticle Operatorを使用します。Particle Operatorはパーティクル1つ1つに対して様々な動作を設定可能にするノードです。

ベクトルを求める

Particle Operatorに「位置」「速度」「フォース」チャンネルを追加します。
目標アイテムの「位置」(画像ではロケータ)とParticle Operatorの「位置」を、ベクトル演算ノードを使用して「減算」します。「位置」を減算することでパーティクルと目標アイテム2点の方向を求めています。
減算の出力結果をベクトルノードの 長さの設定ノード を使用して「長さ」を設定します。
この処理は毎フレーム計算されます。

パーティクルを目標アイテムの方向に移動させる

長さの設定ノードの出力結果と、Particle Operator の「速度」をベクトル演算ノードを使用して「減算」します。
減算した出力結果を「フォース」に接続します。ベクトル演算ノードの出力をそのまま「フォース」に接続すると値が大きすぎるので、演算ノードを使用して値を小さくします。

以上でホーミングミサイルの完成です。
ちなみに短時間でこういう表現を作りたい場合は、LWのフロッキング機能を使用した方が圧倒的に早いですw あらかじめ機能がまとまって用意されてるのは手軽でいいですね。
modoのパーティクルは自由度が高くて素晴らしいのですが、MaxやLWで手軽に作れるような表現も、計算方法を調べて検証するところからスタートになるので時間がかかってしまいます。Particle Expression Modifier でバリバリ処理できれば色々凄い表現ができる気がします。

コメントを残す

*