
概要 📖 – タッチ追跡信号を受信
TUIO In DATは、TUIO プロトコルのマルチタッチ・物体追跡イベントをネットワーク経由で受信する DATです。受信するプロトコルやポートを選び、タッチテーブルやマーカー追跡機からのイベントを取り込みます。コールバック DAT を組み合わせれば、イベントごとに任意の Python 処理を起動できます。
主な用途 🎯
- TUIO 対応タッチテーブルからのマルチタッチイベントの受信
- マーカー追跡システムによる物体 (fiducial) の位置・回転の取込
- 外部トラッキング機器とネットワーク経由で接続するインスタレーション制御
- コールバック駆動での TUIO イベントごとの Python 処理起動
- 複数ネットワークプロトコルを切替えた堅牢なタッチデータ伝送
データフロー 🔄
入力: TUIO サーバが送るネットワークパケット (タッチ・マーカーのイベント)
↓
DAT 内部処理 (プロトコル・ポート受信とコールバック呼び出し)
↓
出力: TUIO イベントテーブル (DAT) + Python コールバック
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Connect Page 📋
Protocol .protocol 🌐
受信に使うネットワークプロトコルを選ぶメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Messaging (UDP) | .msging |
UDP による標準的なメッセージング (1 対 1 の低遅延受信) |
| Multi-Cast Messaging (UDP) | .multicastmsging |
UDP マルチキャストで複数の受信先に同報配信 (Network Address にマルチキャストアドレスを指定) |
| Reliable Messaging (UDT Library) | .reliablemsging |
UDT ライブラリによる到達保証付きメッセージング (パケット欠落を許容できない用途向け) |
Network Address .address 🏷️
マルチキャストで待ち受けるアドレスの指定:
- Network Address:
Network Address(ネットワークアドレス) — マルチキャストプロトコル使用時に待ち受ける対象のマルチキャストアドレスを指定します。
Port .port 🔌
受信に使うポート番号の指定:
- Port:
Port(ポート) — TUIO In がパケットを受け付けるポート番号です。送信側の TUIO サーバと同じポートを指定してください。
Shared Connection .shared 🔗
同一プロトコル DAT との接続共有の有効化:
- Shared Connection:
Shared Connection(接続の共有) — 同じネットワークプロトコルを使う他のネットワーク系 DAT と同一の接続を共有します。複数の DAT で 1 つのポートを使い回す場合に有効です。
Active .active ✅
ネットワーク受信のオン・オフ切替:
- Active:
Active(有効化) — オンの間、DAT はネットワークポートに送られた情報を受信します。オフの間は更新が行われず、ポートに送られたデータは失われます。
Received Messages Page 📨
Callbacks DAT .callbacks 📞
コールバック関数を保持する DAT の指定:
- Callbacks DAT:
Callbacks DAT(コールバック DAT) — TUIO イベントごとに呼び出されるコールバック関数を記述した DAT のパスを指定します。使い方の詳細は公式の tuioinDAT_Class を参照してください。
Execute from .executeloc 🎬
コールバックスクリプトを実行する場所を選ぶメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Callbacks DAT | .callbacks |
コールバックを記述している DAT 自身の位置を基点として実行 |
| Current | .current |
現在のネットワーク位置 (この TUIO In DAT の位置) を基点として実行 |
| Specified Operator | .op |
From Operator パラメータで指定した任意 OP の位置を基点として実行 |
From Operator .fromop 📍
Specified Operator モードでの基点 OP の指定:
- From Operator:
From Operator(基点 OP) —Execute fromがSpecified Operatorのとき、状態変化がスクリプト実行を引き起こす OP であり、同時にスクリプトの実行起点となるパスを指定します。
Common Page 🔧
Language .language 📝
DAT が動作するスクリプト言語の決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 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: タッチテーブルを接続 🖐️
TUIO サーバ (タッチテーブル) → ネットワーク → TUIO In DAT (UDP) → Select DAT → Panel 制御
TUIO 対応のマルチタッチテーブルが送出するイベントを TUIO In DAT で UDP 受信し、取り込んだタッチ座標を抽出して画面上の UI 操作に流用する基本フローです。
ProtocolをMessaging (UDP)に設定し、送信側と同じPortを指定Activeをオンにしてネットワーク受信を開始- 出力されたタッチイベントテーブルから Select DAT で必要な行・列を抽出
- 抽出した座標値を Panel Component の制御パラメータへ接続
Example 2: マーカー追跡を取込 🎯
マーカー追跡システム → TUIO In DAT → Convert DAT → DAT to CHOP → 演出制御
fiducial マーカー追跡システムが送る物体の位置・回転イベントを TUIO In DAT で受信し、テーブルを数値チャンネルに変換して映像演出やパラメータ制御に反映する応用例です。
- マーカー追跡側の送信ポートに合わせて TUIO In DAT の
Portを設定 - 受信したマーカーイベントテーブルを Convert DAT / Select DAT で整形
- DAT to CHOP で位置・回転をチャンネル化して下流の制御へ流す
- チャンネル値を映像・照明などの演出パラメータに接続
Example 3: Python で挙動を制御 🐍
TUIO In DAT (callbacks=Text DAT) → コールバック関数 → 任意の制御処理
Callbacks DAT に Python スクリプトを記述した Text DAT を割り当て、TUIO イベントの発生ごとに任意の処理を起動するイベント駆動の構成例です。
- Text DAT を作成し TUIO イベント用のコールバック関数を記述
- TUIO In DAT の
Callbacks DATに Text DAT のパスを指定 Execute fromでスクリプト実行の基点を選択 (Callbacks DAT / Current / Specified Operator)- コールバック内から任意の OP のパラメータを更新してインタラクション結果を反映
関連オペレータ 🔗
類似機能OP 🔍
- Multi Touch In DAT — ローカル Panel Component 上のマルチタッチをテーブル受信
- Touch In DAT — 別 TouchDesigner プロセスからの DAT (テーブル) 受信
- OSC In DAT — OSC メッセージをテーブル形式でネットワーク受信
- MIDI In DAT — MIDI イベントをテーブル形式で受信
- UDP In DAT — 汎用 UDP パケットを生のメッセージとして受信
組み合わせ推奨OP 🔄
- Select DAT — 受信したイベントテーブルから対象行・列のみ抽出
- Convert DAT — テーブルの区切り・形式を整形してから後段へ渡す
- Execute DAT — 受信イベントに同期して任意の Python を実行
- Table DAT — 受信データを保存・編集して再利用するテーブルとして保持
- Info CHOP — TUIO In DAT の
num_rows/num_cols等のメタ情報取得
前処理・後処理DAT 🎯
Info DAT情報 📊
TUIO In DAT の現在の状態は Info DAT で取得します。受信テーブルの行数・列数や、接続中のネットワーク情報を参照でき、受信が止まっていないかの監視や、ポート設定が正しいかの確認に利用します。
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が送信側の TUIO サーバと同じ番号か確認Protocolが送信側の方式 (UDP / マルチキャスト / UDT) と一致しているか見直す
❌ Problem: マルチキャスト受信ができない
✅ Solution:
ProtocolをMulti-Cast Messaging (UDP)に設定しているか確認Network Addressに送信側と同じマルチキャストアドレスを指定- 同一プロトコルの他 DAT とポートを共有する場合は
Shared Connectionをオンにして競合を避ける
❌ Problem: コールバックが実行されない
✅ Solution:
Callbacks DATが正しい Text DAT のパスを指しているか確認Execute fromの基点設定 (Callbacks DAT / Current / Specified Operator) が意図通りか見直すSpecified Operatorを選んでいる場合はFrom Operatorに有効な OP パスが入っているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

