Quest 3を使って、物を掴んだり、パススルーするプロジェクトを作る

似たような記事はググればいっぱいあるのですが、
結構やり方変わっていてここまで行くのに苦労したのでまとめてみました。

# インストール
一般的な手順は割愛。
UnityHubをインストールして最新のSDKを入れてください。
（執筆時点で2022.3.14f1）
プレリリースの方に2023の方がありますが入れないほうが無難です。
Unityは毎年3月ぐらいに前年度のLTS版を作成していて、2023の方はまだLTSに入っていないので。

ただ、Android用のSDKはインストールが必須です。
（Questは中身がAndroidなのでAndroidむけにビルドします）


# プロジェクト設定
## プロジェクト作成
UnityHubから新規プロジェクトを作成を押して、3Dコアを選んでプロジェクト作成を押下する。
参考記事の方はURPで作っていますが、Rendererの設定に苦労するので初心者はやめたほうがいいです。
※プロジェクト名にカタカナが入っていますが英数字以外プロジェクト名に入れないでください、ビルドに失敗して後で修正しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/21bd54fa-0aaf-6322-6f43-0848fafba50b.png)

## Meta XR SDKのインストール
起動したらWindow→Asset Storeとクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/22209859-9583-7e62-412b-095b0a864862.png)

Search onlineをクリックしてWebのAsset Storeに行きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/9e8c4af1-995d-ce5d-5d7e-ca8794b9ad1c.png)

Asset StoreでOculusで検索
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/a89591e7-e12f-ce16-5612-15536399a4e7.png)


検索で出てきた
* Meta XR Core SDK
* Meta XR Interaction SDK（もしかしたらこの手順にはいらないかも）
* Meta XR Interaction SDK OVR Integration
を取得する。

もしくは
* Meta XR All-in-One SDK
でもOKです。

* Oculus Integration (Deprecated)
がありますがこちらはDeprecatedなので不要です。
（元々こちら1個で足りていたのですが、59からSDKごとに分割されたそうです
　実質All-in-one SDK？違いは調べていないです）
 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/f88fc2c1-930c-4072-37ef-5a41848dc4bd.png)

終わったらPackage Managerを起動する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/520d89fb-9e2c-326f-1ef8-8bab8454831d.png)

Package Managerの左上からMy Assetsに変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/5929ac07-a449-9be7-5fd8-d8b069413a7c.png)

先程ダウンロードした3つのSDKをインストールする
（初回だとDownload→Installが必要）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/ba25b1cf-0c1b-b8cf-06b1-56aa1d7d0c79.png)

Core SDKインストール時にRestart Editorと出るのでそれも実行する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/b05c3b6a-bab8-3bdf-4c1b-339ca779fccf.png)


## Project Settings
Edit→Project Settings...を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/b7dc28f7-e611-5c22-5315-cd425f6d1056.png)

Oculusタブを選択（私はデフォルトで出ていました）
Android Settingsを選択（デフォルトはPCになっていたのでこちらは変更が必要です）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/ebb9c71e-64c1-30db-a922-b5c7e0e24f62.png)

XR Plug-in Managementを選択
Plug-in ProvidersからOculusにチェックを付ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/aaa22340-5c6e-ff13-e027-af88a219c752.png)

その配下のOculusのメニューを選択し、Android settingを選択
Quest Pro と　Quest 3のチェックを付ける

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/af422d43-233e-61ea-1938-f49335e253f4.png)


## Build Settings
File→Build Settingsを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/bb56d3ee-8530-3bea-bbf2-2ed25752e6b1.png)


左のPlatformからAndroidを選択、Development Buildにチェックを付けて、Switch Platformを実行する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/1a7a38d6-a82a-f81d-530e-85823a4dd4a6.png)


# オブジェクトの配置
## Ovr Camera Rigの設置
最初から置いてあったMainCameraを削除する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/83bd92fb-c205-dafd-5aa4-553388406038.png)

Oculus→Tools→Building Blocksを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/8f51fd9c-e8c8-a6ea-c22c-163648c236d6.png)

Camera RigをHierarchyタブにドラッグアンドドロップする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/517c678b-5cf5-6ebf-d6ce-22aabc96b336.png)

確認用にGrabbable Itemsもドラッグアンドドロップする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/b43f4bc8-069a-346d-e057-7ed3c589f6ef.png)

HierarchyタブのGrabbable ItemのPositionをY:1　Z:0.5に変更する
（座っているとこれぐらいの位置がつかみやすい）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/679a2ba0-16fd-df32-71c6-98d2a3318a06.png)


# Questの設定

設定が終わっていて行えなかったので参考記事のこの部分を見てください。
手順は変わってなかったです。

https://qiita.com/yoooosu/items/b5f929a480cb1f68b5fc#3-metaquest2oculusquest2%E3%81%AE%E6%BA%96%E5%82%99

# ビルド
File→Build Settingsの右側、Run Device でQuest 3を選択し、Build And Runを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/8b60c0fb-1f3f-30ab-91f7-d62d4c6f1ead.png)


APKの名前は適当でいいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/f68207bc-2167-60f4-c2f5-267b0efad78d.png)


Quest 3をかぶり、しばらく待つ。
初回は結構長いので気長に待ちましょう。
2回目からは早くなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/3ce1785d-da44-302c-3026-639e1ecbb06b.png)


目の前にブロックが浮かんだサンプルが起動します。
（このブロックは手で掴めます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/54d3f304-aa3c-e022-e44e-29e020e97101.png)


# PathThrough設定
部屋が汚いのでここからは画像なしで。（すみません）

## Passthroughを追加する
Oculus→Tools→BuildingBlocksからPassthroughをHierarchyにドラッグアンドドロップする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/d1303563-10ac-b36f-4ac2-606ba8e9f99e.png)


## PassthroughをONにする
HierarchyからCameraRigを選択し、InspectorからOVR Managerのスクリプトの設定をスクロールする。
Quest Featureの部分にPassThrough　Supportがあるので、Supportedに変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/0ec31e0b-948f-62ae-d76a-1768ccd6a764.png)


## Skyboxを削除する
Window→Rendering→Lightingを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/1621d981-3d31-4f2c-5b88-322d1581cdb2.png)

Environmentタブを選択し、Skybox MaterialをNoneに変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/2cc08973-182c-cead-c88e-c523d69c2c94.png)

Viewポートから空と地面が消えるのでその状態でもう一度ビルドする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88547/7e0772e9-b8f2-8a6a-ca3d-b5b793853937.png)

部屋の中にブロックが浮かんでいるはずです。
以上です。



# 参考記事
本当に参考になりました、ありがとうございます。

https://qiita.com/b0bmat0ca/items/bc5ce8e38979d4680402

https://qiita.com/yoooosu/items/b5f929a480cb1f68b5fc