
概要 📖 – Stype トラッキングデータの受信
Stype In CHOPは、Stype トラッキングシステムから送信される実カメラの位置・回転・レンズ情報をネットワーク経由で受信する CHOPです。バーチャルプロダクションや AR/XR ステージでの実カメラとバーチャルカメラの同期に使用します。
主な用途 🎯
- Stype カメラトラッキングシステムからの位置・回転データ受信
- バーチャルプロダクション用カメラトラッキング情報の取り込み
- Stype レンズデータ(焦点距離・歪み・FOV)のリアルタイム取得
- AR / XR ステージでの実カメラとバーチャルカメラの同期
- ライブ放送向けトラッキングデータのネットワーク受信
データフロー 🔄
入力: Stype サーバからの UDP / Multicast / UDT パケット
↓
ネットワーク受信(Protocol / Port)
↓
トラッキング情報のチャンネル化
↓
出力: カメラ位置・回転・レンズパラメータのチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Stype Page 📋
Protocol .protocol 🎛️
Stype サーバとの通信に使うネットワークプロトコルの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Messaging (UDP) | .msging |
標準的な UDP ユニキャストでの受信 |
| Multi-Cast Messaging (UDP) | .multicastmsging |
UDP マルチキャスト経由で複数受信機での共有受信 |
| Reliable Messaging (UDT Library) | .reliablemsging |
UDT ライブラリ経由の信頼性ある送受信 |
ネットワーク設定パラメータ 🛰️
Network Address .netaddress 📡
– Multicast 使用時に Stype がパケットを listen するアドレス
– Stype サーバ側のマルチキャストグループに合わせて設定
Network Port .port 🔌
– Stype In CHOP がパケットを受け付けるポート番号
– デフォルトは 6301、ハードウェアの出力設定に合わせる
Local Address .localaddress 🔀
– 送信側マシンが複数のネットワークアダプタを持つ場合、どのアダプタから送信するかを IP アドレスで指定
– 単一 NIC 環境では空欄でよい
Active .active ✅
– オン: CHOP がネットワークポート宛のパケットを受信
– オフ: 更新停止。ポートに届いたデータは破棄される
Padding .padding 📐
– 0〜1 の値で視野角(FOV)をどれだけ広げるかを指定
– レンズ歪みで本来の描画領域外のサンプルが必要なときに使用
– パディング済 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: バーチャルプロダクション用カメラ同期 🎥
Stype Server → Stype In CHOP (UDP) → Camera COMP (tx, ty, tz, rx, ry, rz) → Render TOP
- Stype カメラトラッキングサーバを起動し、TouchDesigner マシンに UDP でデータ送信を設定
- Stype In CHOP の Protocol を「Messaging (UDP)」、Port を 6301 に設定
- Active をオンにして受信開始、出力チャンネルの tx/ty/tz/rx/ry/rz を Camera COMP の Transform にエクスポート
- 実カメラの動きにバーチャルカメラが同期し、合成映像が違和感なくレンダリングされる
Example 2: マルチキャストでの複数受信機共有 📡
Stype Server (Multicast) → Stype In CHOP (Multi-Cast UDP) → 複数 TD インスタンス
- Stype サーバをマルチキャスト送信モードに設定(例: 239.x.x.x のアドレス)
- 各 TouchDesigner マシンの Stype In CHOP で Protocol を「Multi-Cast Messaging (UDP)」、Network Address に同一マルチキャストアドレスを指定
- Local Address に各マシンの受信 NIC の IP を指定し、想定通りのアダプタから受信
- 1 つの Stype 出力で複数の TD 描画ノードが同じトラッキング情報を共有し描画
Example 3: レンズパラメータの取り込みと描画解像度算出 🔍
Stype In CHOP (FOV, distortion) → Math CHOP (FOV padding) → Render TOP resolution
- Stype In CHOP の Padding を 0.1〜0.2 に設定し、レンズ歪み補正用の余白を確保
- 出力 FOV チャンネルを Math CHOP で正規化し、Render TOP の Camera FOV にエクスポート
- パディング済 FOV から逆算した解像度を Render TOP の Resolution に反映
- 歪み補正後も描画領域が不足しない安定したバーチャルカメラ映像が得られる
Example 4: 信頼性重視の UDT 受信 🛡️
Stype Server (UDT) → Stype In CHOP (Reliable Messaging) → Logic CHOP → Trigger CHOP
- ライブ本番で UDP のパケットロスが許容できないとき Protocol を「Reliable Messaging (UDT Library)」に設定
- 受信したトラッキングデータを Logic CHOP で異常値判定
- 想定範囲外の値を検出したら Trigger CHOP でフェイルセーフ動作を発火
- ネットワーク不安定時もデータ取りこぼしを抑え、本番進行を維持
関連オペレータ 🔗
類似機能OP 🔍
- OSC In CHOP — OSC プロトコル経由の汎用ネットワーク受信
組み合わせ推奨OP 🔄
- Math CHOP — 受信した位置・回転値のスケーリング・オフセット補正
- Filter CHOP — トラッキングノイズの時間方向スムージング
- Logic CHOP — 受信値の異常検知やトラッキングロスト判定
- Trail CHOP — 受信したカメラ軌跡の時間履歴を可視化
前処理・後処理CHOP 🎯
- 前処理: OSC In CHOP
- 後処理: Math CHOP、Filter CHOP、Lag CHOP、Logic CHOP、Select CHOP
Info CHOP情報 📊
Stype In 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: Stype サーバからのパケットが受信されない
✅ Solution:
Activeがオンになっているか確認Network Portが Stype サーバの送信ポート(デフォルト 6301)と一致しているか確認- ファイアウォールで該当 UDP ポートが許可されているか確認、必要に応じて受信規則を追加
❌ Problem: マルチキャストで複数 NIC のうち想定外のアダプタから受信される
✅ Solution:
Local Addressに受信させたい NIC の IP アドレスを明示指定- OS のマルチキャストルーティング設定を確認し、対象 NIC が優先されるよう調整
- Network Address が Stype サーバ側のマルチキャストグループと一致しているか再確認
❌ Problem: 受信値にジッタやスパイクノイズが乗る
✅ Solution:
- 後段にFilter CHOPを入れて時間方向でスムージング
- Logic CHOPで異常範囲のサンプルを検出し代替処理
- UDP パケットロスが疑われる場合は Protocol を「Reliable Messaging (UDT Library)」に切替
❌ Problem: レンズ歪み補正後にレンダリング領域が不足する
✅ Solution:
Padding値を 0 から徐々に増やし FOV に余白を確保- Padding 済 FOV から逆算した解像度を Render TOP の Resolution に反映
- 歪み補正シェーダ側のサンプリング範囲が padded FOV と一致しているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

