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

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

Out DAT の出力ポート機能を示す図

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

概要 📖 – 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 外部ネットワーク

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

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 チェイン
  1. Base COMP を作成し、内部に Out DAT を 1 個配置
  2. 内部に Table DAT を用意し、Convert DATSelect DAT で整形してから Out DAT に渡す
  3. Out DAT が親 COMP の右側 output1 出力コネクタに自動でマッピングされ、外部から接続可能になる
  4. 親ネットワークで Base COMP の出力ポートに別の DAT (例: File Out DAT) を繋ぎ、整形済みテーブルを外部に取り出せる

Example 2: Label で出力明示 🏷️

Base COMP (内部 Out DAT × 2、各 Label 設定済) → output1=result_table / output2=log_lines → 外部
  1. Base COMP に Out DAT を 2 個配置し、それぞれ output1 / output2 に対応させる
  2. 1 個目の Out DAT の Labelresult table に設定 (処理結果テーブルを出す出口)
  3. 2 個目の Out DAT の Labellog lines に設定 (ログ文字列を出す出口)
  4. 親 COMP の出力コネクタにマウスを乗せると Label がポップアップ表示され、どちらの出力から何が出るか即座に分かる
  5. 再利用 COMP の出力契約がドキュメントなしでも自己説明的になり、繋ぎ直し時の取り違えを防げる

Example 3: 外部へスクリプト送出 🐍

内部 Text DAT (動的生成スクリプト) → Out DAT → Base COMP 出力 → 外部 Execute DAT
  1. Base COMP 内部で Text DAT に動的に Python スクリプトを構築 (テンプレート + パラメータ埋め込み)
  2. Out DAT に渡し、LanguageInput にして上流の言語設定を継承させる
  3. 親 COMP の出力ポートから外部の Execute DATEvaluate DAT に接続
  4. 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 🎯


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 で明示しておくと、再配置時の繋ぎ直しが大幅に楽になる

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました