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

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

UDT Out DAT の UDT メッセージ送信を示す図

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

概要 📖 – ネット経由でデータ送信

UDT Out DATは、UDT プロトコルでデータをネットワーク経由で送信する DATです。高速ストリーミングと信頼性メッセージのプロトコル選択、バイト・行・メッセージ単位の行分割、送出ごとに Python を発火させるコールバックまで備えており、UDT を介した外部連携の送信側基盤として使われます。

主な用途 🎯

  • UDT メッセージのネットワーク送信(TouchDesigner から外部アプリやデバイスへデータを送り出す)
  • プロトコル選択による送信方式の切替(高速ストリーミング / 信頼性メッセージから送信特性を選択)
  • 大容量データの確実な送信(UDP より到達保証や順序保証が必要な転送を扱う基盤として利用)
  • 送信内容のテーブル化と行分割制御(バイト単位 / 行単位 / メッセージ単位で送信内容を行に分解)
  • 送信トリガーによるコールバック処理(送信タイミングごとに Python スクリプトを発火して送出内容を整形)

データフロー 🔄

入力: 送信したいデータ

プロトコル・ポート解決(Protocol / Port)

行分割整形(Row/ Callback Format)

出力: ネットワークへ送出される UDT メッセージ + コールバック発火

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Connect Page 📋

Protocol .protocol 🧭

Protocol (通信プロトコル) — 使用するネットワークプロトコルを選択します。詳細は Network Protocols を参照します。

項目 内部名 説明
Fast Streaming .faststreaming 高速ストリーミングでの送信 (スループット優先のデータ転送)
Reliable Messaging .reliablemsging 信頼性メッセージでの送信 (到達保証ありのデータ転送)

接続と送信先 🌐

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 のパスを指定します。

実行スコープ .executeloc 📍

Execute from (実行場所) — スクリプトを実行する場所を決定します:

  • Execute from: Execute from (実行場所) — コールバックスクリプトを実行する場所を決定します。

From Operator .fromop 🔗

Execute fromSpecified Operator のときに参照される OP パス:

  • From Operator パス: From Operator (実行元 OP) — Execute fromSpecified 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 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: 外部アプリへ送信 📤

前段処理 → UDT Out DAT → 外部アプリ (UDT 受信)

TouchDesigner で生成したデータを UDT Out DAT 経由で別マシンの外部アプリへ送り出す基本フロー。送信先のポートとプロトコルを受信側と揃えてから送出します。

  1. UDT Out DAT の Protocol を受信側と同じ設定 (例: Reliable Messaging) にする
  2. Port に受信側が待ち受けるポート番号を指定
  3. Active を On にして送信を有効化
  4. 受信側で内容が届くことを確認する

Example 2: 往復通信を構成 🔁

UDT Out DAT → ネットワーク → UDT In DAT → コールバック処理

送信側に UDT Out DAT、受信側に UDT In DAT を置いて双方向の往復通信を組むフロー。送信したメッセージを相手が受け取り、応答を返してくる構成をネットワーク越しに実現します。

  1. 送信側に UDT Out DAT、受信側に UDT In DAT を配置
  2. 双方の ProtocolPort を揃える
  3. Row/ Callback FormatOne Per Message にしてメッセージ単位で扱う
  4. 受信側の Callbacks DAT で応答処理を実装し往復構成を完成させる

Example 3: 高速ストリーム送信 🌊

Convert DAT → UDT Out DAT (Fast Streaming) → 受信側

連続的なデータを高速ストリーミングで送出するフロー。Convert DAT で送信形式に整えたテーブルを UDT Out DAT に渡し、スループットを優先して大量データを送り続けます。

  1. Convert DAT で送信したいデータをテーブル形式に整形
  2. ProtocolFast Streaming に設定して受信側と揃える
  3. Row/ Callback FormatOne Per Line にして行単位で送出
  4. Clamp OutputMaximum Lines で履歴行数を制限しメモリ圧迫を回避

関連オペレータ 🔗

類似機能OP 🔍

  • UDP Out DAT — 汎用 UDP パケットを送信する版。UDT を使わない素の UDP 送信はこちら
  • TCP/IP DAT — TCP/IP コネクションでの送受信版。コネクション型の確実な通信向き
  • OSC Out DAT — OSC メッセージを送信する版。OSC アドレス + 引数を扱う場合

組み合わせ推奨OP 🔄

  • UDT In DAT — 受信側に置く対の DAT。UDT での送受信の往復を構成する
  • DAT Execute DAT — テーブル変化をトリガーに送信用 Python を発火する定番ペア
  • Convert DAT — 送信前にテーブルを区切り文字で整形・分割して扱いやすくする
  • CHOP to DAT — チャンネル値をテーブル化して送信内容へ橋渡し

前処理・後処理DAT 🎯


Info DAT情報 📊

UDT Out 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 にして余計な列を減らす

参考資料 📚

その他 🔗

公式リソース 📖

関連記事 🔗

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