
概要 📖 – レーザー機器を自動検出する
EtherDream DATは、ネットワーク上の EtherDream レーザー DAC をポーリングして検出結果をテーブルとしてリストアップする DATです。Poll Devices パルスでネットワークにブロードキャストを送出すると、応答した EtherDream 対応 DAC の一覧が DAT テーブルに出力されます。Laser 系の制御パイプラインと組み合わせることで、検出された DAC の IP アドレスを動的に取得してガルバノ + RGB のレーザー出力に接続できます。
主な用途 🎯
- ネットワーク上の EtherDream DAC の自動検出として、ポーリングで検出されたレーザー DAC ハードウェア一覧をテーブル形式で取得
- レーザープロジェクタ・ガルバノシステムのデバイス管理として、現場で接続中の EtherDream DAC の IP アドレスとステータスを一覧化
- レーザー出力 OP の宛先選定として、検出された IP アドレスを下流の Laser 系 CHOP / DAT パイプラインのターゲットとして参照
- DAC 接続状態のリアルタイム監視として、コールバックでハードウェアの出現・消失や接続切断を検知し UI に反映
- マルチ DAC レーザーショーシステムの構成把握として、複数台の EtherDream DAC を運用する大規模インスタレーションのトポロジを可視化
データフロー 🔄
入力: ネットワーク (EtherDream プロトコル、UDP ブロードキャスト + TCP)
↓
EtherDream DAT がブロードキャストを送出し DAC からの応答を収集
↓
出力: 検出 DAC 一覧テーブル (IP / ホスト名 / ステータス等)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
EtherDream Page 📋
Callbacks .callbacks 🔔
ネットワークポーリング実行時に呼び出されるスクリプト DAT のパス:
- Callbacks DAT:
callbacksネットワークをポーリングする際に実行されるスクリプト DAT へのパス。使用方法はetherdreamDAT_Classを参照
Columns .columns 📊
出力テーブルに含めるカラム項目の選択:
- Columns 選択:
columnsテーブルに表示するカラム (IP アドレス / ホスト名 / ステータス等) を選択。右側のドロップメニューから利用可能な全カラムを確認できます
Poll Devices .poll 📡
ネットワーク上の EtherDream DAC をポーリングするパルス:
- Poll Devices パルス:
pollネットワーク上の EtherDream DAC をポーリング。応答を受信した DAC がテーブルに追加されます
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: EtherDream DACを自動検出 🔦
EtherDream DAT (Poll Devices) → Select DAT (IP 列抽出) → Laser 出力パイプライン (target IP)
EtherDream DAT で同一サブネット上の EtherDream DAC を検出し、Select DAT で IP アドレス列だけを抜き出してレーザー出力パイプラインの送信先として動的に参照する基本フロー。
- EtherDream DAT を配置し Poll Devices パルスをクリックしてネットワークをポーリング
- 返ってきた DAC テーブルから対象機器の行を Select DAT で抽出
- IP アドレス列の値をレーザー出力 OP のネットワーク宛先パラメータに参照式で接続
- ガルバノ XY + RGB の波形データを EtherDream DAC に送信してレーザー描画を実行
- 現場で DAC の IP が DHCP で変わっても再ポーリングだけで宛先が自動追従
Example 2: DAC 出現・消失のコールバック監視 👀
EtherDream DAT (callbacks=script_dat) → DAT Execute → Logic / UI 表示
EtherDream DAT の Callbacks にスクリプト DAT を指定し、ポーリング応答が更新されたタイミングで Python 側で DAC リストの差分を取って UI に反映する監視構成。レーザーショー本番中の機器切断を即座に検知できる。
- Text DAT を 1 つ作成し callbacks 用のスクリプトを記述
- EtherDream DAT の Callbacks パラメータにそのスクリプト DAT を指定
- Poll Devices を一定間隔で実行 (Timer CHOP からパルストリガ)
- コールバック内で前回テーブルとの差分を計算し、UI Table に「新規接続」「切断」をハイライト
Example 3: マルチ DAC レーザーショーシステムの構成可視化 🗺️
EtherDream DAT → Sort DAT (IP 順) → Table DAT → UI 表示
大規模インスタレーションで複数台の EtherDream DAC を運用する際、EtherDream DAT で全 DAC を一覧化し、Sort DAT で IP 順に並び替えてシステム全体のトポロジを 1 画面で把握する例。
- EtherDream DAT をポーリングして全 DAC をテーブル化
- Sort DAT で IP 列をキーにソート
- Table DAT または Container COMP の UI 領域に整形して表示
関連オペレータ 🔗
類似機能OP 🔍
- Art-Net DAT — Art-Net 照明デバイス一覧を取得するデバイス検出系 DAT
- Serial Devices DAT — シリアル接続デバイス一覧を取得
- Audio Devices DAT — システム上のオーディオ I/O デバイス一覧を取得
- Monitors DAT — 接続中のディスプレイ・モニタ情報を取得
組み合わせ推奨OP 🔄
- DAT Execute DAT — DAC テーブルの行・列変化に応じてスクリプトを起動
- Select DAT — 検出結果から特定の DAC 行・列を抽出
- Table DAT — 検出結果を加工・保存・参照しやすい形に整理
- Info CHOP — DAT 自身の num_rows / num_cols 等のメタ情報取得
前処理・後処理DAT 🎯
Info CHOP情報 📊
EtherDream DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols でテーブル規模、total_cooks / cook_time で実行統計を参照できます。
DAT 固有情報 📋
num_rows: DAT の行数num_cols: DAT の列数type: DAT の型 (table / text)is_table: テーブル形式の場合 1、テキスト形式の場合 0
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Poll Devices を実行してもテーブルに DAC が現れない
✅ Solution:
- PC のネットワークインタフェース・サブネットが EtherDream DAC と同一セグメントになっているか確認
- ファイアウォール / セキュリティソフトが EtherDream の UDP ブロードキャスト / TCP 通信を遮断していないか確認
- EtherDream DAC 側の電源と LAN ケーブル接続を物理確認し、ステータス LED が正常に点灯しているか確認
❌ Problem: ポーリング応答が不安定で時折テーブルから DAC が消える
✅ Solution:
- Poll Devices を定期的に実行する Timer CHOP / Pulse 駆動を設置し最新化を保つ
- ネットワークスイッチが IGMP Snooping や Storm Control でブロードキャストを抑制していないか確認
- Wi-Fi 経由ではなく有線 LAN 接続を推奨 (レーザー制御はリアルタイム性のため有線運用が基本)
❌ Problem: Columns で選択した列が表示されない
✅ Solution:
- Columns パラメータのドロップメニューから対象カラム (IP / ホスト名 / ステータス等) が選択済みか再確認
- DAC 側のファームウェアが古い場合、一部フィールドが応答に含まれない可能性があるため最新化を検討
- Poll Devices を再実行してテーブルを最新化
❌ Problem: Callbacks スクリプトが実行されない
✅ Solution:
- Callbacks パラメータに指定した Text DAT のパスが正しいか確認
- EtherdreamDAT_Class のドキュメントに沿って正しいコールバック関数が定義されているか確認
- Text DAT の Language が Python になっており構文エラーが無いか TouchDesigner のテキストポート (textport) で確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – EtherDream DAT
- TouchDesigner公式ドキュメント – EtherdreamDAT Class
- Art-Net DAT (姉妹デバイス検出 DAT)

