
概要 📖 – Art-Net デバイスのネットワーク自動検出
Art-Net DATは、ネットワーク上の Art-Net デバイスをポーリングして検出結果をテーブルとしてリストアップする DATです。Poll Devices パルスでネットワークに ArtPoll を送出すると、応答した Art-Net 対応デバイスの一覧が DAT テーブルに出力されます。DMX In CHOP / DMX Out CHOP と組み合わせることで、検出された機器の IP アドレスを動的に取得して照明制御パイプラインに接続できます。
主な用途 🎯
- ネットワーク上の Art-Net デバイスの自動検出として、ポーリングで検出されたノード一覧をテーブル形式で取得
- 照明装置・DMX ノードのインベントリ管理として、現場で接続されているデバイスの IP / ショート名 / ロング名 / Estate などを一覧化
- DMX In CHOP / DMX Out CHOP のターゲット選定として、検出された IP アドレスを下流の DMX 通信 OP の宛先として参照
- デバイス接続状態のリアルタイム監視として、コールバックでデバイス出現・消失を検知し UI に反映
- マルチノード照明システムのトポロジ把握として、複数 universe を持つ大規模 Art-Net 構成の構造を可視化
データフロー 🔄
入力: ネットワーク (Art-Net プロトコル UDP ブロードキャスト)
↓
Art-Net DAT が ArtPoll パケットを送出しデバイスからの ArtPollReply を収集
↓
出力: 検出デバイス一覧テーブル (IP / 名称 / Estate / Net / Sub-Net 等)
初心者の方は、以下日本語書籍も手元にあると安心です。

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

