【UnityでOculus Quest向けのアプリを作る】物を掴む為には


#◆はじめに
今回は、手の表示と物を掴む方法をやります。

前の内容は ↓ に参照してください。
「 [APPをビルドして、動作確認する](https://qiita.com/Kujirai_sakananosuke/items/7874318d3f5ce24e9c63#-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83) 」

（日本語と中国版あります）
#◆ 開発環境
macOS Mojave バージョン 10.14.6
Unity 2018.4.12f1
Android SDK
#◆ 手順
- 1. 手を表示する
    - 1_1. LocalAvatarWithGrab導入
    - 1_2. Ovr Avatar の設定
    - 1_3. OculusのアプリのID発行と設置
- 2. 掴む物体の追加と設定
- 3. 動作確認

##1.手を表示する
###1_1. LocalAvatarWithGrab導入
新規シーンを作ります。
具体的な制作方法は前回の「 [APPをビルドして、動作確認する](https://qiita.com/Kujirai_sakananosuke/items/7874318d3f5ce24e9c63#-%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83) 」を参照してください。

物を掴む為には、まず手を表示する必要が有ります。
前回導入した、Oculus Integrationの中には、物を掴む機能を搭載しているLocalAvatarwithGrab というプレハブが存在しています。
今回は、それを使います。
<img width="511" alt="01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/9e3dd211-b14c-3b14-9510-5653c39adca8.png">
「Assets」→「Oculus」→「SampleFramework」→「Core」→「AvatarGrab」→「Prefabs」
の中に「LocalAvatarWithGrab」あります。
階層は深い為、Projectの検索欄で「LocalAvatarWithGrab」と検索を掛けたら探しやすいです。
<img width="423" alt="02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/a46731ef-836d-2012-c4ef-2183b9b7053e.png">
これをHierarchyにドラックし、追加します。
追加したら、「Inspector」→「Transform」でポジションなどを設定します。
今回は、 「Scale」は1.7、他は全部0にします。
<img width="337" alt="03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/a1f9a664-a4f0-bdb6-41ab-b49350639ac2.png">
設置完了後、前回作った「OVRCameraRig」を削除します。
「LocalAvatarWithGrab」の中にも「OVRCameraRig」が存在している為、不要です。
###1_2. Ovr Avatar の設定
続いて、追加した「LocalAvatarWithGrab」クリックし、
「Inspector」→「Ovr Avatar」→「Shaders 」の設定を調整します。
<img width="413" alt="04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/66b5200a-1de6-3200-e194-66e7db0f28bf.png">
「Controller Shader」右側の丸をクリック。
「Shader」を設定する画面に遷移するはずです。
<img width="371" alt="05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/3e597349-4dae-496f-a672-8bb873fa108e.png">
検索欄で「AvatarPBRV2Simple」検索し、
ファイル名が合っている「Shader」をダブルクリックし、設定する事ができます。
<img width="583" alt="06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/44f6949a-9d42-f214-5a6e-553f88300b2d.png">
設定したら、「Shader」はこのような状態になります。
###1_3. OculusのアプリのID発行と設置
追加した手を表示するためには、OculusのアプリのIDと「Create android manifest 」が必要です。 

アプリのIDは、
Oculus ホームページのダッシュボードにアクセスし、
「新しいアプリを作成」からアプリを登録して、発行出来ます。
[Oculus Developer Dashboard](https://dashboard.oculus.com/ )
詳しいID発行方法は、ここでは割愛します。

<img width="472" alt="07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/f1d59ffc-f68b-8fa2-316e-ef8785ee1d0e.png">
<img width="603" alt="08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/bd330ffd-68be-f8af-683c-86db4cca817a.png">
ID発行後、Unityに戻ります。
メニューから「Oculus] →「Avatars」→「Edit Setting」をクリックすると、
「OvrAvatarSettings」が表示されます。 

先程発行したアプリIDを設定して、これでID設定は完了になります。
<img width="489" alt="09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/8d89c73d-2bbb-0a58-e71b-1a92dd7400af.png">
最後、手を正しく表示するために「Create android manifest」を設置する必要があります。
設置方法は非常に簡単、
「Oculus」→「Tools」→「Create store-compatible AndroidManifest.xml」をクリックするだけです。
##2. 掴む物体の追加と設定
<img width="364" alt="10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/b6b774f6-0b68-d709-c204-8d9ed0730ec3.png">
<img width="988" alt="11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/c3bfab35-1a0e-5a78-46f9-f7ec356c9ee3.png">
掴む用のオブジェクトを追加します。
「Hierarchy」で右クリック「3D」→「Object」→「Cube」を追加します。
サイズは自由です。
<img width="599" alt="12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/1294b435-6654-34dc-d073-1dd540879da8.png">
追加した「Cube」を選択します。
「Inspector」→「Add Component」で「Rigidbody」と「OVR Grabbable 」を検索し、追加します。
「Box Collider」は最初から存在するはずですが、なければ「Rigidbody」と同じ方法で追加します。
これで、設置完了です。
##3. 動作確認
<img width="787" alt="スクリーンショット 2019-12-20 16.40.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/342bf5bf-fbbc-3146-f231-29a7ac133767.png">
ビルドする前に、まずUnity上で一回実行して、「Cube」落下するかどうか確認します。
![com.oculus.UnitySample1-20191220-165057.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/e5916fa9-6a55-3e1f-804c-72fbbc26ac80.jpeg)
問題無ければ、ビルドして、実機で動作確認しましょう。