はじめに
注意!本記事は公式に公開されている正規の方法ではなく、あくまでも筆者が調査・検証した結果をもとに記載しています。
HDR設定を有効にすると、パススルーの映像が真っ黒になってしまう問題はMeta Quest3では解消されていますが、PICO4系では依然としてあります。
Meta Quest3でHDR+パススルーを有効にする方法はこちら。
しかし、PICO4でも裏技的にこれを実現する方法がありましたので、ご紹介します。
Unity OpenXR Metaを使ってPICO4でパススルーを実現する
一体何を言っているんだ?と思われるかもしれません。私も思いました。
PICO4でもUnity Open XR Metaを使うことでパススルーかつHDRを有効にできます。1
本記事はこちらの記事の続きとして設定方法を記載します。
PICO4向けパススルーアプリの基本的な設定方法はこちらのを参照してください。
開発環境
Unity 6000.0.59f2
OpenXR Plugin 1.15.1
XR Interaction Toolkit 3.3.0
Pico Unity OpenXR SDK 1.4.1
Unity Open XR Meta 2.3.0
AR Foundation 6.3.0
プロジェクト設定
- MainCameraのPostProcessingをON
- MainCameraのHDR設定
Camera > Output > HDR Renderingは "Render Pipline Asset" の設定を使用する。
- URPのQuality > HDR Precisionを64bitにする
- URPのPostProcessing-AlphaProcessingをON
Unity Open XR Metaをインストールする
Package ManagerでUnity Open XR Metaを検索してインストールしてください。
しつこいですが、Metaで間違いありません。

Open XR Metaをインストールはしますが、チェックはしません。

Android SDKバージョンを32にする
Project Settings > Player > Identification

Open XR Feature Groups
チェックを入れる項目
- Compossition Layers Support
- Meta Quest:Camera(passthrough)
- Meta Quest:Session
チェックを外す項目
Bloomの設定
Post ProcessingでBloomを追加する
まず、Hierarchyを右クリックし、Volume > Global を選択。
Global Volumeを追加します。

Global Volume GameObjectにあるVolumeコンポーネントにて、NewボタンでVolume Profile Assetを作成。

Add Overrideで Post-processing > Bloom を選択

Bloomの設定値の例。Intensityの値が強さになるので、0より大きな値を設定してください(ここでは1)

光るCubeを追加する
次に、光らせるGameObjectを配置します。
Materialを作成。ShaderはUniversal RenderPipline/Lit。
Emissionにチェックを入れ、Emmision MapのIntensityを上げるとCubeが光ります。


たまにパススルーが有効にならない問題
上記の方法でパススルーかつポストプロセスができてめでたしめでたし…とはいかず。たまにパススルーに失敗するケースがありました。
ログを確認したところ、アプリ起動時にOpen XRの初期化とパススルーの初期化の順序が入れ違うことで本問題が発生します。
この問題は、Unity OpenXR Mataにパッチを当てることで解決しました。
パッチの適用方法は以下を参照してください。
おわりに
PICO4系を使う機会が多いのでHDRを使う方法が見つかり安堵しました。
ただ、繰り返しになりますが、正規の手順ではありませんので、自己責任でお試しください。
公式でも早く対応されることを期待しています。
今回のプロジェクトはこちらのレポジトリで共有しています。
GitHub Repository
