はじめに
BloomなどのPostprocessを使用するためにHDR設定を有効にすると、パススルーの映像が真っ黒になってしまう問題がありました。
Unity6ではこの問題が解消されているようです。
本記事はこちらの記事の続きとして設定方法を記載します。
Quest向けパススルーアプリの基本的な設定方法はこちらのを参照してください。
開発環境
Unity 6000.0.48f1
Unity Open XR Meta 2.2.0
OpenXR Plugin 1.15.0
XR Interaction Toolkit 3.2.0
プロジェクト設定
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が光ります。
そこで、Emission ColorのIntensityを一定周期で変更し、HDRが有効になっている事を確認します。
Script Graphで_EmissionColorを変更。
値の変化が見た目で分かりやすいように値に従って回転させてみました。
Bloomの広がり具合の変化でHDRが有効になっている事が分かります。
課題
パススルーの映像はスリープすると停止し、スリープから復帰してもパススルーは復帰せず真っ暗のままになっています。
解決方法が分かりましたら追記します。↓追記しました。
2025/09/18追記
Unity Open XR Meta 2.2.0 での不具合です。
有志によるパッチで対応可能です
https://github.com/mschult2/meta-passthrough-patch
または、2.1.1へダウングレードすれば本不具合は起きません。
https://discussions.unity.com/t/app-losing-passthrough-access-when-putting-down-headset/1667533
おわりに
HDRが使えると表現の幅が広がって嬉しいです。
今回のプロジェクトはこちらのレポジトリで共有しています。
GitHub Repository
参考