最近、MetaQuest2ではパススルーを使ったアプリが増えてきました。
本記事ではパススルーに加え、ハンドトラッキングも使用するための環境構築を行います。
アプリ開発の参考になれば幸いです。
環境構築
使用バージョンはUnity2021.3.6f1となります。まずはBuildSettingsから、Androidに変更しましょう。
その後、Project Settings>Playerへ移動し、下記の設定を行います。
・Auto Graphics APIのチェックをはずして、Graphics APIsのOpenGLES2を削除する
・Script BackendをIL2CPPにする。
・Target ArchitectureのARM64のみにする。
・ AndroidのターゲットAPIレベルを29にする。
次に、Oculus Integrationをアセットストアから入手し、インストールを行いましょう。
最後にXR Plugin Managementへ移動し、Oculusを有効化します。
これで設定は完了です!
パススルー
まずは、HierarchyウインドウのMainCameraを削除し、OVRCameraRigプレハブを追加しましょう。
Inspectorウインドウを見ると、OVRManager内にPassthrough Capability Enabledの項目がありますのでオンにします。その後表示されるEnable Passthroughの項目もオンにしましょう。
続いてAdd Componentより、OVR Passthrough Layerを追加します。
OlacementやOpacityの値を調整することで、パススルーの映像と、CGの映像の合成具合を調整することができます。デフォルトではOpacityが1になっていますが、今回は0.8にしました。
ハンドトラッキング
「OVRCameraRig」をクリックし、Inspectorウインドウを見ると、OVRManagerがあり、項目にHandtrackingSupportがあります。
ここでハンドトラッキングを切り替えます。「Controllers and Hands」または「 Hands only」に変更しましょう。
Quest2でハンドトラッキングを使用していない方は、そちらの設定変更も必要です。
設定 > デバイス > ジェスチャーコントロールとコントローラーへ移動し、ジェスチャーコントロールをオンにしましょう。
これでハンドトラッキング・パススルーの設定が完了しました。
ビルドしてみると、パススルーで部屋を見渡すことができるほか、ピンチインでOculusのメニューを表示させることができます。
試しに、OVRCameraRigのなかにOVRHandPrefabやCubeを加えてみました。
ビルドしてみよう!
ビルドした映像がこちらになります。
パススルーの画面は通常のキャプチャでは真っ黒になってしまうため、UnityのAndroidLogcatを使用して動画を撮影しました。
このように、うっすらとCubeをみることができます。HandPrefabは手とほぼ同化してしまい、みることができませんでした。
また、デフォルトで設定されている背景も薄く確認することができます。
まとめ
パススルーもハンドトラッキングも簡単に設定することができました。
サンプルも充実しているため、どういった表現ができるか確認したい場合はAssets/Oculus/SampleFramework/Usage/Passthroughなどのシーンを確認すると良いでしょう。