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

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

MoSys CHOP のカメラトラッキング受信を示す図

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

概要 📖 – MoSys カメラトラッキングデータの受信

MoSys CHOPは、MoSys カメラトラッキングシステムから送信されるカメラ位置・回転・レンズ情報を UDP で受信して CHOP チャンネルとして出力する CHOPです。バーチャルプロダクションや XR スタジオで実カメラの動きをリアルタイムにシーンへ反映するための受信エンドポイントとして使用します。

主な用途 🎯

  • MoSys カメラトラッキングシステムからのリアルタイム位置・回転データ受信
  • バーチャルプロダクション・XR スタジオでのカメラ位置・FOV 同期
  • ARグラフィックス合成のためのカメラトラッキング情報取得
  • ライブブロードキャストでのカメラポジション・レンズ情報のリアルタイム連携
  • 複数台 MoSys カメラを Camera ID でフィルタリングしてマルチカメラ運用

データフロー 🔄

入力: MoSys カメラ送信パケット (UDP)

ネットワークポート受信 (Active 制御)

Camera ID フィルタ

Screen Width で FOV 換算

出力: 位置・回転・FOV のチャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

MoSys Page 📋

Active .active 🟢

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

  • Active: オン: ネットワークポートに送られるデータを受信。オフ: 更新を停止し、ポートに到達したデータは破棄される

Protocol .protocol 🌐

使用するネットワークプロトコル

項目 内部名 説明
Messaging (UDP) .msging 通常の UDP メッセージング (ユニキャスト)
Multi-Cast Messaging (UDP) .multicastmsging UDP マルチキャスト (複数受信ホストに同時配信)

Network Address .netaddress 📡

Multicast 使用時に listen するアドレス:

  • Network Address: Multicast 使用時、パケットを受信するマルチキャストアドレスを指定

Network Port .port 🔌

受信ポート番号:

  • Network Port: MoSys CHOP がパケットを受け付けるポート番号 (送信側 MoSys カメラ設定と一致させる)

Local Address .localaddress 🖥️

受信に使う NIC の IP アドレス:

  • Local Address: 受信に使用する IP アドレス。複数 NIC (Network Interface Card) を持つマシンでどの NIC で受信するか選択するときに有用

Camera ID .cameraid 🎥

複数カメラ運用時のフィルタ ID:

  • Camera ID: 複数のカメラが同一マシンへデータ送信している場合に不要なパケットを除外するための ID。camera id チャンネルの値とマッチした番号を指定。空欄ならどのカメラからの最新データでも表示

Screen Width .screenwidth 📐

FOV 換算に使うカメラ画像の幅:

  • Screen Width: カメラ画像の幅 (ピクセル単位)。カメラから受け取った焦点距離 (focal distance) を FOV 値に変換するために使用

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: MoSys カメラ位置をバーチャルカメラへ反映 🎬

MoSys CHOP → Select CHOP (位置・回転チャンネル抽出) → Camera COMP (transform)
  1. MoSys CHOP の Network Port に MoSys カメラ送信ポートを設定
  2. Active をオンにしてパケット受信を開始
  3. Select CHOP で tx/ty/tz および回転チャンネルを抽出
  4. Camera COMP の Transform パラメータに Export し、実カメラの動きを 3D シーンに同期

Example 2: Camera ID で 2 台のカメラを別系統に分離 🎥

MoSys CHOP (Camera ID=1) / MoSys CHOP (Camera ID=2) → 各々 Camera COMP
  1. 同じネットワークポートで 2 台の MoSys カメラパケットを受信
  2. MoSys CHOP を 2 個配置し、それぞれ Camera ID に 1 / 2 を設定
  3. 各 CHOP がそれぞれ対応するカメラのデータのみを抽出
  4. マルチカメラ番組で各カメラ位置をシーンに同期

Example 3: Screen WidthでFOVをカメラに反映 📐

MoSys CHOP (Screen Width 設定) → FOV チャンネル → Camera COMP (FOV パラメータ)
  1. MoSys CHOP の Screen Width にカメラ画像の横解像度 (例: 1920) を設定
  2. 受信した focal distance が FOV (degrees) に変換されチャンネル化
  3. FOV チャンネルを Camera COMP の FOV へ Export
  4. 実レンズのズーミングがバーチャルカメラに同期

関連オペレータ 🔗

類似機能OP 🔍

  • OSC In CHOP — 汎用的な OSC プロトコル受信、MoSys 専用ではないが任意トラッキングデータ受信に使える

組み合わせ推奨OP 🔄

  • Camera COMP — MoSys のトラッキング値を Export してバーチャルカメラへ反映
  • Select CHOP — MoSys 出力から特定の位置・回転チャンネルを抽出
  • Filter CHOP — 受信値のジッタを後段でスムージング
  • Math CHOP — 座標系変換やスケーリングで MoSys 値をシーン単位に整形
  • Null CHOP — MoSys 出力を Null で確定し下流の参照点として固定

前処理・後処理CHOP 🎯


Info CHOP情報 📊

MoSys 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: MoSys カメラからのデータが受信されない
✅ Solution:

  • Active がオンになっているか確認 (オフだとパケットが破棄される)
  • Network Port が送信側 MoSys カメラの送信ポートと一致しているか確認
  • Local Address を空欄にするか、適切な NIC の IP に設定する (複数 NIC マシンの場合)
  • ファイアウォールで該当 UDP ポートが許可されているか確認

❌ Problem: 複数カメラのデータが混ざって表示される
✅ Solution:

  • Camera ID を空欄から具体的な番号 (例: 1) に設定して目的のカメラのみ抽出
  • カメラごとに MoSys CHOP を分離し、それぞれ別の Camera ID を指定
  • 送信側 MoSys カメラの camera id 設定値を確認し受信側と整合させる

❌ Problem: FOV 値がカメラ実機と合わない
✅ Solution:

  • Screen Width にカメラ画像の実際の横解像度 (ピクセル) を正しく設定
  • MoSys カメラ側のキャリブレーション (focal distance) が正しく送信されているか確認
  • 後段の Math CHOP で必要に応じてスケール変換を行う

❌ Problem: Multicast 設定でデータが届かない
✅ Solution:

  • Protocol を Multi-Cast Messaging (UDP) に切り替え
  • Network Address に正しいマルチキャストグループアドレスを設定
  • ネットワークスイッチが IGMP / マルチキャストルーティングに対応しているか確認

参考資料 📚

その他 🔗

公式リソース 📖

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