Open10

Meta Quest Proでパススルー機能を試す

イワケンイワケン

How Does This Work?

パススルーは、専用のサービスによって別のレイヤーにレンダリングされ、XRコンポジターに直接送信されます。アプリは、ユーザーの物理環境の画像やビデオにアクセスすることはできません。その代わり、アプリケーションは特別なPassthroughレイヤーを作成します。このレイヤーは、XR Compositorによって実際のPassthroughレンダリングに置き換えられます。Passthroughをカスタマイズするには、コンポジットレイヤーとスタイリングといういくつかの方法があります。

  • コンポジットレイヤーを使用すると、XR Compositor スタック内の仮想コンテンツ(オーバーレイ、アンダーレイ)に対するパススルーレイヤーの配置と、仮想コンテンツとのブレンド方法を指定することができます。アルファマスキングを使用すると、画面上のどこにパススルーが表示されるかを指定することができます。現在のところ、パススルーの深さに基づいたブレンドを指定する方法はありません。
  • スタイリングでは、パススルーのフィードをカラー化したり、エッジを強調したり、コントラスト調整や画像のポスタリゼーションなどの画像処理効果を行い、グレースケール値を階段状に変化させることができます。
  • サーフェスプロジェクションパススルーは、パススルー画像を投影するジオメトリを定義することができます。この方法は、ユーザーの環境の一部がアプリケーションに知られている場合、Passthroughをより安定的に表現することにつながります。
イワケンイワケン

Prerequisites 前提条件

Passthroughを始める前に、Meta QuestオペレーティングシステムとOculus Integration SDKの最新バージョンを使用していることを確認してください。次のことを行ってください。

  • パススルー機能は、Meta Quest オペレーティングソフトウェアバージョン 34 以降でサポートされています。ヘッドセットがインターネットに接続され、最新バージョンがインストールされていることを確認します。最新バージョンを確認するには、ヘッドセットで、クイック設定 > バージョン情報 を開き、34以上の数字で始まる最新バージョンを確認します。
  • 最新のOculus Integration SDKをUnity Asset StoreまたはOculus Integration SDKのページからダウンロードします。
イワケンイワケン

Create Passthrough Layer

  • Projection Surface [投影させる表面]
    • Reconstructed [自動環境深度再構成]
    • User Defined [ユーザー定義]
  • Compositing [合成]
    • Placement [配置]
      • Overlay
      • Underlay
      • None
    • Composition Depth [合成の深さ]
      • 複数のレイヤーが存在するときに効果を発揮する

OVRPassthroughLayer の複数のインスタンスをシーンに追加し、それぞれを独自の設定にします。最大で3つのインスタンスを同時にアクティブにすることができます。

イワケンイワケン

Educational Dialog

ユーザーが Passthrough を使用するアプリケーションを初めて開いたときに、Passthrough の機能とプライバシーの詳細についてユーザーに説明するための教育用ダイアログが表示されます。ダイアログボックスの外観はシステムが自動的に管理します。ダイアログを表示させるためにコードを追加する必要はありません。

イワケンイワケン

パススルーにならない時

  • OpenXRをinstall
  • OpenXRでビルド

これでパススルーモードが起動した

パススルー表示がされない場合は以下を確認してみてください。

パススルー機能はOpenXR版のOVRPluginにのみ対応しています。OpenXR版が有効になっていない場合は、Oculus > Tools > OpenXR > Switch to OVRPlugin with OpenXR backendでOpenXR版に切り替えられます。なお、OpenXR版のOVRPluginを使用するにはカラースペースをLinearにする必要があります。
パススルー機能はIL2CPP/ARM64ビルドでしか動きません。Project Settings > PlayerでScript BackendがIL2CPPに、Target ArchitectureのARM64にだけチェックが入っていることを確認してください。
Project SettingsのShow Splash Screenがオフになっているとパススルーの初期化に失敗することがありました。現在は修正されているようです。

参考
https://framesynthesis.jp/tech/unity/oculusquest/