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

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

Ncam CHOP のカメラトラッキングデータ受信を示す図

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

概要 📖 – Ncam リアルタイムカメラトラッキングデータ受信

Ncam CHOPは、Ncam システムからリアルタイムでカメラトラッキングデータ(位置・姿勢・レンズ情報・タイムコード)を TCP 経由で受信する CHOPです。バーチャルプロダクションや XR 撮影現場で、実機カメラの動きを CG 空間内のカメラへ低レイテンシで反映するための専用入力オペレータです。

主な用途 🎯

  • Ncam サーバーからリアルタイムでカメラ位置・姿勢データを受信
  • バーチャルプロダクション・XR 撮影で実機カメラと CG カメラを同期
  • カメラの Field of View・ズーム・フォーカスなどレンズパラメータを取得
  • SMPTE タイムコードを用いた他システムとのフレーム同期
  • AR/MR 演出で実カメラ追従の CG 合成 (camera-tracked compositing)

データフロー 🔄

入力: Ncam サーバー (TCP)

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

カメラ姿勢デコード (View / Projection)

カメラ追加プロパティ (Properties)

タイムコード変換 (Timecode)

出力: トラッキングチャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Network Page 🌐

Active .active 🔌

Ncam システムからのデータ受信を開始・停止するスイッチ:

  • オン: Ncam サーバーへ接続してデータ受信を行う
  • オフ: 受信を停止しチャンネルの更新を止める (接続も切断)

Protocol .protocol 📡

Ncam サーバーから TouchDesigner へデータを送るネットワークプロトコルを選択

項目 内部名 説明
TCP .tcp TCP で接続 (現状唯一サポートされるプロトコル、将来拡張用のメニュー)

Network Address .netaddress 🏠

Ncam サーバーのネットワークアドレス:

  • Network Address: データ送信元 Ncam サーバーの IP アドレスまたはホスト名 (例: 192.168.1.100)

Network Port .port 🔢

Ncam サーバーの接続ポート:

  • Network Port: Ncam サーバー側で公開されている TCP ポート番号

Channels Page 📺

Camera View .cameraview 🎥

カメラの位置と姿勢 (向き) を出力する形式を選択するメニュー

項目 内部名 説明
Translation & Rotation (TR) .trs 位置 (tx, ty, tz) と回転 (rx, ry, rz) のチャンネルとして出力
Matrix .matrix 4×4 変換行列の各要素 (16 チャンネル) として出力
TR & Matrix .both 位置・回転チャンネルと 4×4 行列の両方を同時に出力
Off .off カメラ位置・姿勢を出力しない

Camera Projection .cameraproj 🔭

カメラの投影 (プロジェクション) 設定を出力する形式を選択するメニュー

項目 内部名 説明
Field of View (FOV) .fov 視野角 (角度値) として出力
Matrix .matrix 4×4 投影行列として出力
FOV & Matrix .both FOV と投影行列の両方を同時に出力
Off .off 投影情報を出力しない

Camera Properties .cameraprops 🎛️

ズームやフォーカスといった追加のカメラプロパティを出力する形式を選択するメニュー

項目 内部名 説明
Normalized .normalized 0〜1 に正規化された値で出力
Physical .physical ミリメートル等の物理単位で出力
Both .both 正規化値と物理単位の両方を同時に出力
Off .off 追加プロパティを出力しない

Timecode .timecode

Ncam ストリームに埋め込まれたタイムコードの出力形式を選択するメニュー

項目 内部名 説明
HH:MM::SS::FF .on 時・分・秒・フレームに分割した個別チャンネルとして出力
Timecode .timecode 単一カウンタ (累積フレーム数) として出力
Both .both 個別チャンネルとカウンタの両方を同時に出力
Off .off タイムコードを出力しない

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: 実カメラ追従の CG 合成 (バーチャルプロダクション) 🎬

