mcpField
H
hz-unity-passthrough-camera-access

hz-unity-passthrough-camera-access

github.com/meta-quest開発241195 回インストール5 週間前に更新
リポジトリ

hz-unity-passthrough-camera-access について

hz-unity-passthrough-camera-accessは、UnityアプリでQuest 3およびQuest 3Sの前面RGBカメラを使うための開発者向けガイドです。Camera2の利用と、画像をコンピュータービジョンや機械学習の処理に活用する方法を扱います。

主な機能

  1. 01Quest 3/Quest 3SのRGBカメラ案内
  2. 02Android Camera2の画像取得とメタデータ
  3. 03複数カメラへのアクセスと制御
  4. 04ワールド空間への投影と検出のリファレンス

活用シーン

  1. 01インタラクティブ体験での物体検出
  2. 02カメラを使ったツアーやガイドの構築
  3. 03環境の変化によるタスク実行状況の確認
  4. 04ML検出結果のワールド空間への配置

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/meta-quest/agentic-tools --skill hz-unity-passthrough-camera-access

インストール後、Claude Code で/hz-unity-passthrough-camera-accessを入力して読み込まれたか確認します。

同梱ファイルreferences/detection-bounding-boxes.mdreferences/principal-point-offset.md

詳細

Meta Quest パススルーカメラアクセス(PCA)

Android Camera2 APIを基盤とするパススルーカメラアクセスでは、コンピュータービジョンと機械学習をサポートするために、Quest 3 および Quest 3S の前面 RGB カメラにアクセスできます。この API は、ユーザーの視点(UI を含む)からのキャストをサポートするメディアプロジェクション APIとは異なります。ユーザーが見ているものを表現することが目的の場合は、メディアプロジェクション API を使用してください。Scene API が提供する範囲を超えてユーザーの環境や行動の理解を深める、アプリケーション固有のコンピュータービジョン機能を追加するには、パススルーカメラ API を使用してください。

ユースケース

この API は、前面 RGB カメラを使って遮るもののない視界を提供し、ML/CV パイプラインに統合できます。一般的なユースケースは次のとおりです。

  1. アプリケーションが操作できる特定のオブジェクトを識別する、専用にトレーニングされた ML/CV モデル(例:ダンベルなどのフィットネス器具、オーディオミキサーなどの産業用機器)。
  2. エクスペリエンス向けの ML/CV アシスタントやガイド。たとえば、美術館のツアーでは、絵画を見ると、デバイス外の LLM を使ってその歴史、作者、様式に関する情報を表示できます。
  3. トレーニングや特定の関心分野に特化したアプリケーションへのフィードバック。ユーザーにタスクの実行を依頼した後、アプリが環境の変化を解釈して、正しく実行できたかを検出できます(例:ホワイトボードへの書き込み)。
  4. デザインの改善。照明を解釈したり、カメラ画像を使ってテクスチャを変更したりすることで、よりリアルなデザイン効果を実現できます。

一般的な前提条件

  1. Horizon OS v74 以降。
  2. Quest 3 または Quest 3S(Quest Pro 以前のデバイスはサポートされていません)。
  3. android.permission.CAMERA または horizonos.permission.HEADSET_CAMERA のいずれかの権限。CAMERA はパススルーカメラとアバターカメラの両方へのアクセスを許可し、HEADSET_CAMERA はパススルーカメラへのアクセスのみを許可します。
  4. パススルーカメラ API にアクセスするには、パススルー機能を有効にする必要があります。

Android Camera2 を使用したパススルーカメラ

Meta VR デバイスのカメラアクセスは、Horizon OS 上でAndroid Camera2 APIを基盤として実装されています。Horizon OS v74 以降、Camera2 とその Unity 拡張機能を Meta VR ヘッドセットで利用できます(Horizon OS v83 では Unreal 拡張機能が追加されました)。Quest 3 および Quest 3S では、開発者は HMD 前面にある左右のカメラにアクセスできます。

Android Camera2 API では、次の機能を利用できます。

  • 画像のキャプチャ: 高度な処理のためにカメラデータをキャプチャします。
  • カメラのメタデータ: API に問い合わせて、ハードウェアの機能や構成情報を取得します。
  • マルチカメラのサポート: 複数のカメラにアクセスして制御します。

既知の問題

  1. OS を新規に書き込んだ後、v74 でカメラ API を使用するアプリを初めてインストールすると、RGB チャンネルが反転して色が歪む場合があります(例:肌の色が青みがかって見える)。デバイスを再起動すると解消されます。
  2. パススルーカメラ API は XR Simulator ではサポートされていません。
  3. パススルーカメラのテクスチャは、ユーザーに見える範囲より狭い長方形の領域(1280×960)をキャプチャします。v83 で追加された 1280×1280 の解像度では垂直方向の視野が広がりますが、パススルーで見える範囲全体をカバーすることはできません。
  4. 親が Teen および Youth アカウントに適用した制限(例:パススルーカメラ API へのアクセス)は、Meta Quest Developer Hub を通じてアプリケーションをインストールした場合、適用されません。

ベストプラクティス

  1. ユーザーのプライバシーを確保してください。 カメラ画像データはデバイスユーザーデータと見なされ、Developer Data Use Policy の対象です。このポリシーを完全に遵守してください。
  2. デバイス上で負荷の高い処理を避けてください。 カメラ画像をデバイス上で処理すると魅力的なユースケースを実現できますが、高いフレームレートを維持し、快適に利用できるようにしてください。
  3. デバイス上でフィードを検証してください。 デプロイ後、パイプラインの実行中に metavr adb logcat --follow --tag Unity をストリーミングしてフレームが流れていることを確認し、統合する前に metavr docs search "passthrough camera access Unity" で PCA API の変更を確認してください。この機能は頻繁に変更されます。

参考資料

PCA 画像をワールド空間に投影して配置するための、タスク別の詳しいガイダンスは references/ にあります。

  • references/principal-point-offset.md — 光軸を平面の法線として使用し、カメラ画像をワールド空間の平面に正しく投影します(視錐台スライスクワッド、FOV ビジュアライザー、画像平面オーバーレイ)。ViewportPointToRay の角の光線から非矩形のクワッドが生成される場合、カメラに合わせたクワッドが中心からずれる場合、または Quest 3 では正しく機能したのに、カメラの主点がオフセットされたデバイスで 2 * d * tan(fov / 2) を使うとサイズが正しくならない場合に参照してください。
  • references/detection-bounding-boxes.md — ML モデルが検出した現実世界のオブジェクトの周囲に、正確な 3D バウンディングボックスを描画します。2D ML 検出結果(YOLO、SSD、DETR、カスタム CNN)をワールド空間に配置する場合、2D 検出結果からカメラに向いたビルボードクワッドを作成する場合、またはオブジェクトの位置特定のために PassthroughCameraAccess と EnvironmentRaycastManager を連携させる場合に参照してください。

コメント