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

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

Art-Net DAT がネットワーク上の Art-Net デバイスをポーリングしてテーブル化する図

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

概要 📖 – 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 等)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 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: ネットワーク上の 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 の送信先として動的に参照する基本フロー。

  1. Art-Net DAT を配置し Poll Devices パルスをクリックしてネットワークをポーリング
  2. 返ってきたデバイステーブルから対象機器の行を Select DAT で抽出
  3. IP アドレス列の値を DMX Out CHOP の Network Address パラメータに参照式で接続
  4. DMX Out CHOP から DMX チャンネル値を送信して照明機器を制御
  5. 現場で機器の IP が変わっても再ポーリングだけで宛先が自動追従

Example 2: デバイス出現・消失のコールバック監視 👀

Art-Net DAT (callbacks=script_dat) → DAT Execute → Logic / UI 表示

Art-Net DAT の Callbacks にスクリプト DAT を指定し、ポーリング応答が更新されたタイミングで Python 側でデバイスリストの差分を取って UI に反映する監視構成。

  1. Text DAT を 1 つ作成し callbacks 用のスクリプトを記述
  2. Art-Net DAT の Callbacks パラメータにそのスクリプト DAT を指定
  3. Poll Devices を一定間隔で実行 (Timer CHOP からパルストリガ)
  4. コールバック内で前回テーブルとの差分を計算し、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) で確認

参考資料 📚

その他 🔗

公式リソース 📖

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