
概要 📖 – 深度・色画像を取り込む
Orbbec TOPは、Orbbec 製深度カメラに接続してカラー・深度・赤外線画像・IMU データを取得する TOPです。Device パラメータでカメラのシリアルを選択し USB / Ethernet 接続を確立した上で、Image パラメータで取り出すストリーム (カラー / 深度 / 赤外線 / 点群等) を切り替えます。Orbbec Select TOP と組み合わせれば、1 台のカメラから複数ストリームを同時取得できます。
主な用途 🎯
- Orbbec 製深度カメラ (Femto / Astra / Gemini 等) からカラー映像と深度マップを画像として取り込む
- 深度画像を後段の Threshold TOP / Math TOP に渡し、距離フィルタや人物切り抜きマスクとして利用
- Gyro / Accel センサー対応モデルから IMU データを Info CHOP 経由でチャンネルとして取り出し、傾き・揺れを演出に反映
- Properties CHOP 入力でカメラ内部設定 (ミラー・露出・ゲイン等) をリアルタイムに動的制御
- Orbbec Select TOP と併用し、1 台のカメラから複数の映像ストリーム (カラー・深度・赤外線等) を同時取得
データフロー 🔄
入力: Orbbec カメラ (USB / Ethernet 接続)
↓
Device パラメータで接続先を選択
↓
Color/Depth Resolution・FPS で取得形式を設定
↓
Depth Align Mode で深度を色カメラ空間にリマップ
↓
Image で出力ストリーム選択
↓
出力: TOP テクスチャ (モードに応じたチャンネル数・ビット深度)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Orbbec Page 📋
Active .active ✅
カメラとの通信オン/オフ:
- Active:
Active(有効) — オフにするとカメラとの通信を停止し、この TOP に依存する Orbbec Select TOP の動作も止まります。GPU / USB 帯域を節約したいときにオフにします
Device Source .devicesource 🔌
カメラへの接続方式の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Device | .device |
Device メニューでカメラのシリアル番号から選択 (推奨) |
| IP | .ip |
IP パラメータで Ethernet 接続カメラの IP アドレスを直接指定 |
Device .device 📷
Device Source = Device の時に有効、接続カメラの選択:
- Device:
Device(デバイス選択) — 接続したいカメラのシリアル番号を選びます。USB / Ethernet どちらも候補として現れ、抜き挿し後に自動再接続されます。1 台のカメラに対し Orbbec TOP は同時に 1 つだけ接続可能で、同じカメラから別ストリームが欲しい場合は Orbbec Select TOP を併用します - 接続検出の挙動: カメラをプラグインした直後はメニューに表示されるまで最長 30 秒ほどかかる場合があります
IP .ip 🌐
Device Source = IP の時に有効、カメラ IP アドレス:
- IP:
IP(IP アドレス) — 接続するカメラの IP アドレスを文字列で指定します。Device Source=IPの時のみ有効
Log to Console .logconsole 📝
コンソール出力のログレベル:
- Log to Console:
Log to Console(コンソールログレベル) — TouchDesigner のコンソールに出すログの詳細度を選びます。トラブル発生時は詳細レベルに上げ、運用時はエラーのみに絞ると見やすくなります
Log to File .logfile 🗂️
ログファイル出力のログレベル:
- Log to File:
Log to File(ファイルログレベル) — ログファイルに出力する詳細度を選びます。本番運用での障害解析・後追い検証に有用
Color Resolution .colorres 🖼️
カラーカメラの取得解像度 (カメラモデル依存):
- Color Resolution:
Color Resolution(カラー解像度) — 接続中カメラのカラーカメラ取得解像度を選択します。選択肢はカメラモデルに依存し、利用可能な解像度の組み合わせはColor FPSとの兼ね合いで制限される場合があります
Color FPS .colorfps 🎬
カラーカメラのフレームレート (カメラモデル依存):
- Color FPS:
Color FPS(カラー側フレームレート) — カラーカメラの取得フレームレート (frames-per-second)。カメラモデル毎にデフォルト値があり、選択肢は現在のColor Resolutionによって変動します
Depth Resolution .depthres 📐
深度カメラの取得解像度 (カメラモデル依存):
- Depth Resolution:
Depth Resolution(深度解像度) — 深度カメラの取得解像度を選択します。選択肢はカメラモデルに依存し、利用可能な解像度の組み合わせはDepth FPSとの兼ね合いで制限されます
Depth FPS .depthfps 🎞️
深度カメラのフレームレート (カメラモデル依存):
- Depth FPS:
Depth FPS(深度側フレームレート) — 深度カメラの取得フレームレート (frames-per-second)。カメラモデル毎にデフォルト値があり、選択肢は現在のDepth Resolutionによって変動します
Depth Align Mode .depthalignmode 🎯
深度画像をカラーカメラ空間にリマップする方式 (カメラモデル依存):
- Depth Align Mode:
Depth Align Mode(深度アラインモード) — 深度画像をカラーカメラの解像度・視野に合わせて変換するかどうか、変換する場合の処理方式 (ハードウェア / ソフトウェア) を選びます。深度・カラーの解像度組み合わせによってはサポートされず、非対応の組み合わせではノード上にエラーが表示されます
Image .image 🖥️
出力する映像ストリームの選択 (カメラモデル依存):
- Image:
Image(画像モード) — このノードの出力テクスチャに流す映像ストリームを選択します。選択肢はカメラモデルが対応するストリーム (カラー / 深度 / 赤外線 / 点群等) に依存します。同じカメラから別のストリームが欲しい場合は Orbbec Select TOP を併用してください
Enable Gyro Sensor .gyro 🌀
ジャイロ IMU データの取得有効化 (対応カメラのみ):
- Enable Gyro Sensor:
Enable Gyro Sensor(ジャイロ有効化) — 対応カメラでオンにすると、ジャイロセンサーからの回転 IMU データ (degrees/sec) を取得します。値は Info CHOP のチャンネルとして取り出せます
Enable Accel Sensor .accel 📡
加速度 IMU データの取得有効化 (対応カメラのみ):
- Enable Accel Sensor:
Enable Accel Sensor(加速度有効化) — 対応カメラでオンにすると、加速度センサーからの線形加速度 IMU データ (m/s²) を取得します。値は Info CHOP のチャンネルとして取り出せます
Properties CHOP .propschop 🎛️
カメラ内部プロパティを動的制御する CHOP の参照パス (チャンネル名は OB_PROP_ 接頭辞除外の小文字):
- Properties CHOP:
Properties CHOP(プロパティ CHOP 参照) — カメラ内部設定を動的制御するための CHOP のパスを指定します。CHOP の各チャンネルが 1 つの OBPropertyID に対応し、チャンネル名は全て小文字でOB_PROP_プレフィックスを除いた形で書きます (例:OB_PROP_COLOR_MIRROR_BOOL→ チャンネル名color_mirror_bool) - 対応プロパティの確認: サポートされるプロパティはカメラモデルごとに異なります。各プロパティの現在値は Info CHOP、最小・最大・デフォルト値は Info DAT で確認できます
Common Page 🔧
| 項目 | 内部名 | 説明 |
|---|
実践アイデア 💡
Example 1: 深度マスクで人物切り抜き合成 🎭
Orbbec TOP (Depth) → Threshold TOP → Composite TOP (背景映像と Over 合成)
Orbbec TOP を Image = Depth モードで動かし、近距離の人物だけが残るように Threshold TOP で 2 値マスクを生成、別の背景映像と Composite TOP の Over 合成で重ねると、グリーンバック無しのリアルタイム人物切り抜き合成が実現できます。
- Orbbec TOP を配置し、
Deviceで接続カメラを選択、ImageをDepthに設定 Depth Align Modeをオンにして深度をカラーカメラ空間にリマップし、後段でカラーと画素位置を揃えやすくする- Threshold TOP を接続し、人物が立つ距離 (例: 1.0m 以下) でしきい値を切ってマスクを作成
- 背景映像 (Movie File In TOP 等) と Composite TOP の Over モードでマスクを使って合成
Example 2: IMU データで演出を動かす 🌀
Orbbec TOP (Gyro/Accel 有効) → Info CHOP → Lag CHOP → Transform TOP の回転・移動
Gyro / Accel に対応する Orbbec カメラなら、本体の傾きや揺れをそのまま映像演出に流用できます。Info CHOP で IMU チャンネルを取り出し、Lag CHOP で揺らぎを滑らかにしてから Transform TOP の回転・位置オフセットに流せば、ハンドヘルド体験向けのカメラ追従演出が組めます。
- Orbbec TOP を配置し、
Enable Gyro SensorとEnable Accel Sensorを必要に応じてオンにする - Info CHOP を Orbbec TOP に接続し、ジャイロ (degrees/sec) と加速度 (m/s²) のチャンネルを取り出す
- Lag CHOP で IMU の生値にローパスフィルタを掛け、ノイズと急峻なジャンプを抑える
- Transform TOP の rotate / translate パラメータに Lag CHOP の出力を Export して映像を本体の動きに連動させる
Example 3: 深度を 3D 点群で可視化 🌌
Orbbec TOP (Depth) → GLSL TOP (depth → XYZ 変換) → TOP to CHOP → Geometry COMP の Instance Translate
Orbbec の深度画像を GLSL TOP でカメラ内部パラメータ込みで XYZ 座標テクスチャに変換すると、各ピクセルが 3D 位置を持つ点群として扱えます。TOP to CHOP で XYZ チャンネルとして取り出し、Geometry COMP の Instancing に渡せば、リアルタイム 3D 点群可視化が可能です。
- Orbbec TOP を配置し、
ImageをDepth、Depth Align Modeでカラー空間と整合を取る - GLSL TOP で深度値 + カメラ内部パラメータ (focal length / principal point) を用いて各ピクセルを XYZ 座標に変換
- TOP to CHOP で XYZ テクスチャをチャンネルとして取り出す
- Geometry COMP の Instancing で取り出した XYZ を Instance Translate に接続し点描画する
関連オペレータ 🔗
類似機能OP 🔍
- Orbbec Select TOP — 同一 Orbbec カメラから別ストリームを同時取得するための専用 TOP
- Kinect Azure TOP — Microsoft Azure Kinect 用の深度カメラ TOP。類似の深度・カラー・IMU 取得用途
- RealSense TOP — Intel RealSense 深度センサー用の TOP。類似の深度・カラー取得用途
- Kinect TOP — Microsoft Kinect v1 / v2 用の深度カメラ TOP
- Video Device In TOP — 一般 USB カメラ・キャプチャデバイスからの映像取得用。Orbbec のカラー側だけが欲しい場合の代替
組み合わせ推奨OP 🔄
- Threshold TOP — 深度画像をしきい値でマスク化、距離フィルタとして利用
- Composite TOP — Orbbec 映像と背景映像のレイヤ合成
- Math TOP — 深度値のレンジ変換・正規化、赤外線画像の露出補正
- Crop TOP — Orbbec 視野の特定領域だけを切り出して後段処理コストを下げる
- GLSL TOP — 深度から点群 XYZ への変換やカスタムフィルタ処理
- TOP to CHOP — 深度・点群テクスチャをチャンネルとして取り出し後段制御に流用
- Cache TOP — Orbbec 入力を一定フレーム蓄積してフレーム間差分・残像演出
前処理・後処理TOP 🎯
Info CHOP情報 📊
Orbbec TOPは Info CHOP による詳細情報取得に対応しています。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
代表的な取得チャンネル 📡
resolution_x / resolution_y: 出力テクスチャの幅・高さ (ピクセル)aspectx / aspecty: 出力テクスチャのアスペクト比 (横 / 縦)depth: ピクセルフォーマットのビット深度 (8 / 16 / 32)num_components: 出力チャンネル数 (Color=4 / Depth=1 等、Imageモードに依存)gpu_mem_used: GPU メモリ使用量 (バイト)。高解像度・高 FPS 設定時の負荷確認に有用gyro_x / gyro_y / gyro_z:Enable Gyro Sensorオン時、ジャイロセンサーの角速度 (degrees/sec)accel_x / accel_y / accel_z:Enable Accel Sensorオン時、加速度センサーの線形加速度 (m/s²)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: カメラが Device メニューに表示されない / 接続できない
✅ Solution:
- USB 接続なら USB 3.0 ポートに挿し直し、ハブ経由ではなく直結を試す (USB 2.0 では帯域不足になるモデルが多い)
- プラグインしてから最長 30 秒ほど待つ — メニューへの反映に時間がかかる場合あり
- Orbbec の純正 SDK / ドライバが OS にインストール済みか確認、別アプリ (Orbbec Viewer 等) でカメラが見えるかで切り分け
- Ethernet 接続カメラなら
Device SourceをIPに切り替えてIPパラメータに直接アドレス指定
❌ Problem: 深度とカラーの画素位置がずれる
✅ Solution:
Depth Align Modeをオンにして深度画像をカラーカメラの解像度・視野に合わせてリマップする- リマップ非対応の解像度組み合わせではノード上にエラーが出るので、
Color Resolution/Depth Resolutionをサポートされる組み合わせに変更する - リマップによりカラーカメラ視野外になる領域は黒で埋まるため、後段のマスク処理でその領域を無視する
❌ Problem: IMU データが取れない / Info CHOP に gyro / accel チャンネルが出ない
✅ Solution:
- 接続カメラのモデルが IMU (Gyro / Accel) センサーを搭載しているか公式仕様で確認 (搭載していないモデルではこれらパラメータは効きません)
Enable Gyro Sensor/Enable Accel Sensorをオンにする (デフォルトオフ環境もあるため要確認)- Info CHOP を Orbbec TOP に接続し、チャンネル一覧にジャイロ・加速度系チャンネルが含まれているか確認
❌ Problem: Properties CHOP で設定が反映されない
✅ Solution:
- CHOP のチャンネル名が全て小文字、かつ
OB_PROP_接頭辞を除いた形式になっているか確認 (例:color_mirror_bool) - 対応プロパティはカメラモデルによって異なるため、Info DAT で min / max / default が一覧されるかで対応状況を確認
Log to Consoleを詳細レベルに上げ、CHOP 経由のプロパティ書き込みエラーが出ていないかコンソールで確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

