はじめに
TouchDesignerのコンポーネントノードでは、コピー&ペーストや、ReplicatorCOMPを用いて、指定したノードへの参照を保持する形で、ノードの複製を行うことができます。
この、参照を保持したノードの複製を、特別にCloneと呼称しますが、
今回はCloneの詳細について公式のドキュメントから抜粋して日本語でまとめてみようと思います。
Derivative official documentation - Clone
Cloneとは
冒頭に述べたように、TouchDesignerでは、ReplicatorCOMPを用いて動的にノードを生成することができます。
(コピー&ペーストでも同様のことができますので、今回はReplcatorCOMPに集中して記述します。)
TouchDesignerにおける「ノードの複製」では、単に同じノードを新規作成して複製する方法と、参照を保持して複製するCloneの、2通りの方法が用意されています。
その指定方法は、複製する対象のCOMPノードのパラメータ->Commonタブ->Clone Masterで設定を行います。
例えば、それぞれのコンテナの内部に異なるMovieを配置していたとします。


その後に、container2の パラメータ -> Commonタブ -> Clone Master にcontainer1を指定すると、container2の状態がそっくりそのままcontainer1の状態に置き換えられます。
この時のcontainer1がクローンのMaster、container2がクローンとなります。
Clone Masterを設定した後にこれを解除して、Ctrl+zを押しても、Clone以前の情報は戻って来ないので注意してください。
Clone後にクローンされたノードの内部のパラメータを操作することは可能ですが、
Masterのパラメータが変化した瞬間上書きされてしまいますので、
クローンした場合に操作するパラメータをMasterのみに限定するのが一般的かと思います。
Cloneの際の特徴
クローン間で共通化されるもの
- クローン内部には、Masterが保持しているノードと同一のものを含む
- ノード間の接続とレイアウトが同一となる
- クローン内部のノードのパラメータは、Master内にあるノードのパラメータと強制的に一致する(本体のCOMPのパラメータは変化可能)
- クローン内部のノードのフラグ(バイパスやビュワーなど)は強制的に一致する
クローン間で独立するもの
- コンポーネントへの入力 - inを介してクローン内部に入るCHOPやSOPのようなオペレータは、異なる入力を持つことがあります。したがって、クローン内のノードからのデータ出力は、クローン自体からのデータ出力と同様に、異なることがあります。
- 変数 - オペレータの親の名前、番号を使用したクローン内のノードにある変数はクローン間で変化します。たとえば、クローンされたノード名の数字(digits)を使用して、テーブルの値を検索することができます。したがって、パラメータは同じ式ですが、評価値が異なる場合があります。
- Immuneノード - クローン内部にあり、Immuneフラグが有効になっているノードは操作不可で、ユニークです。Immuneフラグが設定されているノードは、クローンのマスターと一致させる必要はありません。たとえば、Immuneフラグが有効なTable DATをクローン内に置くことで、ユニークにカプセル化し、移植性のあるものにすることができます。
- コンポーネントのパラメータ - クローンされたコンポーネントのパラメータ(レイアウト、Background、オーバーライド、トランスフォーム)などは変化します。これは、クローン内部のノードのパラメータではなく、クローン自体のパラメータです。
クローンのImmunityとImmuneフラグ
Clone Immunityは、クローン内部に存在するノードをMasterと独立して存在することを許可するという意味を持ちます。
Immuneされたノードは、ノードのImmuneフラグを有効にすることで作成することができます。
クローン内部に任意の数のImmuneノードを追加することが可能で、
マスターの内容が変更されてもオーバーライドされません。
例えば、クローン間で独立したDATテーブルをクローン内に保つためにImmuneフラグを使用します。
Immuneノードをマスターに配置すると、現時点でのマスターの値を使用し、初回クローンのみ各クローンにそのImmuneノードが作成されます。
その後、マスター内のImmuneノードの値を変更、削除しても、クローン内のImmuneノードは更新されません。
すでに作成したクローンのパラメータをMasterと揃える
マスターの任意のパラメーターを右クリックし、「Copy to all clones」を選択します。これにより、すべてのクローンが検索され、値がすべて同じになります。