LoginSignup
5
8

More than 5 years have passed since last update.

[#TouchDesigner] CloneとCloneImmuneについて

Posted at

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3132373430322f34633563393131652d623935642d343337392d343239392d3361303263313462336430342e706e67.png

はじめに

TouchDesignerのコンポーネントノードでは、コピー&ペーストや、ReplicatorCOMPを用いて、指定したノードへの参照を保持する形で、ノードの複製を行うことができます。
この、参照を保持したノードの複製を、特別にCloneと呼称しますが、
今回はCloneの詳細について公式のドキュメントから抜粋して日本語でまとめてみようと思います。

Derivative official documentation - Clone

Cloneとは

冒頭に述べたように、TouchDesignerでは、ReplicatorCOMPを用いて動的にノードを生成することができます。
(コピー&ペーストでも同様のことができますので、今回はReplcatorCOMPに集中して記述します。)
TouchDesignerにおける「ノードの複製」では、単に同じノードを新規作成して複製する方法と、参照を保持して複製するCloneの、2通りの方法が用意されています。
その指定方法は、複製する対象のCOMPノードのパラメータ->Commonタブ->Clone Masterで設定を行います。

例えば、それぞれのコンテナの内部に異なるMovieを配置していたとします。
2018-05-13_165550.png

その後に、container2の パラメータ -> Commonタブ -> Clone Master にcontainer1を指定すると、container2の状態がそっくりそのままcontainer1の状態に置き換えられます。
2018-05-13_165609.png
この時のcontainer1がクローンのMaster、container2がクローンとなります。

Clone Masterを設定した後にこれを解除して、Ctrl+zを押しても、Clone以前の情報は戻って来ないので注意してください。
2018-05-13_165642.png

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」を選択します。これにより、すべてのクローンが検索され、値がすべて同じになります。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8