Replicator COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Replicator COMP の機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 表に従って部品を複製する

Replicator COMPは、テーブルの行数または指定された数だけマスター COMP のコピーを生成する、TouchDesigner の for-loop コンポーネントです。Clone COMP がマスターの内容を 1 つの COMP に複製するのに対し、Replicator COMP は node そのものを N 個生成 し、Destination 配下に展開します。

主な用途 🎯

  • Table DAT の各行を 1 つの replicant にマッピングしてコンポーネントを動的に複製
  • Number of Replicants 指定による固定数の replicant 生成 (グリッド UI・タイル配置等)
  • Master Operator の構造をテンプレートに、Destination 配下に node 群を一括展開
  • Callbacks DAT (Python) または Script (Tscript) で replicant ごとのカスタマイズ処理を実行
  • Layout (Off / Horizontal / Vertical / Grid) で生成された node の network 配置を自動整列

データフロー 🔄

入力: Master Operator (複製元 COMP) + Template DAT Table または Number of Replicants

テーブル行数または指定数だけ replicant を生成 + Callbacks / Script 適用

出力: Destination 配下に配置された node 群

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Replicator Page 📁

Replication Method .method 🎛️

テーブル行数で複製するか、固定数で複製するかを切替えるメニューパラメータ

項目 内部名 説明
By Number .bynum 下記 Number of Replicants で指定した固定数を複製
By Table .bytable Template DAT Table の各行に対して 1 つの replicant を生成

複製ソース 🔢

Number of Replicants .numreplicants 🔢
Replication Method = By Number 時に生成する replicant の個数
– 値を変えると不足分は新規生成、超過分は削除される

Template DAT Table .template 📋
By Table モードで replicant 生成を駆動する Table DAT へのパス
– テーブルの行数 = 生成される replicant 数

Name from Table .namefromtable 🏷️

生成される node 名の生成方法を決定するメニューパラメータ

項目 内部名 説明
Row Index .rowindex Operator Prefix + 行番号 (デフォルト: item1, item2, …。最上行は 0)
Column by Index .colbyindex Column Index で指定した列番号のセル値を node 名として使用
Column by Name .colbyname Column Name で指定した列名 (1 行目のヘッダ) のセル値を node 名として使用

テーブル参照パラメータ 📑

Ignore First Row .ignorefirstrow 🚫
– オンの場合、Template DAT Table の 1 行目を replicant 生成対象から除外
– ヘッダ行のあるテーブルでよく使う

Column Name .colname 🔤
Column by Name モードで node 名として参照する列のヘッダ名

Column Index .colindex 🔢
Column by Index モードで node 名として参照する列番号 (0 始まり)

Operator Prefix .opprefix 🆎
– 生成される全 node 名の先頭に付与する接頭辞 (デフォルト: item)

Master / Destination 📍

Master Operator .master 🧬
– 複製元として使う node / COMP へのパス
– 通常は Replicator 自身の内部に配置した master COMP を指定

Destination .destination 📂
– 生成された replicant 群を配置する先のパス
.. = Replicator COMP の親 (= Replicator と同じ階層)
. = Replicator COMP の内部
– 空欄の場合はエラーになります

Maximum Operators .maxops 🛡️

replicant 数の上限設定:

  • Maximum Operators (enable): domaxops — 下記の上限値を有効化するチェックボックス
  • Maximum Operators (max): maxops — 生成可能な replicant の最大数 (誤って巨大なテーブルを指定したときの安全弁)

Callbacks / Script 📝

Callbacks DAT .callbacks 🐍
– 各 replicant の生成・削除イベントに対応する Python コールバックを記述した DAT へのパス
– 詳細は公式 replicatorCOMP_Class ドキュメント参照

Script .tscript 📜
Tscript 専用: replicant ごとに実行される 1 行スクリプト (Python では Callbacks DAT を使用)
me.curItem で現在の replicant を参照可能
– 利用可能な変数: $ITEM (現在の replicant 名) / $MASTER (master 名) / $LOCATION (location component 名)

Script Names .scriptmenu 📋
– 右隣のドロップダウンから定型 Tscript (master を非表示 + replicant を表示 等) を選択してプリセット投入

Layout .layout 📐

生成された replicant を network エディタ上にどう配置するかを決定するメニューパラメータ

項目 内部名 説明
Off .off 全 replicant を同一位置に重ねて配置
Horizontal .horizontal 水平方向に並べて配置
Vertical .vertical 垂直方向に並べて配置
Grid .grid グリッド状に配置

Layout Origin .layoutorigin 📌

Layout 配置の起点座標 (左上 node の左下隅):

  • Layout Origin X: layoutorigin1 — 配置起点の X 座標
  • Layout Origin Y: layoutorigin2 — 配置起点の Y 座標

Incremental Update ⏱️

Incremental Update (enable) .doincremental
– 大量 replicant 生成時のフレーム落ちを避けるため、生成を複数フレームに分割する

