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

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

BlackTrax CHOP のモーショントラッキング受信を示す図

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

概要 📖 – BlackTrax モーショントラッキングデータの受信

BlackTrax CHOPは、BlackTrax モーショントラッキングシステムからのビーコン位置・回転・速度・加速度データを UDP/Multicast 経由で受信する CHOPです。ライブパフォーマンスや舞台演出での出演者位置追跡において、Mapping Table でビーコン ID をチャンネル名に紐付けながら一括取得します。

主な用途 🎯

  • BlackTrax トラッキングシステムからのリアルタイムビーコン位置受信
  • ライブパフォーマンス・舞台演出での出演者位置トラッキング
  • ビーコン位置・回転・速度・加速度チャンネルの一括取得
  • Mapping Table によるビーコン ID とチャンネル名の対応付け
  • Multicast / UDP メッセージング両対応の柔軟なネットワーク受信

データフロー 🔄

入力: BlackTrax サーバーからの UDP/Multicast パケット

ネットワーク受信 (Active/Port/Protocol)

Mapping Table によるビーコン ID 解決

Centroid / Velocity / Acceleration / LEDs チャンネル展開

出力: ビーコン毎のトラッキングデータ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

BlackTrax Page 📡

Active .active 🟢

ネットワーク受信の有効/無効:

  • Active: オンの間ネットワークポートに送られた情報を受信、オフの間は更新されない

Port .port 🔌

パケット受信ポート:

  • Port: パケットを受け付けるポート番号

Protocol .protocol 🌐

ネットワークプロトコル選択

項目 内部名 説明
Messaging (UDP) .msging UDP ユニキャストでパケット受信
Multi-Cast Messaging (UDP) .multicastmsging UDP マルチキャストでパケット受信

Network Address .netaddress 📍

Multicast 受信アドレス:

  • Network Address: Multicast 使用時にパケットを listen するアドレス

Sample Rate .samplerate ⏲️

CHOP サンプルレート:

  • Sample Rate: この CHOP のサンプルレートを設定

Output Format .outputformat 📦

CHOP チャンネルのフォーマット (ビーコン数の決定方法)

項目 内部名 説明
From Mapping Table .fromtable Mapping Table の各行ごとにビーコンを 1 つずつ追加
From Max Beacons .frombeacons Max Beacons パラメータで指定した数のビーコンを追加

Max Beacons .maxbeacons 🔢

Max Beacons モード時のビーコン数:

  • Max Beacons: From Max Beacons モード時に CHOP に追加するビーコン数

チャンネル種類トグル 🎚️

出力チャンネルとして含める情報の種類

Centroid .centroid 🎯
– 有効時、ビーコンの位置 (translation) と回転 (rotation) のチャンネルを追加
– 出演者やオブジェクトの空間内座標を取得する基本チャンネル

Velocity .velocity 💨
– 有効時、ビーコンの速度チャンネルを追加
– 移動量の差分を取らずに速度値を直接取得可能

Acceleration .acceleration 🚀
– 有効時、ビーコンの加速度チャンネルを追加
– ジェスチャー強度や急発進の検出に使用

LEDs .leds 💡
– 有効時、ビーコン内の各 LED の位置チャンネルを追加
– ビーコン形状や向きを LED 単位で参照したい場合に使用

Reset Channels .reset 🧹

保存ビーコン・古いデータの継続クリア:

  • Reset Channels: オンの間、保存されたビーコンと古いデータをクリアし続ける

Reset Pulse .resetpulse

保存ビーコン・古いデータの即時クリア:

  • Reset Pulse: 瞬時に保存されたビーコンと古いデータをクリア

Mapping Table .mappingtable 🗂️

ビーコン ID → チャンネル名の対応 DAT テーブル:

  • Mapping Table: ビーコン ID を CHOP チャンネル (beacon0, beacon1, …) にマップする DAT テーブル。1 行目が beacon0、2 行目が beacon1 … と対応。ビーコン ID は BlackTrax アプリ内で指定された一意の非負整数

Common Page 🔧

Time Slice .timeslice ⏱️

Time Slice モードの強制設定:

  • オン: チャンネルを「タイムスライス」モードに強制
  • タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間

Scope .scope 🎯

影響を受けるチャンネルの絞り込み:

  • Scope 文字列: 影響を受けるチャンネルを指定する文字列
  • パターンマッチング: *[1-10] 等のパターンが使用可能

Sample Rate Match .srselect

複数の入力 CHOP のサンプルレートが異なる場合の処理方法

項目 内部名 説明
Resample At First Input’s Rate .first 最初の入力のレートで他をリサンプル
Resample At Maximum Rate .max 最高サンプルレートでリサンプル
Resample At Minimum Rate .min 最低サンプルレートでリサンプル
Error If Rates Differ .err レート不一致でエラー

Export Method .exportmethod 📤

CHOP チャンネルをパラメータに接続する方法

項目 内部名 説明
DAT Table by Index .datindex DAT テーブルのインデックスでチャンネルとパラメータを対応付け
DAT Table by Name .datname DAT テーブルの行名でチャンネルとパラメータを対応付け
Channel Name is Path:Parameter .autoname チャンネル名を `path:parameter` 形式で記述し直接対応付け

Export Root .autoexportroot 🌳

Channel Name is Path:Parameter モード時のパス基点:

  • Export Root パス: autoname モードでチャンネル名のパス部分を相対化する基点 OP のパス

