🍰

Quest Pro でURPでPassthroughを利用する

2023/06/30に公開

はじめに

Quest Proを使ってPassthroughを利用します。
VRテンプレートのようなBuiltin Render Pipelineだとできることは確認済みなので、URPを使ってみます。

環境

  • Unity 2022.3.3f1でURPテンプレートを使用してプロジェクトを作成
  • Package ManagerでVR Featuresをインストール
     ※実際にインストールされるのはOculus XR Plugin(4.0.0)とOpenXR Plugin(1.8.1)
  • Package ManagerでXR Interaction Toolkit(2.3.2)をインストール
     ※サンプルもいくつかインストール
  • Asset StoreでOculus Integration(54.1)をインストール

設定の変更

  1. File > Build SettingsでAndroidに切り替えてTexxture CompressionをASTCに設定
  2. Project Settings > Preset Managerでコントローラーの設定を入れる
     ※XR Interaction ToolkitのSamplesのStarter Assets配下で使いたいPresetを選んで追加していけばOK
  3. Project Settings > XR Plug-in ManagementでPCにOpenXRを選択、AndroidはOculusを選択
  4. XR Plug-in ManagementのOculusのカテゴリでMulti PassをRendering Modeに選び、Target DevicesにQuest Proを選択
  5. 同OpenXRのカテゴリでRender ModeをMulti-passにし、Interaction ProfilesでOculus Touch Controller Profileを追加
  6. PlayerにてScripting BackendをIL2CPPにし、Graphics APIsからVulkanを外す
  7. Minimum API Levelを29に更新
  8. Target ArchitecturesをARM64に設定
  9. Project Validationをみてエラーが出ていれば解決する

プロジェクトの作成と変更

  1. New SceneにてStandard(URP)を作成
  2. Main CameraとGlobal Volumeを削除
  3. XR Interaction ToolkitのStarter AssetsにあるComplete XR Origin Set UpをHierarchyに追加
  4. Complete XR Origin Set Up下にあるMain CameraのEnvironmentのBackground TypeをSolid Colorにし、Alphaを0に設定
  5. **【これが肝心】**OutputのHDR RenderingをOffにする。
  6. パススルーを利用するためにシーンにOVR ManagerとOVR Passthrough Layerを追加
  7. OVR ManagerのTracking Origin TypeをFloor Levelに変更
  8. OVR Passthrough LayerのPlacementをUnderlayに変更する。

いまのURPではPost ProcessでAlphaを0のままにしてくれない様なのでPost Processを切る必要がある。

プロジェクトの実行

Quest Proのパススルーを利用する場合、実機を接続してPlay Modeで体験をすることはできないので、Build And Runで実行します。

ちなみに、メインカメラのHDR(High Dynamic Range)レンダリングをオフにすると、色の表現範囲が制限され、次のような機能に影響が出る可能性があるので、素直にBuiltin Render Pipelineを使ってもいいのかなと思います。

  1. 明るさの表現範囲:HDRをオフにすると、色の明るさの表現範囲が狭まり、シーン内の明るい部分や暗い部分のディテールが失われる可能性がある

  2. ブルーム効果:HDRをオフにすると、ブルーム効果が正確に表現されなくなる可能性がある
     これは、ブルーム効果が明るい部分を強調するためにHDRの広い色域を利用しているため

  3. トーンマッピング:HDRをオフにすると、トーンマッピングが正しく機能しなくなる可能性があります。トーンマッピングは、HDRの広い色域をLDR(Low Dynamic Range)ディスプレイに適応させる技術

Discussion