
概要 📖 – ジオメトリ属性から DMX ユニバースを構築
DMX Fixture POPは、入力ジオメトリのポイント属性を DMX Profile に従って 8-bit〜32-bit のチャンネル値に変換し、Art-Net / sACN で送出可能なユニバースデータを構築する POPです。出力は DMX Out POP に渡すための fixture/universe データを保持したジオメトリで、Auto Layout または Routing Table によって net / subnet / universe / channel の割当を制御します。
主な用途 🎯
- ポイント属性 (Cd / 数値属性) から DMX チャンネル値を組み立て
- LED ストリップ・ムービングヘッド・パーライト等の照明機器制御用 DMX 信号生成
- Auto Layout による net / subnet / universe / channel の連番自動割当
- Routing Table による fixture 単位の手動ユニバース配置
- マルチユニバース大規模 LED マトリクスにおけるユニバース境界の整列 (Quantize Universe)
データフロー 🔄
入力: ジオメトリ (fixture geometry + 属性)
↓
DMX Profile 適用 (Channel ブロック単位で属性 → DMX 値変換)
↓
ユニバース構築 (net/subnet/universe/channel 単位)
↓
出力: DMX Out POP に渡せる fixture/universe データを持つジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Fixture Page 📁
Active ✅
Active .active 🟢
– オンにすると fixture / universe データが更新され、下流の DMX Out POP に渡された場合は送信対象となる
– オフにすると DMX Out POP 側のマージ対象から除外され、送信されなくなる
Auto Layout 設定 🎚️
Auto Layout .autolayout 🔄
– オンにすると net / subnet / universe / channel の開始位置から 512 チャンネル単位で順次ユニバースを構築
– オフにすると Routing Table を用いた手動割当を必須とする
Routing Table .routingtable 📋
– fixture / primitive 単位で net / subnet / universe を明示的に割り当てる DAT テーブル
– netaddress を併記すれば DMX Out POP 側の netaddress も上書きする
– Routing Table が指定されると、パラメータ値および DMXFixtureNet / DMXFixtureSubnet / DMXFixtureUniverse / DMXFixtureChannel / DMXFixtureNetAddress 属性を上書きする
開始位置パラメータ 📏
Net (0-127) .net 🌐
– Auto Layout モード時の開始 net 値 (0〜127)
Subnet (0-15) .subnet 🔢
– Auto Layout モード時の開始 subnet 値 (0〜15)
Universe .universe 🪐
– Auto Layout モード時の開始 universe 値
Channel .channel 📡
– Auto Layout モード時の開始 channel 値
Channel Gap .changap 📐
– 各 fixture の終端と次 fixture の開始 channel との間に挿入するチャンネル数
– 例: fixture 1 が channel 200 で終わり Channel Gap が 10 の場合、fixture 2 は channel 211 から開始
Quantize Universe .quantizeuni 🎛️
ユニバース境界でのチャンネル / fixture 境界整列方式を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
量子化を行わず、チャンネル・fixture 双方がユニバース境界を跨いで配置される |
| By Fixture | .fixture |
fixture がユニバース境界を跨がないように整列。残チャンネルに収まらない fixture は次ユニバースの channel=1 から再開 |
| By Component | .component |
DMX Channel ブロック内のマルチコンポーネント (例: 16-bit P の 3 成分) がユニバース境界を跨がないように整列 |
DMX Profile Page 📁
DMX Channel ブロックの定義 🧱
DMX Channel .dmxchan 🔁
– DMX Profile を構成する連続パラメータブロックの先頭 (Sequential Parameter Blocks)
– 各ブロックが 1 つの DMX チャンネル (intensity / R / G / pan 等) を定義し、複数ブロックで 1 fixture のチャンネル並びを構築
Name .dmxchan0name 🏷️
– 各 DMX Channel ブロックを識別する一意な名前 (例: intensity / R / pan)
Value Type .valuetype 🎛️
チャンネル値の反復粒度 (どの単位で属性を走査するか) を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Point | .point |
Point Value Type ではポイント単位でチャンネルブロックを反復し、属性値をインターリーブしてから次チャンネルに進む |
| Primitive | .primitive |
Primitive Value Type ではプリミティブ / fixture ごとに 1 度だけ Value Source から値を取得してインターリーブし、次チャンネルに進む |
Value Source .valuesource 🎚️
DMX チャンネル値の取得元 (属性かパラメータ定数か) を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Constant | .constant |
Value パラメータの定数値をチャンネル値として使用。Value Type が Point の場合、各ポイントを反復しつつ定数値を割当てるためチャンネル消費数は属性参照時と同一 |
| Attribute | .attribute |
属性値を Source としてチャンネル値を構築。複数属性をスペース区切りで指定すれば、すべての属性がインターリーブされる |
Group / Attribute 設定 🎯
Group .dmxchan0group 🎯
– 任意のポイントグループ名を指定すると、グループ所属ポイントのみが当該ブロックのユニバース生成対象になる
– 空欄の場合は全ポイントが対象
Attribute .dmxchan0attr 🔤
– Value Source が Attribute のときに参照する属性名 (スペース区切りで複数指定するとインターリーブ)
– 例: Cd で RGBA 4 成分を順に出力、pan tilt で 2 属性をインターリーブ
Number of Components .numcomps 🔢
Constant モード時に生成するチャンネル成分数を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
1 成分 (例: intensity 単独) |
| 2 | .2 |
2 成分 (例: pan / tilt) |
| 3 | .3 |
3 成分 (例: R / G / B) |
| 4 | .4 |
4 成分 (例: RGBA) |
Value 定数値 🎚️
Value .dmxchan0value 🎚️
– Value Source が Constant のときに使用する定数値 (Number of Components 設定に応じて r / g / b / a 成分が露出)
– 内部名は成分ごとに dmxchan0valuer / dmxchan0valueg / dmxchan0valueb / dmxchan0valuea
Value Resolution .valueres 📏
チャンネル値の解像度を選択するメニューパラメータ。8-bit を超える解像度では複数の DMX チャンネルを消費 (1 DMX チャンネル = 8-bit / 1 byte)
| 項目 | 内部名 | 説明 |
|---|---|---|
| 8-bit | .b8 |
8-bit (0〜255)、1 値あたり 1 DMX チャンネル消費 |
| 16-bit | .b16 |
16-bit (0〜65535)、1 値あたり 2 DMX チャンネル消費 |
| 24-bit | .b24 |
24-bit、1 値あたり 3 DMX チャンネル消費 |
| 32-bit | .b32 |
32-bit、1 値あたり 4 DMX チャンネル消費 |
ブロック制御トグル 🎚️
Value is Normalized .dmxchan0normalized 📐
– オンにすると 0–1 の入力値が解像度に応じたレンジ (8-bit なら 0–255) にスケーリング
– オフにすると属性値が as-is で出力。いずれの場合もクランプは自動適用
Merge with Above Block .dmxchan0merge 🔗
– オンにすると直前ブロックとチャンネル値をインターリーブ
– 直前ブロックと Value Type / Value Source が一致している必要あり
– 解像度の異なる値をインターリーブしたい場合に有用
Interleave Bytes .dmxchan0interleavebytes 🔀
– オンにすると複数成分属性をバイト順でインターリーブ (例: Px[0] Py[0] Pz[0] Px[1] Py[1] Pz[1] …)
– オフ時はバリュー順 (Px[0] Px[1] Py[0] Py[1] Pz[0] Pz[1] …)
– 8-bit 解像度では効果なし。Merge with Above Block で複数ブロックを統合した場合は最上位 (root) ブロックのみで有効
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: LED ストリップへの RGB 色出力 💡
Grid POP → Attribute POP (Cd) → DMX Fixture POP (Channel R/G/B from Cd) → DMX Out POP → Art-Net Node → LED ストリップ
Grid POP で LED 数分のポイント列を生成し、Attribute POP で Cd (RGBA 色) 属性を書き込んだ後、DMX Fixture POP でポイントの Cd 属性から R / G / B の 3 チャンネルブロックを構築し、DMX Out POP で Art-Net 経由 LED ストリップに送出する基本フロー。
- Grid POP で LED 数と同数のポイント列を生成
- Attribute POP で
Cd属性を生成し、シェーダや CHOP to POP で色をアニメーション - DMX Fixture POP の DMX Profile に R / G / B の 3 ブロックを定義し、各ブロックの Value Source を
attribute、Attribute をCd、Number of Components 連携で R/G/B 成分にマッピング - Auto Layout をオン、Net / Subnet / Universe / Channel を出力先 fixture に合わせて設定
- DMX Out POP に接続して Art-Net Node の IP / Net / Universe に送出
Example 2: ムービングヘッドのpan/tilt制御 🎭
Add POP (fixture point) → CHOP to POP (pan/tilt/intensity) → DMX Fixture POP (3 channel blocks) → DMX Out POP
Add POP で fixture 数分のポイントを生成し、CHOP to POP で OSC 入力等から pan / tilt / intensity の各属性をリアルタイムに流し込んだうえで、DMX Fixture POP にて 3 つの DMX Channel ブロック (8-bit attribute source) を組み立てて DMX Out POP に渡すムービングヘッド制御のフロー。
- Add POP で制御したいムービングヘッド数のポイントを生成
- CHOP to POP で
pan/tilt/intensity属性を時系列値から書き込み - DMX Fixture POP に 3 つの DMX Channel ブロックを定義 (Name: pan / tilt / intensity、Value Source: attribute、Value Resolution: 8-bit、Value is Normalized: on)
- Auto Layout で各 fixture を順次ユニバースに配置 (Channel Gap でメーカー指定 channel layout に追従)
- DMX Out POP に接続して指定 IP / Net / Universe に送出、ムービングヘッドが pan / tilt / intensity 値に追従して動作
Example 3: マルチユニバース LED マトリクスでのユニバース境界整列 🪐
Grid POP (大量 fixture) → Attribute POP (Cd) → DMX Fixture POP (Quantize Universe=By Fixture) → DMX Out POP
数千ポイントの大規模 LED マトリクスを Grid POP で生成し、DMX Fixture POP の Quantize Universe を By Fixture に設定することで、各 fixture (LED) のチャンネルブロックがユニバース境界を跨がないように整列し、DMX Out POP から複数ユニバースに分割送出する運用フロー。
- Grid POP で大規模 LED マトリクスのポイント列を生成
- Attribute POP で
Cd属性を書き込み - DMX Fixture POP の DMX Profile に R / G / B 3 ブロックを定義 (Value Source: attribute / Attribute: Cd)
- Quantize Universe を
By Fixtureに設定 (各 LED の RGB 3 ch が同一ユニバース内に収まるよう自動整列) - Auto Layout をオン、Net=0 / Subnet=0 / Universe=1 / Channel=1 から連番割当
- DMX Out POP に接続して複数ユニバースに分割して Art-Net / sACN 送出
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- DMX Out POP — DMX Fixture POP で構築したユニバースを Art-Net / sACN で送出する直接の下流オペレータ
- Attribute POP — DMX チャンネル値の Source となる
Cd/pan/tilt等の属性を事前に準備 - CHOP to POP — OSC / MIDI / シーケンス CHOP の値を POP 属性に流し込み、DMX Fixture POP の Source 属性として使用
- Group POP — fixture を論理グループ化し、DMX Channel ブロックの Group パラメータで対象ポイントを絞り込み
- DMX Out CHOP — ジオメトリ抽象を介さず CHOP チャンネルから直接 DMX を送出する代替経路 (簡易ユース用)
- DMX In CHOP — 他コンソール / メディアサーバからの DMX 入力を受信し、ループバック確認や監視に使用
前処理・後処理POP 🎯
- 前処理: Grid POP、Box POP、Attribute POP、Group POP、Math POP
- 後処理: DMX Out POP
Info POP情報 📊
DMX Fixture POP は Info CHOP 経由でジオメトリ統計情報の取得に対応しています。
POP固有情報 ✨
num_verts: POP に含まれる頂点 (vertex) 数num_points: POP に含まれるポイント数num_prims: POP に含まれるプリミティブ数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)cook_start_time: 最後のクック開始時刻 (ミリ秒)cook_end_time: 最後のクック終了時刻 (ミリ秒)cooked_this_frame: 現フレームでクックされたか (0 / 1)warnings: 警告数errors: エラー数
POP 汎用情報 (Info CHOP 経由) 📊
num_points: 出力ジオメトリのポイント数 (fixture 数)num_point_attribs: 出力ジオメトリのポイント属性数num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数 (DMXFixture 系上書き属性を含む)num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: DMX が送信されない / 照明機器が反応しない
✅ Solution:
- Active トグルがオンになっているか確認 (オフだと DMX Out POP のマージ対象から外れる)
- 下流の DMX Out POP に正しく接続されているか、DMX Out POP の netaddress / net / subnet / universe 設定が出力先機器と一致しているか確認
- Auto Layout がオフのときは Routing Table が必須。Routing Table が未指定だとユニバースが構築されない
❌ Problem: チャンネル割当が意図と異なる / fixture 順序がずれる
✅ Solution:
- Auto Layout モードでは Net / Subnet / Universe / Channel の開始値と Channel Gap を再確認
- Routing Table を併用すると Auto Layout より優先されるため、両者の競合がないか確認
DMXFixtureNet/DMXFixtureSubnet/DMXFixtureUniverse/DMXFixtureChannel属性が上書きされていないか前段 Attribute POP で確認
❌ Problem: fixture がユニバース境界を跨いでエラー / 機器が誤動作する
✅ Solution:
- Quantize Universe を
By Fixtureに設定し、fixture チャンネル列がユニバース境界を跨がないように整列 - マルチコンポーネント (16-bit 以上) の値を扱う場合は Quantize Universe を
By Componentに設定 - Channel Gap を調整して fixture 終端とユニバース境界の関係を再設計
❌ Problem: 属性値が想定外の DMX 値にクリップされる
✅ Solution:
- Value is Normalized 設定を確認 (0–1 入力なら on、生の DMX 値入力なら off)
- Value Resolution が機器の対応解像度と一致しているか確認 (8-bit / 16-bit / 24-bit / 32-bit)
- 前段 Math POP で属性値を 0–1 正規化、または DMX レンジ (0–255 等) に直接スケーリング
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – DMX Fixture POP
- DMX Out POP (下流送出オペレータ)
- DMX (TouchDesigner DMX 概論)
- 属性 (Attribute) の基礎

