
概要 📖 – DAT を外へ送出する
Out DATは、Base COMP や Container COMP の出力ポートとして内部の DAT データを外部ネットワークへ送出し、コンポーネントの DAT 出口を担う DATです。Label パラメータで親 COMP の出力コネクタにマウスホバー時に表示されるポップアップラベルを設定でき、COMP の出力の意図 (どんな DAT を外に出しているか) を明示できます。Out CHOP / Out TOP / Out SOP 等と同じ「COMP 出力ポート送出」族の DAT 版で、In DAT と対になり COMP の入出力インターフェースを構成します。
主な用途 🎯
- Base COMP / Container COMP の出力ポートとして内部 DAT データ (テキスト / テーブル) を親ネットワークへ送出
- コンポーネント内部処理をブラックボックス化しつつ必要な DAT データだけを外部に公開し、モジュール化された再利用 COMP を構築
- Label パラメータで親 COMP の出力コネクタにポップアップ表示するラベル文字列を設定し、出力の意図を明示
- 1 つの COMP から複数の独立 DAT 出力を提供 (Out DAT を内部に複数配置、各々が親 COMP の
output1/output2に対応) - In DAT と対をなす入出力インターフェースとして COMP の入出力契約を明示し、テンプレート COMP の再利用性を高める
データフロー 🔄
入力: COMP 内部の上流 DAT (Table / Text / Evaluate / Convert / Select 等)
↓
Out DAT (COMP 内部に配置)
↓
親 COMP の出力ポート (右側 output コネクタ)
↓
COMP 外部の下流 DAT チェイン (Convert / Select / Execute / 他 COMP の入力等)
↓
出力: COMP 外部ネットワーク
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Out Page 📤
Out パラメータ 🔌
Label .label 🏷️
– この出力ポートに付けるラベル文字列
– 親 COMP の出力コネクタ上にマウスを当てたときに表示されるポップアップで使用される
– 「何を出している出口か」(例: result table / log lines / filtered rows 等) を明示することで、再利用 COMP の出力契約を可視化できる
Common Page 🔧
Language .language 📝
DAT が動作するスクリプト言語の決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT のスクリプト言語を使用 |
| Node | .node |
この DAT 自身のスクリプト言語を使用 |
Edit/View Extension .extension 📄
外部エディタに公開するファイル拡張子の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| dat | .dat |
汎用的なファイル拡張子 dat を使用 |
| From Language | .language |
DAT のスクリプト言語に応じた拡張子を自動選択 |
| Custom Extension | .custom |
Custom Extension で指定したカスタム拡張子を使用 |
Custom Extension .customext 🔤
Edit/View Extension が Custom Extension のときに適用される拡張子:
- Custom Extension 文字列:
Edit/View Extensionがcustomのときに使用される任意のファイル拡張子
Word Wrap .wordwrap 🔁
ノード表示でのワードラップ (折り返し) の有効化
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT の Word Wrap 設定を継承 |
| On | .on |
Word Wrap を有効化 (ノード上の長い行を折り返し表示) |
| Off | .off |
Word Wrap を無効化 (折り返さずそのまま表示) |
実践アイデア 💡
Example 1: COMP 出力に Table 🔌
内部 Table DAT → Convert/Select 等 → Out DAT → Base COMP 出力ポート → 外部 DAT チェイン
- Base COMP を作成し、内部に Out DAT を 1 個配置
- 内部に
Table DATを用意し、Convert DAT やSelect DATで整形してから Out DAT に渡す - Out DAT が親 COMP の右側
output1出力コネクタに自動でマッピングされ、外部から接続可能になる - 親ネットワークで Base COMP の出力ポートに別の DAT (例: File Out DAT) を繋ぎ、整形済みテーブルを外部に取り出せる
Example 2: Label で出力明示 🏷️
Base COMP (内部 Out DAT × 2、各 Label 設定済) → output1=result_table / output2=log_lines → 外部
- Base COMP に Out DAT を 2 個配置し、それぞれ
output1/output2に対応させる - 1 個目の Out DAT の
Labelをresult tableに設定 (処理結果テーブルを出す出口) - 2 個目の Out DAT の
Labelをlog linesに設定 (ログ文字列を出す出口) - 親 COMP の出力コネクタにマウスを乗せると Label がポップアップ表示され、どちらの出力から何が出るか即座に分かる
- 再利用 COMP の出力契約がドキュメントなしでも自己説明的になり、繋ぎ直し時の取り違えを防げる
Example 3: 外部へスクリプト送出 🐍
内部 Text DAT (動的生成スクリプト) → Out DAT → Base COMP 出力 → 外部 Execute DAT
- Base COMP 内部で
Text DATに動的に Python スクリプトを構築 (テンプレート + パラメータ埋め込み) - Out DAT に渡し、
LanguageをInputにして上流の言語設定を継承させる - 親 COMP の出力ポートから外部の Execute DAT や Evaluate DAT に接続
- Base COMP がスクリプト生成器として機能し、設定値を変えるだけで外部に異なるロジックを発行できるプラガブルな仕組みになる
関連オペレータ 🔗
類似機能OP 🔍
- File Out DAT — DAT データをファイルへ書き出す終端 DAT、Out DAT は親 COMP の出力ポートへ送出する点が異なる
- Null DAT — ネットワーク内の終端パススルー DAT、Out DAT は COMP の境界を越えて外部に出力する役割を担う
組み合わせ推奨OP 🔄
- In DAT — COMP の入力ポートを担当、Out と対になりコンポーネントの入出力インターフェースを構成
- Convert DAT — Out 直前に挟んでタブ → カンマ等の区切り変換やテキスト ↔ テーブル相互変換で出力フォーマットを整える
- Select DAT — Out 直前で外部に公開する行 / 列のみを抽出し、内部全体を晒さずインターフェースを絞れる
- Evaluate DAT — Out 直前で式評価を完了させ、参照解決済みの確定テーブル / 文字列を外部に渡す
- File Out DAT — 親 COMP の外側で Out DAT の出力を受け取り、ファイルへ永続化する後段の組合せ
前処理・後処理DAT 🎯
- 前処理: Convert DAT、Select DAT、Evaluate DAT
- 後処理: In DAT、File Out DAT、Null DAT
Info DAT情報 📊
Out DAT は Info DAT による詳細情報取得に対応しています (num_rows / num_cols / total_cooks / cook_time / cook_frame / warnings / errors 等の共通 DAT Info チャンネルを参照可能)。外部に送出するテーブルの行数 / 列数の検証や、内部処理の更新タイミング検出に利用できます。
DAT 固有情報 📋
num_rows: DAT の行数num_cols: DAT の列数type: DAT の型 (table / text)is_table: テーブル形式の場合 1、テキスト形式の場合 0
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Out DAT の内容が親 COMP の出力ポートから出てこない
✅ Solution:
- Out DAT は COMP (Base COMP / Container COMP 等) の内部に置かれている必要がある、ネットワーク最上位 (
/) に置いても親への出力にはならない - Out DAT に上流 DAT が接続されているか確認 (接続が無い Out DAT は空の出力になる)
- 同 COMP 内に複数の Out DAT がある場合、Out DAT のインデックス (配置順) と親 COMP の出力ポート番号 (output1 / output2 / …) が一致しているか確認
- 親 COMP の
Outputsページで出力経路が無効化されていないか確認
❌ Problem: Label を変えても出力ポートのポップアップが変わらない
✅ Solution:
- Label の表示は親 COMP の出力コネクタ上にマウスをホバーした時に出るため、Out DAT 自身のノード上ではなく親 COMP の外側コネクタで確認
- Label を変更した直後はキャッシュが残っている場合があるので、ネットワーク view を一度別 COMP に切り替えてから戻して再描画
- 親 COMP が tox 化されている / locked な場合、Label の変更が反映されないことがある (
op('comp1').par.label1.eval()で値を直接確認)
❌ Problem: テーブルとして送出したのに外部でテキスト 1 文字列扱いされる
✅ Solution:
- Out DAT 自体には変換パラメータがないため、テーブル化は Out の前段で完了させる必要がある
- Out 直前に Convert DAT を挟んでテキスト → テーブル変換を実施 (タブ区切り / カンマ区切り等を明示)
- 外部側の受け取り DAT (File Out DAT 等) が
Convert Text to Table相当の設定を要求していないか確認
❌ Problem: COMP を保存・再ロードすると外部接続が外れる
✅ Solution:
- 外部 DAT との接続は親 COMP 側に保存されるため、tox 化前に親 COMP まで含めて保存しているか確認
- Base COMP を
Save Componentで .tox 化する際、外部接続は tox には含まれない (再配置先のネットワークで再接続する設計が必要) - 再利用 COMP の入出力契約を Label で明示しておくと、再配置時の繋ぎ直しが大幅に楽になる
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

