本日は Quest3 の技術調査枠です。
Depth APIのサンプルプロジェクトでQuest3のオクルージョンを試したので手順を記事にします。
Depth API
Depth APIはヘッドセットの視点からのリアルタイムな環境深度推定をアプリケーションに反映する新機能です。
アプリ内の仮想コンテンツが現実の物体と視覚的に相互作用するため、ユーザにより一貫した現実感を与えます。
Build Believable Mixed Reality Experiences with Mesh API and Depth API
以下のサンプルプロジェクトはDepth APIを使用してダイナミックオクルージョンを実装します。
github.com
プロジェクトのデプロイ
上記のGitHubプロジェクトをクローンして取得するか、Zipファイルでプロジェクトをダウンロードします。
今回は[Download ZIP]からzipファイルをダウンロードしました。
ダウンロードしたUnity-DepthAPI-main.zipを任意のフォルダに展開します。
以下のレンダリングパイプラインの設定が異なる2つのプロジェクトが含まれています。
参考にしたいレンダリング設定のプロジェクトを選択してください。
DepthAPI-BiRP:ビルトインレンダーパイプライン DepthAPI-URP:ユニバーサルレンダーパイプライン
UnityHubを起動してプロジェクトを開きます。
プロジェクトのUnityバージョンはUnity 2022.3.9f1でした。
メニューから[File -> Build Settings]を開き、プラットフォームを[Android]に[Switch Pratform]で切り替えます。
参照シーンの設定は行われているのでこのまま[Build]を実行します。
以下の記事を参考にMetaQuest3へのデプロイとアプリの起動を行ってください。
bluebirdofoz.hatenablog.com
動作確認
アプリを起動すると以下の[Occlusion Toggler]シーンが開きます。
本シーンではコントローラのAボタンを押すことで[オクルージョンなし(None)->ハードオクルージョン->ソフトオクルージョン]の効果を確認できます。
左コントローラのStartボタンを押してシーンを切り替えることができます。
[Per Object Occlusion]シーンではハードオクルージョンとソフトオクルージョンを同時に比較できます。
次の[Scene API Placement]シーンでは空間メッシュの体験ができます。
壁にポスターを貼ったり、Aボタンで空間メッシュの形状を表示することができます。
なお、空間メッシュはDepth APIとは異なる機能です。空間メッシュを体験するには事前にルーム設定が必要になります。
空間メッシュを利用するサンプルプロジェクトは以下を参照ください。
bluebirdofoz.hatenablog.com
最後の[Hands Removal]シーンでは手のオクルージョンを試すことができます。
コントローラを置いて手を目の前にかざすと、手が認識されてオクルージョンが行われます。