Replicatorコンポーネントは、テーブルの各行に対してノードを作成し、テーブルの変更に応じてノード(Replicator)を作成、削除します。ノードは、完全なコンポーネントとそのコンテンツになります。
Master Nodeパラメータで指定されたノードを受け取り、Templateテーブルの各行(またはNumber of Replicantパラメータで設定された行)に対してマスターのコピーを作成します。
作成されたノードには、2つの方法で名前を付けることができます。コピーには,Node Prefixパラメータで指定したプレフィックスを用いて,item1、item2、 …というように,連続した名前と番号を付けることができます.また,Name from Tableパラメータで指定されたテーブルの列の文字列に基づいてコピーに名前を付けることもできます。
テーブルの最初の行のノードを作成したい場合は、Ignore First Rowパラメータの設定を解除してください。
レプリケータは、LayoutとLayout Originのパラメータで決定されるネットワーク上のグリッドにレイアウトされます。
Replicatorは、マスターとレプリカントがコンポーネントであることを前提としていませんし、必要ともしていません。また、Replicatorは、レプリカントがクローンであることを前提としていません。ただし、マスターノードは、クローンパラメータを自分自身に設定したコンポーネントにすることができます。
各Replicatorに対して、コールバックDATでスクリプトを実行することができます。このスクリプトでは、適応可能な典型的なケースの例を見ることができます。以下はその一部です。
- パラメータのexpressionを変える
`c.par.display.expr = “op(‘thing’)[op.digits, ‘display’]”`
- パラメータのexpressionモードを変更する。
`c.par.display.mode = ParMode.EXPRESSION`
のいずれかのモードになります。
`ParMode.CONSTANT`, `ParMode.EXPRESSION`, or `ParMode.EXPORT`.
テーブルの1行だけが変更されても、他の既存のレプリカントは変更されず、再作成されません。コールバックDATでは、`onRemoveReplicant()`を削除すると、テーブルが再び大きくなったときに再利用できるようにレプリカントを維持します。
これは非常に強力なノードタイプです。例を挙げると(1) テーブルの各行に対応するボタンガジェット。ジオメトリコンポーネントで、3Dパーティクルシステムの各ポイントに複製され、それぞれが別々の動作をするもの。(2) Multi Touch In DATのテーブルを直接リプリケータに送り、各指先に何かを作ることができます。
各行に複製を作成するテンプレートDATテーブルを使用するか、以下の Number of Replicants パラメータを使用して複製を作成する数を設定するかを選択します。
- By Number / bynum
- By Table / bytable
上記のReplication Method パラメータがBy Numberの場合、レプリケータの数を設定します。
複製を実行するテーブルDATのパスを設定します。
ノード名をどのように生成するか設定します。
- Row Index / rowindex
Node Prefixパラメータの後に行番号を使用します。デフォルトでは、item1、item2、item3 …. という名前のノードが作成されます。(最上段は0)
- Column by Index / colbyindex
ノード名はカラム番号で指定されたカラムで決まります。
- Column by Name / colbyname
ノード名は1行目のカラム名で指定されたカラムで決まります。
最初の行はノードを作成しません。
列の先頭に名前が表示されます。
列番号は0から始まります。
すべてのノードにこのプレフィックスを追加します。
レプリケートするノードやコンポーネントを設定します。
レプリケータのノードをどこに置くか設定します。.. と設定すると、親の中にノードを置きますが、これは実際にはReplicatorコンポーネントの横になります。. と設定すると、自分自身の中、つまりReplicatorコンポーネントの中に置きます。空白にすると、エラーになります。
以下のパラメータを有効にして、レプリケータの最大数を設定します。
レプリケートされるノードの最大数。
Tscriptのみ(pythonではコールバックDATを使用)。すべてのレプリケータに対して、スクリプトを実行して、ディスプレイやクローンのパラメータ、レンダリングフラグの設定など、マスターに対して相対的にカスタマイズすることができます。レプリケータはスクリプトコマンドを実行して、各レプリケータをマスターに対してカスタマイズします。ここでは、`me.curItem`を使用して、現在のアイテムにアクセスし、変更を加えることができます。右側のドロップメニューから3つの項目を選択すると、いくつかの例が表示されます。
Tscriptを使用している場合は、いくつかのローカル変数が定義されています。
- $ITEM レプリケートされている現在のノードの名前。
- $MASTER マスターノードの名前。
- $LOCATION ロケーションコンポーネントの名前。
最も一般的なニーズは、マスターを表示しないで、レプリカを表示することです。パネルコンポーネントの場合は、”opparm $ITEM paneldisplay ( 1 )”、ジオメトリコンポーネントの場合は、”opset -d on $ITEM “が一般的です。ポップアップメニューを使って、一般的なスクリプトを作成します。
このメニューでは、よく使われるスクリプト(Tscript)を選択できます。
受信した各イベントのコールバックを含むDATへのパスです。使用方法は replicatorCOMP_Class の章を参照してください。
新しいノードをどのようにレイアウトするか – すべてを一か所にまとめる(Off)、水平、垂直、またはグリッドにするが設定できます。
新しいノードを配置する場所で、左上のノードの左下の角のXY位置を指定します。
- layoutorigin1
- layoutorigin2
レプリケータのインクリメンタルな作成のために、以下のパラメータを有効にします。
複製を作成する際に大きなフレームドロップを避けるために、オペレータの複製を段階的に行います。インクリメンタル・アップデートがオンになっている場合、フレームごとに最大で指定された数の複製を作成します。
作成したすべてのノードを削除し,テンプレートと現在のパラメータを使ってノードを再作成します。
欠落しているオペレーターをテンプレートテーブルから再作成しますが、既に存在するレプリケータを削除して再作成することはありません。
COMP共通- Extensions ページの章を参照して下さい。
COMP共通- Common ページの章を参照して下さい。