modoでモーショントレイル、アイテムが移動したときの軌跡の作り方について書いてみたいと思います。モーショングラフィックでよく見かける表現です。
スケマティックはこんな感じです。modo 13で追加されParticle ArrayとCreate Polygonsを使用します。
Arrayとは
Arrayはポイント、カーブ、アイテムの位置、文字列など様々な値から、頂点番号のような配列データを生成するノードです。Create Polygonsは配列データ使用してポリゴン、ライン、カーブを生成するノードです。
ArrayとCreate Polygonsを使用すると、modo 12以前ではできなかったアニメーション可能で自由度の高いポリゴン生成ができるようになります。
今回のモーショントレイルのような表現では、Meshの頂点をParticles to Arrayの「複数フレームモード」を使用してアニメーション全体の配列データを生成しています。
カーブの長さをアニメーションさせるためFilter ArrayとInt Range From Patternを使用して、カーブの始点と終点の位置をアニメーションしてます。最後にCreate Polygonsでカーブを生成します。
Curves to Arrayを使用すると、Create Polygonsで生成したカーブ間にポリゴンを貼ることができます。NURBSサーフェースのような制御ができて面白いですね。
静止したカーブをレンダリングする場合は、アイテムのプロパティで「カーブをレンダリング」をONにします。
アニメーションをレンダリングするとこんな感じになります。カーブごとに色を変えるのは、Variation Textureを使用しています。
ホーミングレーザーっぽい表現にも使えそう。
サンプルファイルではカーブ生成用に専用のメッシュを使用していまが、本当はSurface Particle Generatorを使用してランダムな位置からカーブを生成しようと思ってました。ですがSurface Particle Generatorを使用すると動作が遅くなるのでやめました。
ほかにもCreate Polygonsが原因なかわかりませんが、2つほど問題に遭遇しました。
- モーションブラーを使用するとレンダリング時にカーブが消える。
- GLよりカーブが短くレンダリングされる。
Arrayの使い方に失敗してるのかも知れませんが、安定した動作でより高度な表現をしたい場合には「TracerX」を使用するのがよさそうです。
参考
Arrayのステキな使い方が紹介されてるスレッドで、とても参考になります。https://community.foundry.com/discuss/topic/146466/arrays-in-the-mix