Export Table .exporttable 📋

DAT Table エクスポート方式での参照 DAT:

  • Export Table DAT: datindex / datname モード時に参照する DAT のパス

Rename from .commonrenamefrom 🔤

リネーム対象チャンネルのパターン:

  • Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列

Rename to .commonrenameto 🔁

リネーム後の置換パターン:

  • Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)

実践アイデア 💡

Example 1: 舞台上の出演者ビーコン位置を取得 🎭

BlackTrax サーバー → BlackTrax CHOP (Centroid 有効) → Math CHOP (Range 変換) → 照明・映像コントロール

舞台演出で出演者にビーコンを装着し、その位置をリアルタイムで照明や映像にマッピングする基本構成です。BlackTrax CHOP で受信した位置チャンネルを座標系に合わせてスケーリングします。

  1. BlackTrax サーバー側でビーコン ID を確定し、Mapping Table DAT に行を追加
  2. BlackTrax CHOP の Port を BlackTrax 送信側の設定に合わせ、Centroid を ON
  3. 出力された tx/ty/tz チャンネルを Math CHOP で舞台座標系に Range 変換
  4. 変換後の値を照明 DMX や映像レンダリングカメラへ Export

Example 2: 速度・加速度ベースのインタラクティブ演出 💃

BlackTrax CHOP (Velocity + Acceleration 有効) → Filter CHOP → Logic CHOP → エフェクト発火

出演者の動きの速さや急加速をトリガーにエフェクトを発火させる構成です。Velocity / Acceleration チャンネルを直接取得できるので差分計算は不要です。

  1. BlackTrax CHOP で Velocity と Acceleration を ON にして速度・加速度チャンネルを追加
  2. Filter CHOP でジッタを除去しスムージング
  3. Logic CHOP で閾値判定 (例: 加速度 > 2.0 で急発進)
  4. Trigger CHOP でエフェクトやサウンドのキューを発火

Example 3: Multicast による複数 PC での同時受信 📡

BlackTrax サーバー (Multicast) → 複数 PC の BlackTrax CHOP → 各 PC で個別演算

複数 PC でトラッキングデータを共有して別々の演出を同時実行する構成です。Protocol を Multi-Cast Messaging に切り替えるだけで全 PC が同じデータを受信できます。

  1. BlackTrax サーバー側を Multicast 送信モードに切替
  2. 各 PC の BlackTrax CHOP で Protocol を「Multi-Cast Messaging (UDP)」に設定
  3. Network Address に Multicast グループアドレスを入力 (例: 239.x.x.x 系)
  4. 各 PC の BlackTrax CHOP が同じビーコンデータを受信して並列処理

関連オペレータ 🔗

類似機能OP 🔍

  • OSC In CHOP — 汎用 OSC プロトコル経由のリアルタイム制御信号受信
  • OpenVR CHOP — VR ヘッドセット・コントローラの位置トラッキング
  • Kinect CHOP — Kinect センサーによる骨格・関節位置トラッキング

組み合わせ推奨OP 🔄

  • Math CHOP — 受信した位置チャンネルを舞台座標系に Range 変換
  • Filter CHOP — トラッキングジッタの平滑化
  • Logic CHOP — 速度・加速度の閾値判定によるトリガー生成
  • Trigger CHOP — エフェクトやサウンドキューのエンベロープ起動
  • Null CHOP — 下流参照を 1 箇所に集約してパッチ整理

前処理・後処理CHOP 🎯


Info CHOP情報 📊

BlackTrax CHOPは Info CHOP による詳細情報取得に対応しています。

CHOP固有情報 🎚️

  • start: CHOPインターバルの開始(サンプル単位)
  • length: CHOPのサンプル数
  • sample_rate: フレーム毎秒のサンプルレート
  • num_channels: CHOPのチャンネル数
  • time_slice: タイムスライス有効時は1、無効時は0
  • export_sernum: Export接続の更新回数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間(ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: ビーコンデータが受信できない
✅ Solution:

  • Active が ON になっているか確認 (オフではポート受信が停止)
  • Port が BlackTrax サーバー側送信ポートと一致しているか確認
  • Multicast 使用時は Network Address が送信側グループアドレスと一致しているか確認
  • ファイアウォール・ネットワーク経路で UDP パケットが遮断されていないか確認

❌ Problem: ビーコン ID とチャンネル名の対応がおかしい
✅ Solution:

  • Output Format が「From Mapping Table」になっていることを確認
  • Mapping Table DAT の行順序がそのまま beacon0, beacon1, … に対応するため意図した順序か確認
  • BlackTrax アプリ内で確定したビーコン ID と Mapping Table の ID が一致しているか確認

❌ Problem: 古いビーコンデータが残り続ける
✅ Solution:

  • Reset Pulse をパルスして即時クリア
  • 継続的に古いデータをクリアしたい場合は Reset Channels を ON
  • 再送が断続的な場合は後段の Filter CHOP や Hold CHOP で stale を吸収

❌ Problem: 速度・加速度チャンネルが出てこない
✅ Solution:

  • Velocity / Acceleration トグルが ON になっているか確認 (デフォルトオフの場合あり)
  • BlackTrax 送信側で速度・加速度の送信設定が有効になっているか確認
  • 出力フォーマットがビーコン数を 0 にしていないか (From Max Beacons モードで Max Beacons が 0 になっているケース)

参考資料 📚

その他 🔗

公式リソース 📖

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