
概要 📖 – ネット経由でデータ受信
UDT In DATは、UDT プロトコルで届くデータをネットワーク経由で受信しテーブルへ格納する DATです。高速ストリーミングと信頼性メッセージのプロトコル選択、バイト・行・メッセージ単位の行分割、着信ごとに Python を発火させるコールバックまで備えており、UDT を介した外部連携の受信側基盤として使われます。
主な用途 🎯
- UDT メッセージのネットワーク受信(外部アプリやデバイスから届くデータを受け取りテーブルへ格納)
- プロトコル選択による受信方式の切替(高速ストリーミング / 信頼性メッセージから受信特性を選択)
- 大容量データの確実な受信(UDP より到達保証や順序保証が必要な転送を扱う基盤として利用)
- 受信データのテーブル化と行分割制御(バイト単位 / 行単位 / メッセージ単位で受信内容を行に分解)
- 受信トリガーによるコールバック処理(メッセージ着信ごとに Python スクリプトを発火して後段処理へ接続)
データフロー 🔄
入力: ネットワークから届く UDT メッセージ
↓
プロトコル・ポート解決(Protocol / Network Address / Port)
↓
行分割整形(Row/ Callback Format)
↓
出力: 受信内容を格納したテーブル + コールバック発火
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Connect Page 📋
Protocol .protocol 🧭
Protocol (通信プロトコル) — 使用するネットワークプロトコルを選択します。詳細は Network Protocols を参照します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Fast Streaming | .faststreaming |
高速ストリーミングでの受信 (スループット優先のデータ転送) |
| Reliable Messaging | .reliablemsging |
信頼性メッセージでの受信 (到達保証ありのデータ転送) |
接続と待ち受け 🌐
Network Address .address 📡Network Address (待ち受けアドレス) — 待ち受けする IP アドレスを指定します (例: 224.0.0.1)。
このパラメータはマルチキャストプロトコルでのみ必要です。
Port .port 🔌Port (待ち受けポート) — 待ち受けするネットワークポート番号を指定します。送信側が送ってくるポートに合わせます。
Shared Connection .shared 🔗Shared Connection (接続の共有) — 同じネットワークプロトコルを使う他のネットワーク DAT と接続を共有します。
Active .active ✅Active (接続の有効化) — このチェックボックスで接続を有効にします。
Off 時は受信処理が停止し、届いたデータは処理されません。
Row/ Callback Format .format 🧱
Row/ Callback Format (行分割方式) — 受信データをテーブルへどう分解するかを決定します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| One Per Byte | .perbyte |
受信したバイトごとに 1 行をテーブルへ追加 |
| One Per Line | .perline |
受信した行ごとに 1 行をテーブルへ追加 |
| One Per Message | .permessage |
受信したメッセージごとに 1 行をテーブルへ追加 |
Received Data Page 📨
Callbacks .callbacks 🐍
Callbacks DAT .callbacks 📜Callbacks DAT (コールバック) — メッセージが届くごとに 1 回実行される Callbacks DAT のパスを指定します。使い方は udtinDAT_Class を参照します。
実行スコープ .executeloc 📍
Execute from (実行場所) — スクリプトを実行する場所を決定するメニューです。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Current Node | .current |
現在の Node 位置からスクリプトを実行 |
| Specified Operator | .specified |
From Operator パラメータで指定した OP からスクリプトを実行 |
| Parent of Callbacks DAT | .callback |
Callbacks DAT の親 OP からスクリプトを実行 (sibling 参照が容易) |
From Operator .fromop 🔗
Execute from が Specified Operator のときに参照される OP パス:
- From Operator パス:
From Operator(実行元 OP) —Execute fromがSpecified Operatorのときに、状態変化がスクリプト実行のトリガーとなり、かつスクリプトの実行パスにもなる OP のパスです。
出力行数制御 📏
Clamp Output .clamp 🚧Clamp Output (行数の上限制御) — DAT はデフォルトで 100 メッセージに制限されますが、これを On にすると任意値や無制限に変更できます。
Maximum Lines .maxlines 📐Maximum Lines (最大行数) — 保持するメッセージ数の上限です。
上限を超えると古いメッセージから順にリストから削除されます。
Clear Output .clear 🗑️Clear Output (クリア) — ヘッダ行以外の全行を削除します。
Python から呼ぶ場合: op('opname').par.clear.pulse()
Bytes Column .bytes 🔣Bytes Column (バイト列の出力) — 各メッセージの raw bytes を別カラムとして出力に追加します。
デバッグ用途や受信バイナリの確認に有用です。
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: 外部アプリから受信 📥
外部アプリ (UDT 送信) → UDT In DAT → DAT Execute DAT → 後段処理
別マシンの外部アプリが UDT で送ってくるデータを UDT In DAT で受け取り、受信内容をテーブルへ格納してから後段の処理に渡す基本フロー。届いたデータを行ごとに分解して扱います。
- UDT In DAT の
Protocolを送信側と同じ設定 (例:Reliable Messaging) にする Portに送信側が送ってくるポート番号を指定Row/ Callback FormatをOne Per Messageにしてメッセージ単位で行を追加Activeを On にして受信を開始し、テーブルに行が増えることを確認
Example 2: 着信でスクリプト発火 ⚡
UDT 送信元 → UDT In DAT (Callbacks) → Python スクリプト → パラメータ更新
メッセージが届くたびに Python コールバックを発火させ、受信値を解析して TouchDesigner 内のパラメータや状態をリアルタイムに更新するイベント駆動のフロー。ポーリングせずに着信契機で処理できます。
Callbacks DATにコールバック用の DAT のパスを指定- コールバック内でメッセージ本文を解析し、対象 OP のパラメータへ反映
Execute fromをParent of Callbacks DATにして sibling OP を参照しやすくする- UDT Out DAT を送信側に置いて往復構成にする
Example 3: 高速ストリーム受信 🌊
UDT 送信元 (Fast Streaming) → UDT In DAT → Convert DAT → CHOP
スループットを優先した高速ストリーミングで連続的に届くデータを受け取り、テーブルを Convert DAT で扱いやすい形に変換してから CHOP へ流すフロー。大量データの取りこぼしを抑えつつ処理へ接続します。
ProtocolをFast Streamingに設定して送信側と揃えるRow/ Callback FormatをOne Per Lineにして行単位でテーブル化Clamp OutputとMaximum Linesで履歴行数を制限しメモリ圧迫を回避- Convert DAT でテーブル整形してから後段へ渡す
関連オペレータ 🔗
類似機能OP 🔍
- UDP In DAT — 汎用 UDP パケットを受信する版。UDT を使わない素の UDP 受信はこちら
- TCP/IP DAT — TCP/IP コネクションでの送受信版。コネクション型の確実な通信向き
- OSC In DAT — OSC メッセージを受信する版。OSC アドレス + 引数を扱う場合
組み合わせ推奨OP 🔄
- UDT Out DAT — 送信側に置く対の DAT。UDT での送受信の往復を構成する
- DAT Execute DAT — 受信行の追加をトリガーに Python を発火する定番ペア
- Convert DAT — 受信テーブルを区切り文字で整形・分割して扱いやすくする
- CHOP to DAT — 受信値とチャンネルを相互変換して CHOP 処理へ橋渡し
前処理・後処理DAT 🎯
- 前処理: UDT Out DAT
- 後処理: Convert DAT、Select DAT、DAT Execute DAT、Null DAT
Info DAT情報 📊
UDT In DAT は Info DAT による詳細情報取得に対応しています (num_rows / num_cols / total_cooks / cook_time 等の共通 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: データが受信されない・テーブルが増えない
✅ Solution:
Activeパラメータが On になっているか確認Portが送信側の送信ポートと一致しているか確認- 送信側と
Protocol(高速ストリーミング / 信頼性メッセージ) を揃えているか確認 - ファイアウォールが該当ポートをブロックしていないか受信側マシンの設定も含めて確認
❌ Problem: 受信内容が想定した形で行に分かれない
✅ Solution:
Row/ Callback Formatを送信データの単位 (バイト / 行 / メッセージ) に合わせて見直す- 送信側が区切りに使う改行やメッセージ境界が受信側の解釈と一致しているか確認
- バイナリデータの場合は
Bytes Columnを On にして raw bytes を確認
❌ Problem: 受信履歴が無制限に増えてメモリを圧迫する
✅ Solution:
Clamp Outputを On にし、Maximum Linesで適切な上限 (例: 200-1000) を設定- コールバック内で必要な情報を転記したあと
op('opname').par.clear.pulse()で定期クリア - デバッグが済んだら
Bytes Columnを Off にして余計な列を減らす
❌ Problem: コールバックが発火しない
✅ Solution:
Callbacks DATに正しいコールバック DAT のパスが指定されているか確認Execute fromとFrom Operatorの組み合わせが意図した実行場所を指しているか確認- そもそもメッセージが受信できているか (テーブルに行が増えるか) を先に確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