Incremental Update (per frame) .increment ⏯️
– 1 フレームあたりに生成する replicant の最大個数 (デフォルト: 1)

Recreate 🔄

replicant の再生成パルス:

  • Recreate All Operators: recreateall — Replicator が生成した全 node を削除し、現在のテンプレート・パラメータで作り直すパルス
  • Recreate Missing Operators: recreatemissing — 既存 replicant はそのままで、テーブル行に対応する node が無いものだけ作り直すパルス

Common Page 🔧

Parent Shortcut .parentshortcut 🔗

コンポーネント内部からこの COMP へのパスとして使えるショートカット名:

  • Parent Shortcut: コンポーネント内部の任意の場所からこの COMP を参照する際のショートカット名 (parent.<name> 形式で利用可能)

Global OP Shortcut .opshortcut 🌐

プロジェクト全体からこの COMP を参照するグローバル名:

  • Global OP Shortcut: プロジェクト内のあらゆる場所からこの COMP へのパスとして使えるグローバル名 (op.<name> 形式で利用可能)

Internal OP .iop 📎

Internal OP シーケンス (コンポーネント内部 OP への名前付き参照):

  • Shortcut: iop0shortcut — コンポーネント内部の OP に対するショートカット名
  • OP: iop0op — このコンポーネント内部の対象 OP へのパス

Node View .nodeview 👁️

ノードビューア (Network エディタ上のサムネイル) に表示する内容を決定

項目 内部名 説明
Default Viewer .default コンポーネントタイプ標準のビューアを表示
Operator Viewer .opviewer 指定した任意 OP のノードビューアを表示

Operator Viewer .opviewer 🖼️

Operator Viewer モード時に表示する対象 OP:

  • Operator Viewer パス: Node View が opviewer モードのとき、そのビューア内容として表示する OP のパス

Cloning .cloning 🧬

マスター COMP の内容を複製する Cloning 設定:

  • Enable Cloning: enablecloning — Clone Master の内容を継続的に複製するかを切替
  • Enable Cloning Pulse: enablecloningpulse — その瞬間だけ Clone Master の内容を瞬時に複製
  • Clone Master: clone — 複製元となるマスターコンポーネントへのパス

Load on Demand .loadondemand

必要時のみメモリにロードする遅延ロード設定:

  • Load on Demand: オンの場合、このコンポーネントは実際に必要となるまでメモリにロードされない (起動時間・メモリ消費の最適化)

External .tox .externaltox 💾

外部 .tox ファイルとの連携設定:

  • Enable External .tox: enableexternaltox — 起動時に外部 .tox ファイルからロード
  • Enable External .tox Pulse: enableexternaltoxpulse — 外部 .tox ファイルから即時リロード
  • External .tox Path: externaltox — ディスク上の .tox ファイルへのパス
  • Reload Custom Parameters: reloadcustom — コンポーネントのカスタムパラメータ値を再読み込み
  • Reload Built-In Parameters: reloadbuiltin — コンポーネントの組み込みパラメータ値を再読み込み
  • Save Backup of External: savebackup — .toe ファイル内に外部 .tox のバックアップコピーを保存
  • Sub-Component to Load: subcompname — .tox 内部の特定 COMP のみを取り出してロード

Relative File Path Behavior .relpath 📁

このコンポーネント内部での相対ファイルパスの解決基準

項目 内部名 説明
Use Parent’s Behavior .inherit 親コンポーネントの設定を継承
Relative to Project File (.toe) .project .toe プロジェクトファイルからの相対パスとして解決
Relative to External COMP File (.tox) .externaltox 外部 .tox ファイルからの相対パスとして解決

Parameter Color Space .parmcolorspace 🎨

このコンポーネント内の色パラメータをどの色空間として解釈するか

項目 内部名 説明
sRGB .srgb 標準的な sRGB ガンマ空間
sRGB – Linear .srgblinear sRGB プライマリでガンマ線形 (1.0)
Rec.601 (NTSC) .rec601ntsc Rec.601 NTSC 規格の色空間
Rec.709 .rec709 HDTV 用 Rec.709 色空間
Rec.2020 .rec2020 UHDTV / HDR 向け Rec.2020 広色域
DCI-P3 .dcip3 デジタルシネマ DCI-P3 色空間
DCI-P3 (D60) .dcip3d60 D60 白点 DCI-P3
Display-P3 (D65) .displayp3d65 D65 白点 Display-P3 (Apple ディスプレイ等)
ACES2065-1 .aces2065-1 ACES アーカイブ用色空間 (AP0 プライマリ)
ACEScg .acescg ACES CG 作業用色空間 (AP1 プライマリ)
Passthrough .passthrough 色変換を行わず値をそのまま扱う

Parameter Reference White .parmreferencewhite

色パラメータの基準白色の扱い

