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

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

TUIO In DAT が TUIO プロトコルのタッチイベントをネットワーク受信するイメージ図

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

概要 📖 – タッチ追跡信号を受信

TUIO In DATは、TUIO プロトコルのマルチタッチ・物体追跡イベントをネットワーク経由で受信する DATです。受信するプロトコルやポートを選び、タッチテーブルやマーカー追跡機からのイベントを取り込みます。コールバック DAT を組み合わせれば、イベントごとに任意の Python 処理を起動できます。

主な用途 🎯

  • TUIO 対応タッチテーブルからのマルチタッチイベントの受信
  • マーカー追跡システムによる物体 (fiducial) の位置・回転の取込
  • 外部トラッキング機器とネットワーク経由で接続するインスタレーション制御
  • コールバック駆動での TUIO イベントごとの Python 処理起動
  • 複数ネットワークプロトコルを切替えた堅牢なタッチデータ伝送

データフロー 🔄

入力: TUIO サーバが送るネットワークパケット (タッチ・マーカーのイベント)

DAT 内部処理 (プロトコル・ポート受信とコールバック呼び出し)

出力: TUIO イベントテーブル (DAT) + Python コールバック

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 fromSpecified 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 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: タッチテーブルを接続 🖐️

TUIO サーバ (タッチテーブル) → ネットワーク → TUIO In DAT (UDP) → Select DAT → Panel 制御

TUIO 対応のマルチタッチテーブルが送出するイベントを TUIO In DAT で UDP 受信し、取り込んだタッチ座標を抽出して画面上の UI 操作に流用する基本フローです。

  1. ProtocolMessaging (UDP) に設定し、送信側と同じ Port を指定
  2. Active をオンにしてネットワーク受信を開始
  3. 出力されたタッチイベントテーブルから Select DAT で必要な行・列を抽出
  4. 抽出した座標値を Panel Component の制御パラメータへ接続

Example 2: マーカー追跡を取込 🎯

マーカー追跡システム → TUIO In DAT → Convert DAT → DAT to CHOP → 演出制御

fiducial マーカー追跡システムが送る物体の位置・回転イベントを TUIO In DAT で受信し、テーブルを数値チャンネルに変換して映像演出やパラメータ制御に反映する応用例です。

  1. マーカー追跡側の送信ポートに合わせて TUIO In DAT の Port を設定
  2. 受信したマーカーイベントテーブルを Convert DAT / Select DAT で整形
  3. DAT to CHOP で位置・回転をチャンネル化して下流の制御へ流す
  4. チャンネル値を映像・照明などの演出パラメータに接続

Example 3: Python で挙動を制御 🐍

TUIO In DAT (callbacks=Text DAT) → コールバック関数 → 任意の制御処理

Callbacks DAT に Python スクリプトを記述した Text DAT を割り当て、TUIO イベントの発生ごとに任意の処理を起動するイベント駆動の構成例です。

  1. Text DAT を作成し TUIO イベント用のコールバック関数を記述
  2. TUIO In DAT の Callbacks DAT に Text DAT のパスを指定
  3. Execute from でスクリプト実行の基点を選択 (Callbacks DAT / Current / Specified Operator)
  4. コールバック内から任意の 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:

  • ActiveOn になっているか確認 (オフだと受信データは失われる)
  • Port が送信側の TUIO サーバと同じ番号か確認
  • Protocol が送信側の方式 (UDP / マルチキャスト / UDT) と一致しているか見直す

❌ Problem: マルチキャスト受信ができない
✅ Solution:

  • ProtocolMulti-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 パスが入っているか確認

参考資料 📚

その他 🔗

公式リソース 📖

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