Oculus Questでハンドトラッキングアプリの開発 準備編(Unity)
コンにちは!しめいずと申します!
12/20(金)に配布が開始された、Oculus Questのハンドトラッキングに対応したSDKを簡単に触ってみたので、セットアップ方法をまとめます!
開発経験がある人のためのTL;DR
バージョン12以上のOculus Integrationをインポートし、OVRCameraRig -> OVR Manager -> Input -> Hand Tracking SupportをControllers And HandsかHands Onlyに変更しましょう。
手を表示したり手の情報を取得するためには、LeftHandAnchorとRightHandAnchorにOVRHandPrefabを追加し、右手側の各スクリプトのHand LeftをHand Rightに変更する必要があります。
(手の情報はOVRHandPrefabのOVR Handコンポーネントに入っています。詳細は公式サイトへ)
※12/26追記
ボーンの情報などはOVR Skeletonコンポーネントに入っています。
Unityプロジェクトの作成
Unityをインストールしていない人は公式サイトからダウンロードしてください。(バージョン管理のためにUnity Hubをインストールするのがオススメです)
今回使用するUnityのバージョンは2018.4.13f1で、Android Build Supportモジュールを追加しています。
一通りインストール出来たらプロジェクトを作ります。
Unity Hubを起動し、新規作成をクリックします。
(バージョンを選択する場合は横の▼をクリック)
テンプレートは3Dを選択し、適当なプロジェクト名を入力し、作成をクリックします。
以上でプロジェクトの作成は終了です。
Oculus Quest向けに開発をするための準備
File -> Build Settingをクリックします。
Add Open Scenesをクリックし、Scenes In BuildにScenes/SampleSceneを追加しておきましょう。
PlatformのAndroidを選択し、Switch Platformをクリックします。
(Android向けのコンパイルが始まります)
最後にPlayer Settings...をクリックします。
右側のInspectorにPlayerSettingsが表示されるので、Other Settingsを選択ます。
Identification -> Package Nameに適当な名前を入力します。
(他のアプリと被ると厄介なので、ユニークなものにしましょう)
Identification -> Minimam API Levelを19以上のものにします。
(今回は23のAndroid 6.0にしました)
次に、下の方にあるXR Settingsを選択します。
Virtual Reality Supportedにチェックを入れるとVirtual Reality SDKsが選択可能になるので、+をクリックし、Oculusを選択しましょう。
これでOculus Quest向けに開発をする準備が整いました。
Oculus Integrationのインポート
Asset Storeタブを開き、Oculus Integrationをインポートします。
(初めて使う場合は、下部のSearchからOculus Integrationを検索し、ダウンロードしましょう)
下のようなダイアログが出てきたらImportをクリックします。
インポートが終了した後、いくつかダイアログが表示されますが、すべて一番左側のボタンをクリックで大丈夫です。
これでOculus Integrationのインポートが完了しました。
ハンドトラッキングの準備
Main Cameraは不要なので削除します。
Assets -> Oculus -> VR -> PrefabsにあるOVRCameraRigをHierarchyにD&Dで追加します。
追加したOVRCameraRigを選択し、Input -> Hand Tracking SupportをHand Onlyに変更します。
これでOculus Questでハンドトラッキングを使う準備ができました!
手を表示
前節でハンドトラッキングを使う準備ができましたが、現段階では何も表示されないので、手を表示できるようにします。
LeftHandAnchorとRightHandAnchorにOVRHandPrefabを追加します。
(画像ではLeft/RightControllerAnchorに追加していますが、公式ではLeft/RightHandAnchorの方に追加していました)
RightHandAnchorに追加したOVRHandPrefabを選択し、OVR Hand, OVR Skeleton, OVR MeshのHand Leftとなっている部分をHand Rightに変更します。
これでハンドトラッキング結果に合わせて手が表示されるようになりました。
ビルド・インストール
実際にOculus Questで動くか試してみましょう。
まず、こちらのサイトなどを参考にOculus Questを開発者モードにします。
それができたらOculus QuestをPCに接続しておきましょう。
File -> Build And Runをクリックします。
.apkファイルの保存場所を選択するダイアログが表示されるので、適当な場所を選択します。
しばらく放置し、ビルドとインストールが終了するのを待ちましょう。
インストールが終了すると、Oculus Questで勝手にアプリが立ち上がるので、Oculus Questを被って試してみましょう。
このように手が表示されれば成功です!お疲れ様でした!
補足
OVRHandPrefabのOVR Skeleton -> Enable Physics Capsuleにチェックを入れると、手に当たり判定が追加されます。
最後に
今回、ハンドトラッキングを使用する方法を紹介しましたが、実際のアプリに落とし込む場合はスクリプトで色々と処理をする必要があります。
その場合、OVR Handを使うことになるのですが、それに関してはまた後日書こうと思います。
(公式の解説ページがあるので、待てない方はそちらをどうぞ)
※2019/12/26追記
OVR Skeletonも使うことになります。
※2020/3/8追記
続き書きました!