XR Handsでサンプルを動かす
XR HandsでVR
Quest2とPCでVR空間上でコントローラーでの簡単な操作とコントローラーなしでのハンドトラッキングの実装までをやってみた。
いろいろ四苦八苦してミニマムな感じに設定できたので自分用にメモしておく。
Open XRについて
調べた限り立ち位置としてはこんな感じっぽい。
UnityでQuest2を繋いでVRのゲームをつくるとき、だいたい以下のような選択肢があるらしい。
- OpenXR
VR/AR標準仕様らしい。- XR Interaction Toolkit
基本的な移動やコントローラー認識。 - XR Hands
ハンドトラッキング。
- XR Interaction Toolkit
- Oculus独自
Oculusの用意した開発キット。
なんとなく標準仕様に惹かれたのでOpen XRでの実装を目指した。
Open XRとOculus Integrationの情報が調べるときごっちゃになって難しかった。
環境
Unity 2022.3.5f1
Android Build Support, Windows Build Support (IL2CPP), 日本語言語パック
XR Interaction Toolkit: 2.4.3
XR Hands:1.2.1
手順
- プロジェクト作成:3D(コア)
- パッケージのインストール:
ウインドウ>パッケージマネージャー>Unityレジストリを開き、以下をインストール
・XR Interaction Kit
・XR Hands - サンプルプログラムのインポート:
XR Interaction Kitのタブのサンプルから以下をインポート
・Hands interaction Demo - XR Plug-in Management設定
編集>プロジェクト設定>XR Interaction Kit>XR Plug-in Management
今回はOpen XRにチェックを入れる。
いろいろエラーが出ると思うのでエラーマークをクリックした先でFix All。
Open XRの設定について一つエラーが残るのでEditを押すとOpenXRの設定画面へ。 - OpenXR設定:
Render Mode:Multi-Pass これを入れないと片目しか見えなかったりする
Interaction Profiles:今回はQuest2で使うのでOculus Touch Controller Profileを追加。+から追加できる。
OpenXR Feature Groups:Hand系3つにチェック
・Hand lnteraction poses
・Hand Tracking Subsystem
・Meta Hand Tracking Aim
動作確認
ここまで出来たら
Assets/Samples/XR Interaction Toolkit/2.4.3/Hands Interaction Demo/Runtime/HandsDemoScene.unity
を開いて動かしてみる。
うまくできていればOculus Linkした状態でPlayボタンを押すとサンプルのシーン内でコントローラーでの移動・ターン、ハンドトラッキングの指先やつまみ操作ができる。
なんか若干エラーは出てるがまぁ動くのでよしとする。