Ncam CHOP (TR) → Camera COMP (transform) → Render TOP → Composite TOP
  1. Ncam サーバーの IP アドレスとポートを Network Page に設定
  2. Camera View を「Translation & Rotation (TR)」に設定して位置・回転チャンネルを取得
  3. Camera COMP の Transform パラメータに Ncam CHOP の tx/ty/tz/rx/ry/rz を Export
  4. Render TOP の出力を実機カメラ映像に Composite TOP で合成

Example 2: 実機カメラの FOV と CG カメラの視野角を同期 🔭

Ncam CHOP (FOV) → Camera COMP (FOV parameter) → Render TOP
  1. Camera Projection を「Field of View (FOV)」に設定
  2. 出力された fov チャンネルを Camera COMP の FOV パラメータに Export
  3. 実機レンズのズーム操作と CG 空間カメラの視野角がリアルタイムで同期
  4. ズームしながらの撮影でも CG オブジェクトが正確に重なる

Example 3: SMPTE タイムコードによる外部システムとの同期 ⏰

Ncam CHOP (Timecode) → Trigger CHOP → 外部記録システム
  1. Timecode を「HH:MM::SS::FF」または「Both」に設定
  2. 出力された時・分・秒・フレームのチャンネルを参照
  3. 特定タイムコードで Trigger CHOP を発火させて記録系を起動
  4. 複数の収録系統がフレーム精度で揃ったマスタータイムを共有

関連オペレータ 🔗

類似機能OP 🔍

  • OSC In CHOP — 汎用 OSC プロトコルでカメラトラッキング以外のデータも受信可能、Ncam 専用フォーマットには非対応
  • Kinect CHOP — Kinect センサーから人体・カメラ姿勢を取得、Ncam のような映画品質トラッキングではない

組み合わせ推奨OP 🔄

  • Filter CHOP — Ncam 出力のジッタを後段でスムージング
  • Lag CHOP — 急な姿勢変化を遅延付きで滑らかにする
  • Math CHOP — 座標系の単位変換 (m / cm) や軸の符号反転に使用
  • Trigger CHOP — タイムコードや特定姿勢で外部イベントを起動
  • Null CHOP — 出力経路の固定点として配置、デバッグや切替の起点

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Ncam 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: Ncam サーバーに接続できない / チャンネルが更新されない
✅ Solution:

  • Network Page の Active がオンになっているか確認
  • Network Address (IP / ホスト名) と Network Port が Ncam サーバー側と一致しているか確認
  • ファイアウォール / NAT で TCP 通信がブロックされていないか確認
  • Ncam サーバー側のサービスが起動しデータ送信モードになっているか確認

❌ Problem: カメラ姿勢チャンネルが出力されない / 行列だけしか出ない
✅ Solution:

  • Camera View が「Off」になっていないか確認
  • TR チャンネル (tx/ty/tz/rx/ry/rz) が必要なら「Translation & Rotation (TR)」または「TR & Matrix」を選択
  • 4×4 行列が必要なら「Matrix」または「TR & Matrix」を選択

❌ Problem: FOV がゼロ / 不正な値になる
✅ Solution:

  • Camera Projection が「Off」になっていないか確認
  • FOV 値が必要なら「Field of View (FOV)」または「FOV & Matrix」を選択
  • Ncam システム側でレンズキャリブレーションが完了しているか確認

❌ Problem: タイムコードチャンネルが想定外の形式で出てくる
✅ Solution:

  • Timecode メニューを「HH:MM::SS::FF」「Timecode」「Both」から用途に応じ選択
  • 他システムとフレーム合わせするなら「Both」で個別チャンネルとカウンタ両方を取得
  • タイムコードが不要なら「Off」にして余計なチャンネル更新を避ける

❌ Problem: 出力にジッタやブレが目立つ
✅ Solution:

  • 後段に Filter CHOP を入れて 1〜2 フレームの平滑化を適用
  • 急な姿勢変化には Lag CHOP で時間方向の応答を緩める
  • Ncam 側のトラッキング精度設定 (マーカー / IR センサー) を見直す

参考資料 📚

その他 🔗

公式リソース 📖

外部リソース 🌐

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