めーぷるのおもちゃばこ

- アイドルになりたいエンジニア女子の制作日記 -

【Unity】OculusQuestのハンドトラッキングの実装をする〜導入編🐼〜

はじめに

OculusQuestのハンドトラッキングが使えるようになったので試してみました🐼


以下の環境で試しています。
・Unity2019.2.15f1
・Oculus Integration 12.0


OculusQuestでのビルドができる状態からの記事です!
(ビルドできるまでの設定を指定ないと出てくるパラメーターとかが変わってくるみたいです。)


試してみよう

【Oculus Integrationの導入】

まずAssetStoreからOculus Integrationをインポートします。Updateと出ている場合はUpdateしてからインポートします。

f:id:maplesyrup-cs6:20191229193241p:plain
Oculus Integration


↑インポートする前にアプデして12.0が最新だよーっていう感じになっているのに、
インポートすると、「新しいバージョンがあります。アップデートしますか?」的なWindowが出てきてそこには1.44みたいな書かれてます。(スクショとり忘れた...)
Yesしてリロードしてみたいなのを3回くらいやるとインポートされました。


【導入手順】

Scene上のMain Cameraは消して、Assets>Oculus>VR>Prefab>OVRCameraRigをシーンに配置します。

f:id:maplesyrup-cs6:20191229203114p:plain
OVRCameraRigをシーンに配置


OVRCameraRigのPrefabと同じ所にあるOVRHandPrefabを、先ほどシーンに配置したOVRCameraRigの中のLeftHandAnchorとRightHandAnchorの子に入れます。

f:id:maplesyrup-cs6:20191229203149p:plain
OVRHandPrefabを配置



OVRHandPrefabのインスペクタでOVR Hand、OVR Skeleton、OVR Meshの所にHand Left/Hand Rightを選ぶ所があります。
デフォがHand Leftになっているので、RightHandAnchorの子に配置したOVRHandPrefabの方をインスペクタからそれぞれHand Rightに変えます。

f:id:maplesyrup-cs6:20191229203432p:plain
それぞれRightHandを設定


続いて、OVRCameraRigのインスペクタからOVR ManagerのHand Tracking Supportの所をHands OnlyもしくはControllers and Handsにします。

f:id:maplesyrup-cs6:20191229204717p:plain
Hand Tracking Supportの設定


それぞれのパラメーターの違いは以下です。

・ControllersOnly
これに設定しているとコントローラー用のアプリになります。手を使う設定の状態でアプリを起動すると「コントローラーが必要」的な注意が出てアプリを開けません。


・Controllers And Hands
コントローラーでアプリを起動したらコントローラー用のアプリとして起動し、コントローラーが表示される。手は認識されない。
設定から「手を使用」の設定にして起動したらハンドトラッキング用のアプリとして起動し、手が認識される。この時にコントローラーを触るとコントローラーが表示され、手が認識されなくなる。


・HandsOnly
ハンドトラッキング用のアプリとして起動。コントローラーでアプリを起動したら手が認識されなかった。
起動するときにすでに設定から「手を使用」の設定にして手で起動しなければいけない。
アプリ使用中はコントローラーは認識されないが、ボタンは反応するのでコントローラーで位置補正など可能。


こんな感じでここまできたら、おっけーです!
ビルドしてみたよ🐼

f:id:maplesyrup-cs6:20191229214225g:plain
わーい!





今回はここまで、インタラクション周りとかまた書いたらここに貼ります!🐼