概要
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のテーブルを直接リプリケータに送り、各指先に何かを作ることができます。
パラメータ – Replicator ページ
Replication Method / method
各行に複製を作成するテンプレートDATテーブルを使用するか、以下の Number of Replicants パラメータを使用して複製を作成する数を設定するかを選択します。
- By Number / bynum
- By Table / bytable
Number of Replicants / numreplicants
上記のReplication Method パラメータがBy Numberの場合、レプリケータの数を設定します。
Template DAT Table / template
複製を実行するテーブルDATのパスを設定します。
Name from Table / namefromtable
ノード名をどのように生成するか設定します。
- Row Index / rowindex
Node Prefixパラメータの後に行番号を使用します。デフォルトでは、item1、item2、item3 …. という名前のノードが作成されます。(最上段は0)
- Column by Index / colbyindex
ノード名はカラム番号で指定されたカラムで決まります。
- Column by Name / colbyname
ノード名は1行目のカラム名で指定されたカラムで決まります。
Ignore First Row / ignorefirstrow
最初の行はノードを作成しません。
Column Name / colname
列の先頭に名前が表示されます。
Column Index / colindex
列番号は0から始まります。
Operator Prefix / opprefix
すべてのノードにこのプレフィックスを追加します。
Master Operator / master
レプリケートするノードやコンポーネントを設定します。
Destination / destination
レプリケータのノードをどこに置くか設定します。.. と設定すると、親の中にノードを置きますが、これは実際にはReplicatorコンポーネントの横になります。. と設定すると、自分自身の中、つまりReplicatorコンポーネントの中に置きます。空白にすると、エラーになります。
Maximum Operators / domaxops
以下のパラメータを有効にして、レプリケータの最大数を設定します。
Maximum Operators / maxops
レプリケートされるノードの最大数。
Script / tscript
Tscriptのみ(pythonではコールバックDATを使用)。すべてのレプリケータに対して、スクリプトを実行して、ディスプレイやクローンのパラメータ、レンダリングフラグの設定など、マスターに対して相対的にカスタマイズすることができます。レプリケータはスクリプトコマンドを実行して、各レプリケータをマスターに対してカスタマイズします。ここでは、`me.curItem`を使用して、現在のアイテムにアクセスし、変更を加えることができます。右側のドロップメニューから3つの項目を選択すると、いくつかの例が表示されます。
Tscriptを使用している場合は、いくつかのローカル変数が定義されています。
- $ITEM レプリケートされている現在のノードの名前。
- $MASTER マスターノードの名前。
- $LOCATION ロケーションコンポーネントの名前。
最も一般的なニーズは、マスターを表示しないで、レプリカを表示することです。パネルコンポーネントの場合は、”opparm $ITEM paneldisplay ( 1 )”、ジオメトリコンポーネントの場合は、”opset -d on $ITEM “が一般的です。ポップアップメニューを使って、一般的なスクリプトを作成します。
Script Names / scriptmenu
このメニューでは、よく使われるスクリプト(Tscript)を選択できます。
Callbacks DAT / callbacks
受信した各イベントのコールバックを含むDATへのパスです。使用方法は replicatorCOMP_Class の章を参照してください。
Layout / layout
新しいノードをどのようにレイアウトするか – すべてを一か所にまとめる(Off)、水平、垂直、またはグリッドにするが設定できます。
Layout Origin / layoutorigin
新しいノードを配置する場所で、左上のノードの左下の角のXY位置を指定します。
- layoutorigin1
- layoutorigin2
Incremental Update / doincremental
レプリケータのインクリメンタルな作成のために、以下のパラメータを有効にします。
Incremental Update / increment
複製を作成する際に大きなフレームドロップを避けるために、オペレータの複製を段階的に行います。インクリメンタル・アップデートがオンになっている場合、フレームごとに最大で指定された数の複製を作成します。
Recreate All Operators / recreateall
作成したすべてのノードを削除し,テンプレートと現在のパラメータを使ってノードを再作成します。
Recreate Missing Operators / recreatemissing
欠落しているオペレーターをテンプレートテーブルから再作成しますが、既に存在するレプリケータを削除して再作成することはありません。
パラメータ – Extensions ページ
COMP共通- Extensions ページの章を参照して下さい。
パラメータ – Common ページ
COMP共通- Common ページの章を参照して下さい。