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

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

ZED SOP の空間マッピング機能を示す図

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

概要 📖 – 深度カメラで立体を取込

ZED SOPは、ZED ステレオカメラの空間マッピングから立体メッシュジオメトリを生成する SOPです。サンプリングした点群からサーフェスを構築し、法線やテクスチャ座標を付与した実空間の 3D メッシュを出力します。

主な用途 🎯

  • ZED ステレオカメラの空間マッピングから立体メッシュを生成
  • 実空間のスキャンを 3D ジオメトリとして TouchDesigner に取り込み
  • インスタレーションでの環境スキャン・空間再現
  • 抽出メッシュへの法線・テクスチャ付与によるリアルな再現
  • プロジェクションマッピング向けの実環境形状取得

データフロー 🔄

入力: ZED カメラの深度・点群データ

空間マッピング処理(点のサンプリングとサーフェス生成)

出力: メッシュジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

カメラ接続 .zedtop 🎛️

データ取得元となる ZED カメラの指定:

ZED TOP .zedtop 📷
ZED TOP (基準となる ZED TOP) — カメラを設定している主たる ZED TOP の名前を指定します。
– 指定した ZED TOP が、この SOP がどのカメラからデータを受け取るかを決定します。

サンプリング制御 .sample 📈

空間内の点をサンプリングしてサーフェスを生成する操作:

Sample .sample
Sample (サンプリング) — 有効な間は ZED カメラが空間内の点をサンプリングします。
– 無効にすると、サンプリングした点群からサーフェスを生成し、法線やテクスチャ属性も併せて作成します。

Reset .reset ♻️
Reset (リセット) — 抽出したジオメトリを消去し、空間マッピングを初期状態に戻します。

Reset Pulse .resetpulse ⏏️
Reset Pulse (リセット実行) — ボタンを離した瞬間 (button-up) に Reset を即座に実行します。
– Python では pulse() メソッドで実行します。

プレビュー .preview 👁️

Preview (プレビュー詳細度) — カメラがサンプリング中に表示するプレビューの詳細度を選択します。

項目 内部名 説明
No Preview .nopreview サンプリング中にプレビューを表示しない
Limited Preview .limited プレビューの詳細度を制限して表示
Full Preview .full 利用可能なすべての点をプレビュー表示

マッピング設定 .resolution 📏

空間マッピングの精度・範囲・メモリに関する設定:

Maximum Memory .maxmemory 💾
Maximum Memory (最大メモリ) — 空間マッピングに使用する最大メモリ量を設定します。

Resolution .resolution 📐
Resolution (解像度) — カメラが使う空間マッピングの解像度を設定します。
– 小さい解像度は詳細なジオメトリを作成し、大きい解像度はジオメトリの大きな変化のみを残します。

Range .range 🎯
Range (距離範囲) — 空間マッピング後に抽出する対象物の距離範囲を設定します。
– 小さい範囲はカメラに近い対象を、大きい範囲はカメラから遠い対象を使います。

属性付与 .normals

抽出メッシュに付与する法線・テクスチャ属性:

Normals .normals 🧭
Normals (法線) — 有効にすると、抽出したジオメトリに法線が付与されます。

Texture .texture 🖼️
Texture (テクスチャ) — 有効にすると、メッシュの空間マッピングテクスチャとテクスチャ座標が作成されます。
– 空間マッピングテクスチャは ZED TOP から取得できます。

メッシュ整形 .filter 🎚️

Filter (フィルタ強度) — メッシュのフィルタリングレベルを設定します。

項目 内部名 説明
Low .low ジオメトリの小さな穴が除去される
Medium .medium ジオメトリが平滑化される
High .high 三角形数が削減され、ジオメトリが平滑化される

点の統合 .consolidatepts 🔗

近接した点を統合する設定:

Consolidate Points .consolidatepts 🔗
Consolidate Points (点の統合) — 有効にすると、近接して重複している点が統合されます。


実践アイデア 💡

Example 1: 実空間スキャン 🏠

ZED TOP → ZED SOP (Sample) → Geometry COMP → Render TOP

ZED TOP でカメラを設定し、ZED SOP の Sample を有効にして空間内の点をサンプリングします。サンプリング完了後にサーフェスを生成し、実空間のメッシュを 3D シーンに取り込む基本フローです。

  1. ZED TOP でカメラを設定し ZED SOP の ZED TOP パラメータに指定
  2. Sample を有効にして空間内の点をサンプリング
  3. Sample を無効にしてサンプリング点からサーフェスを生成
  4. 出力メッシュを Geometry COMP に接続してシーンに配置

Example 2: 質感付き再現 🖼️

ZED TOP → ZED SOP (Normals + Texture) → Phong MAT → Render TOP

ZED SOP の Normals と Texture を有効にして、抽出メッシュに法線とテクスチャ座標を付与します。空間マッピングテクスチャを ZED TOP から取得してマテリアルに適用し、実環境の質感を再現する用途です。

  • Normals を有効にして抽出ジオメトリに法線を付与
  • Texture を有効にしてテクスチャ座標を生成
  • ZED TOP から空間マッピングテクスチャを取得してマテリアルに適用

Example 3: 軽量メッシュ化 ⚡

ZED SOP (Filter High) → Polyreduce SOP → Convert SOP

ZED SOP の Filter を High に設定して三角形数を削減し、後段で Polyreduce SOP を併用してさらにメッシュを軽量化します。リアルタイム描画の負荷を抑えたいインスタレーションでの整形フローです。

  • Filter を High に設定して三角形数を削減・平滑化
  • 後段の Polyreduce SOP でポリゴン数をさらに削減

関連オペレータ 🔗

類似機能OP 🔍

  • Kinect SOP — 別の深度カメラからジオメトリを取得

組み合わせ推奨OP 🔄

  • ZED TOP — カメラを設定し空間マッピングテクスチャを供給
  • Polyreduce SOP — 抽出メッシュのポリゴン数を削減
  • Facet SOP — 法線の再計算・平滑化
  • Convert SOP — メッシュ形式を別ジオメトリ型に変換

前処理・後処理SOP 🎯


Info情報 📊

ZED SOP は Info CHOP によるジオメトリのメタ情報取得に対応しています。

ジオメトリ統計 📐

  • num_points: この SOP に含まれるポイント数
  • num_prims: この SOP に含まれるプリミティブ数
  • num_particles: この SOP に含まれるパーティクル数

GPU 転送タイミング 🎮

  • last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)
  • last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: 直近のクック所要時間 (ミリ秒)
  • cook_frame: このオペレータが最後にクックされたフレーム番号
  • warnings: このオペレータの警告数
  • errors: このオペレータのエラー数

クック統計 ⏱️

  • cook_time: 直近のクックに要した時間 (ミリ秒)
  • total_cooks: 累積クック回数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: メッシュが生成されない
✅ Solution:

  • ZED TOP パラメータに有効な ZED TOP が指定されているか確認
  • Sample を有効にして十分にサンプリングしてから無効に切り替えたか確認
  • Range の距離範囲が対象物の位置を含んでいるか確認

❌ Problem: ジオメトリが粗い・荒れる
✅ Solution:

  • Resolution を小さくして詳細なジオメトリを生成
  • Filter を Medium / High にして平滑化
  • Consolidate Points を有効にして近接した重複点を統合

❌ Problem: メモリ不足・動作が重い
✅ Solution:

  • Maximum Memory を環境に合わせて調整
  • Resolution を大きくしてジオメトリの大きな変化のみ残す
  • 後段で Polyreduce SOP を使ってポリゴン数を削減

参考資料 📚

その他 🔗

公式リソース 📖

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