
概要 📖 – MoSys カメラトラッキングデータの受信
MoSys CHOPは、MoSys カメラトラッキングシステムから送信されるカメラ位置・回転・レンズ情報を UDP で受信して CHOP チャンネルとして出力する CHOPです。バーチャルプロダクションや XR スタジオで実カメラの動きをリアルタイムにシーンへ反映するための受信エンドポイントとして使用します。
主な用途 🎯
- MoSys カメラトラッキングシステムからのリアルタイム位置・回転データ受信
- バーチャルプロダクション・XR スタジオでのカメラ位置・FOV 同期
- ARグラフィックス合成のためのカメラトラッキング情報取得
- ライブブロードキャストでのカメラポジション・レンズ情報のリアルタイム連携
- 複数台 MoSys カメラを Camera ID でフィルタリングしてマルチカメラ運用
データフロー 🔄
入力: MoSys カメラ送信パケット (UDP)
↓
ネットワークポート受信 (Active 制御)
↓
Camera ID フィルタ
↓
Screen Width で FOV 換算
↓
出力: 位置・回転・FOV のチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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)
- MoSys CHOP の Network Port に MoSys カメラ送信ポートを設定
- Active をオンにしてパケット受信を開始
- Select CHOP で tx/ty/tz および回転チャンネルを抽出
- Camera COMP の Transform パラメータに Export し、実カメラの動きを 3D シーンに同期
Example 2: Camera ID で 2 台のカメラを別系統に分離 🎥
MoSys CHOP (Camera ID=1) / MoSys CHOP (Camera ID=2) → 各々 Camera COMP
- 同じネットワークポートで 2 台の MoSys カメラパケットを受信
- MoSys CHOP を 2 個配置し、それぞれ Camera ID に 1 / 2 を設定
- 各 CHOP がそれぞれ対応するカメラのデータのみを抽出
- マルチカメラ番組で各カメラ位置をシーンに同期
Example 3: Screen WidthでFOVをカメラに反映 📐
MoSys CHOP (Screen Width 設定) → FOV チャンネル → Camera COMP (FOV パラメータ)
- MoSys CHOP の Screen Width にカメラ画像の横解像度 (例: 1920) を設定
- 受信した focal distance が FOV (degrees) に変換されチャンネル化
- FOV チャンネルを Camera COMP の FOV へ Export
- 実レンズのズーミングがバーチャルカメラに同期
関連オペレータ 🔗
類似機能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、無効時は0export_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 / マルチキャストルーティングに対応しているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

