
概要 📖 – Stype カメラトラッキング データのネットワーク送信
Stype Out CHOPは、入力された Stype カメラトラッキング チャンネルを Stype プロトコル パケットに整形してネットワーク送信する CHOPです。UDP / Multi-Cast UDP の 2 種類のネットワーク プロトコルに対応し、バーチャル プロダクション環境で外部レンダリングシステムにカメラデータをリアルタイム配信します。
主な用途 🎯
- Stype カメラトラッキング データのネットワーク経由送信(UDP)
- 外部レンダリングシステムへのリアルタイム カメラ位置・回転データ配信
- バーチャル プロダクション環境での Stype プロトコル ブロードキャスト
- タイムコード付き Stype パケットの同期送信(hour / minute / second / frame)
- マルチキャスト UDP での複数受信先への同時配信
データフロー 🔄
入力: Stype チャンネル(位置・回転・FOV・タイムコード 等)
↓
Stype パケットへの整形
↓
UDP / Multi-Cast UDP プロトコル選択
↓
ネットワーク送信
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Stype Out Page 📋
Active .active 🟢
データパケットの送信オン / オフ:
- Active: オフにするとデータパケットの送信を停止
Protocol .protocol 🌐
使用するネットワーク プロトコルを選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Messaging (UDP) | .msging |
標準 UDP ユニキャスト メッセージング(単一受信先) |
| Multi-Cast Messaging (UDP) | .multicastmsging |
UDP マルチキャスト メッセージング(複数受信先への同時配信) |
Network Address .netaddress 📡
Stype データの送信先ネットワーク アドレス:
- Network Address: 送信先コンピュータのネットワーク アドレス。ドメイン名、IP アドレス(例:
100.123.45.78)、または同一マシン内の別プログラム宛てにlocalhostを指定可能
Network Port .port 🔌
データパケットの送信先ポート番号:
- Network Port: データパケットを送信するポート番号
Local Address .localaddress 🏠
送信元として使用するローカル IP アドレス:
- Local Address: 送信元として使用する IP アドレス。複数の NIC(Network Interface Card)を持つシステムで、どの NIC から送信するかを選択する用途に有効
Timecode Object / CHOP / DAT .timecodeop ⏰
タイムコード参照先:
- Timecode Object / CHOP / DAT: タイムコード参照を設定する。
hour/second/minute/frameチャンネルを持つ CHOP、最初のセルにタイムコード文字列を持つ DAT、または Timecode Class オブジェクトのいずれかを参照可能。未参照の場合は入力 CHOP のhour/second/minute/frameチャンネルが使用される
Packet Number Source .packetnumber 🔢
パケット番号フィールドの生成方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Auto-Generate | .generate |
パケット番号は毎フレーム 1 ずつ自動加算(255 から 0 にループ) |
| From Channel input | .input |
入力 CHOP からパケット番号を取得 |
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 Tracker (外部) → Serial In / OSC In CHOP → Stype Out CHOP (UDP) → 外部レンダリングシステム
- Stype カメラトラッキングシステムから位置・回転・FOV データを取得
- Stype Out CHOP の Protocol を「Messaging (UDP)」に設定
- Network Address にレンダリングサーバの IP(例:
192.168.1.100)、Network Port を Stype 受信側に合わせて設定 - Active をオンにしてリアルタイム送信開始
Example 2: マルチキャスト UDP での複数受信先配信 📡
カメラトラッキング入力 → Stype Out CHOP (Multi-Cast UDP) → 複数レンダリングノード
- Stype Out CHOP の Protocol を「Multi-Cast Messaging (UDP)」に切り替え
- Network Address にマルチキャスト アドレス(例:
239.255.0.1)を指定 - 受信側の複数レンダリングノードを同じマルチキャスト グループに参加させる
- 1 つの送信から全ノードへ同時にカメラデータが届く
Example 3: タイムコード同期 Stype 送信 ⏱️
Timecode CHOP → Stype Out CHOP (timecodeop 参照) → 外部受信側
hour/minute/second/frameチャンネルを持つ Timecode CHOP を用意- Stype Out CHOP の Timecode Object / CHOP / DAT パラメータに上記 CHOP のパスを指定
- Packet Number Source は「Auto-Generate」のままで毎フレーム送信
- 受信側でタイムコード付きカメラデータを取得し、収録映像とフレーム同期可能になる
関連オペレータ 🔗
類似機能OP 🔍
- OSC Out CHOP — 汎用 OSC プロトコルでチャンネル値を送信、Stype 専用フォーマットではない
- UDP Out DAT — 任意のテキスト / バイナリ UDP メッセージを送信、Stype パケット整形は手動
組み合わせ推奨OP 🔄
- Stype In CHOP — Stype Out が送信したパケットを受信側で展開する対になる CHOP
- Timecode CHOP —
hour/minute/second/frameチャンネルを Stype Out の timecodeop に渡す - OSC In CHOP — OSC 経由で取得したカメラデータを Stype プロトコルに変換して再配信
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Stype Out 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: 受信側にパケットが届かない
✅ Solution:
- Active パラメータがオンになっているか確認(オフでは送信停止)
- Network Address / Network Port が受信側の設定と一致しているか確認
- ファイアウォール / NAT 設定で該当 UDP ポートが許可されているか確認
- 複数 NIC 環境では Local Address で送信元 NIC を明示指定
❌ Problem: マルチキャスト パケットが特定ノードに届かない
✅ Solution:
- Protocol を「Multi-Cast Messaging (UDP)」に設定しているか確認
- Network Address がマルチキャスト範囲(
224.0.0.0〜239.255.255.255)内か確認 - 受信ノードのネットワーク スイッチで IGMP Snooping が有効か確認
- ルータ越えの場合は TTL 設定とマルチキャスト ルーティング設定を確認
❌ Problem: タイムコードが受信側で 0 のまま
✅ Solution:
- Timecode Object / CHOP / DAT に参照を設定しているか確認
- 参照先 CHOP に
hour/minute/second/frameの 4 チャンネルが揃っているか確認 - 参照無しの場合は入力 CHOP に同名チャンネルが含まれているか確認
- DAT 参照の場合は最初のセルにタイムコード文字列が入っているか確認
❌ Problem: パケット番号が想定どおりに増えない
✅ Solution:
- Packet Number Source が「Auto-Generate」なら毎フレーム自動加算(255 → 0 ループ)
- 「From Channel input」設定時は入力 CHOP の対応チャンネル値がパケット番号として使用される
- 受信側が連続性チェックを行う場合は Auto-Generate を推奨
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Stype Out CHOP
- Network Protocols(ネットワーク プロトコル解説)
- Stype In CHOP(対になる受信側 CHOP)

