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

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

Orbbec TOP の深度・カラー画像取得機能を示すサムネイル

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

概要 📖 – 深度・色画像を取り込む

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 テクスチャ (モードに応じたチャンネル数・ビット深度)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 合成で重ねると、グリーンバック無しのリアルタイム人物切り抜き合成が実現できます。

  1. Orbbec TOP を配置し、Device で接続カメラを選択、ImageDepth に設定
  2. Depth Align Mode をオンにして深度をカラーカメラ空間にリマップし、後段でカラーと画素位置を揃えやすくする
  3. Threshold TOP を接続し、人物が立つ距離 (例: 1.0m 以下) でしきい値を切ってマスクを作成
  4. 背景映像 (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 の回転・位置オフセットに流せば、ハンドヘルド体験向けのカメラ追従演出が組めます。

  1. Orbbec TOP を配置し、Enable Gyro SensorEnable Accel Sensor を必要に応じてオンにする
  2. Info CHOP を Orbbec TOP に接続し、ジャイロ (degrees/sec) と加速度 (m/s²) のチャンネルを取り出す
  3. Lag CHOP で IMU の生値にローパスフィルタを掛け、ノイズと急峻なジャンプを抑える
  4. 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 点群可視化が可能です。

  1. Orbbec TOP を配置し、ImageDepthDepth Align Mode でカラー空間と整合を取る
  2. GLSL TOP で深度値 + カメラ内部パラメータ (focal length / principal point) を用いて各ピクセルを XYZ 座標に変換
  3. TOP to CHOP で XYZ テクスチャをチャンネルとして取り出す
  4. 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: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 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 SourceIP に切り替えて 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 経由のプロパティ書き込みエラーが出ていないかコンソールで確認

参考資料 📚

その他 🔗

公式リソース 📖

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