
概要 📖 – 表に従って部品を複製する
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 群
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 パネルを構築するフロー。
- Master として Button COMP を 1 個用意し Replicator の内部に配置
Replication MethodをBy Tableに切替え、Template DAT Tableにボタン定義 DAT を指定Name from TableをColumn by Name、Column Nameをlabelに設定Destinationを..に設定して Replicator と同じ階層の Container 内に Button を配置- 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 で行列計算から決定する用途。
Replication MethodをBy Number、Number of Replicantsを 64 に設定- Master Operator に複製元の Geometry COMP を指定
LayoutをGridに、Maximum Operatorsを有効にして上限値で安全弁を設定- 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 で検知する。
Replication MethodをBy Tableに設定し大規模 DAT を Template に指定Incremental Updateをオン、Incremental Update (per frame)を 10 に設定- Callbacks DAT に
onReplicantsBuiltを実装し、生成完了時に後続処理を起動 - 途中でテーブル全体を作り直したい場合は
Recreate All Operatorsパルスを押す
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- Table DAT —
By 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 MethodがBy Tableの場合、Template DAT Table が正しいパスを指しているか確認Master Operatorが有効な node を指しているか確認
❌ Problem: node 名が item1, item2… の連番のままで変えられない
✅ Solution:
Name from TableをColumn 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で削除処理が阻害されていないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — COMP 概要
- TouchDesigner Wiki — Category:COMPs
- TouchDesigner Wiki — Category:Components
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Replicator COMP
- TouchDesigner公式ドキュメント – ReplicatorCOMP Class
- Component (コンポーネント概念)

