Instanceの設定方法

image170625_01

たくさんのジオメトリを使用した表現を行う場合、以前紹介したCopy SOPによるテンプレートコピーよりもInstance機能を使用した方が処理が軽く、大量のジオメトリを表示させる事ができます。Copy SOPがテンプレートをジオメトリで指定できるのに対して、InstanceはCHOPを使用します。この辺りが通常と少し違った考え方でCHOPを扱うので基本的なCHOPを使ったInatanceの設定方法を紹介します。

image170625_02

InstanceはGeometryコンポーネントのInstanceページで設定します。InstancingパラメータをONにして、Instance CHOP/DATパラメータでチャンネルを参照するCHOPを指定します。CHOPのどのチャンネルをどのパラメータとして扱うか指定することでジオメトリがコピーされます。

image170625_03

CHOPはジオメトリや様々なパラメータをアニメーションさせるために使用されていますが、この時使用されるCHOPデータはタイムスライスと呼ばれている、タイムスライダーの進行とともに刻々と変化するデータに対して、Instanceで使用するデータはCHOPチャンネルというフレーム範囲を持ったデータです。

image170625_04

CHOPチャンネルタイプのデータは通常のアニメーションデータのように横軸をフレームタイムとしたアニメーションデータとして使用するほかに横軸をInstance数とした配列データとしても使用する事ができます。

image170625_05

CHOPチャンネルデータを作成するには、Animation COMPやWave CHOPを使用します。ChannelページのStart EndパラメータでInstanceの数を定義します。例えば Startを1、Endを31にすると31個のInstanceを生成するためのCHOPチャンネルになります。

image170625_06

Copy SOPのようにモデル形状を元にInstanceを配置したい場合は、SOP to CHOPを使用します。モデル形状を変形させればそれに追従してInstanceもアニメーションします。カラー情報は取れますが、ポイントのアトリビュートには回転やスケールは無いので、アニメーションさせる場合は動的なCHOPチャンネルのロジックを組む必要があります。

image170625_07

サンプルでは以下のような計算でインスタンス毎に初期値が異なる回転する配列を生成しています。
(Instance毎に異なる1〜31の初期値) + (Instance毎の初期値 * 80) + (タイムラインのフレーム数 * 4)

Download SampleFile