項目 内部名 説明
Default For Color Space .default 選択した色空間のデフォルト基準白を使用
Use Parent Panel .useparent 親パネルの基準白設定を継承
Standard (SDR) .sdr 標準ダイナミックレンジ (SDR) 基準白
High (HDR) .hdr ハイダイナミックレンジ (HDR) 基準白
UI .ui UI 表示用の基準白

実践アイデア 💡

Example 1: テーブル駆動のボタン UI 自動生成 🎛️

Table DAT (ボタン定義) → Replicator COMP (By Table) → Button COMP × N → Container COMP

Table DAT に label / action 列を持つ行を並べ、Replicator COMP の By Table モードで各行を 1 つの Button COMP として展開、Container COMP 内に動的な UI パネルを構築するフロー。

  1. Master として Button COMP を 1 個用意し Replicator の内部に配置
  2. Replication MethodBy Table に切替え、Template DAT Table にボタン定義 DAT を指定
  3. Name from TableColumn by NameColumn Namelabel に設定
  4. Destination.. に設定して Replicator と同じ階層の Container 内に Button を配置
  5. Callbacks DAT で onReplicantCreated をフックし、各 Button の paneldisplay と label を行データから設定

Example 2: Number of Replicants でグリッドアレイ生成 🔲

Geometry COMP (master) → Replicator COMP (By Number, numreplicants=64) → Grid layout

固定数 (64 個) の Geometry COMP インスタンスを Replicator で生成し、Layout = Grid で network 上にきれいに並べる。各 replicant の位置・色は後段の Callbacks DAT で行列計算から決定する用途。

  1. Replication MethodBy NumberNumber of Replicants を 64 に設定
  2. Master Operator に複製元の Geometry COMP を指定
  3. LayoutGrid に、Maximum Operators を有効にして上限値で安全弁を設定
  4. Callbacks DAT で onReplicantCreated ごとに tx/ty を行列ベースで上書き

Example 3: Incrementalで大量複製の負荷分散 ⏱️

大規模 Table DAT (1000+ rows) → Replicator COMP (Incremental Update on, increment=10/frame) → ... 

1000 行を超えるテーブルから一気に replicant を生成するとフレーム落ちが発生するため、Incremental Update を有効化し 1 フレームあたり 10 個ずつ生成して負荷を分散する。生成完了は Callbacks DAT の onReplicantsBuilt で検知する。

  1. Replication MethodBy Table に設定し大規模 DAT を Template に指定
  2. Incremental Update をオン、Incremental Update (per frame) を 10 に設定
  3. Callbacks DAT に onReplicantsBuilt を実装し、生成完了時に後続処理を起動
  4. 途中でテーブル全体を作り直したい場合は Recreate All Operators パルスを押す

関連オペレータ 🔗

類似機能OP 🔍

  • TODO

組み合わせ推奨OP 🔄

  • Table DATBy Table モードで replicant 生成を駆動するデータソース
  • Select DAT — 巨大 Table から replicant に渡す行範囲を絞り込み
  • Convert DAT — CSV / 外部データを Table DAT 形式に整形してから Replicator に渡す
  • Container COMP — Destination として replicant 群を収納する panel 親
  • Base COMP — 汎用コンテナとして Master の格納場所に利用
  • OP Find DAT — Replicator が生成した全 replicant の path を一覧化して後段処理に渡す

前処理・後処理COMP 🎯


Info CHOP情報 📊

Replicator COMP は Info CHOP による詳細情報取得に対応しています。代表的なチャンネルは num_children (子 node 数 = 生成済 replicant 数) / total_cooks (累積クック回数) / cook_time (直近クック時間 ms) / cooked_this_frame (今フレームでクック済か) / warnings / errors 等です。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: replicant が生成されない
✅ Solution:

  • Destination が空欄になっていないか確認 (空欄はエラー)
  • Replication MethodBy Table の場合、Template DAT Table が正しいパスを指しているか確認
  • Master Operator が有効な node を指しているか確認

❌ Problem: node 名が item1, item2… の連番のままで変えられない
✅ Solution:

  • Name from TableColumn by Index または Column by Name に切替
  • Column Name / Column Index でテーブル内の正しい列を指定
  • 1 行目がヘッダの場合は Ignore First Row をオンに

❌ Problem: 大量 replicant 生成でフレーム落ちする
✅ Solution:

  • Incremental Update をオンにして 1 フレームあたりの生成数を制限
  • Maximum Operators で意図しない大量生成を防止
  • Master COMP を軽量化 (内部ノード数を削減)、または Load on Demand を活用

❌ Problem: テーブルを書き換えても古い replicant が残る
✅ Solution:

  • Recreate Missing Operators パルスで不足分のみ再生成
  • 全部作り直したい場合は Recreate All Operators パルスを押す
  • Callbacks DAT の onRemoveReplicant で削除処理が阻害されていないか確認

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました