XR Interaction Toolkitのインストールとプロジェクトの設定

## 0. 本記事の内容

本記事ではMeta Quest対応のアプリケーションをUnityで開発するためのプロジェクト設定方法やSDKのインストール手順について紹介します。この記事の手順を完了することで、**XR Interaction Toolkit**を使用したVR/ARアプリケーション開発の基盤が整います。

## 1. Unityプロジェクトの作成

**[新規プロジェクトの作成]**

- Unity Hubを開き**New project**をクリック
- New projectウィンドウ内でUnityのバージョンを選択  
  *本記事では**6000.0.34f**を使用  
  *Unityインストール時にAndroidの開発環境もインストールすること
- テンプレートの中から**Universal 3D**を選択
- Project SettingsでProject nameを設定  
  *本記事では**XRI_Samples**と設定
- **Create project**をクリックしてプロジェクトを作成

![Unity プロジェクト作成画面](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/00.jpg?raw=true)

**[Androidプラットフォームへの切り替え]**

- **File -> Build Profiles**をクリック
- Build Profilesウィンドウで**Android**を選択して**Switch Platform**をクリック

![Build Settings画面](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/01.jpg?raw=true)

- 左の列の**Scene List**をクリック
- Scene ListからScenes/SampleSceneを右クリックで削除
- Build Settingsウィンドウを閉じる

## 2. XR Interaction Toolkitと関連ツールのインストール

本連載で紹介する記事では下記のツールをインストールしていることを前提に話を進めます。

| パッケージ名                 | 概要                          |
| ---------------------- | --------------------------- |
| XR Plugin Management | 各種XR機能の制御                   |
| XR Interaction Toolkit | VR/ARでのオブジェクトやUIの操作を簡単に実装           |
| XR Hands          | ハンドトラッキングのための基本機能           |
| Unity OpenXR Meta            | Meta Quest用のAR拡張機能（パススルー表示に必須） |
| AR Foundation          | AR機能（平面検出、アンカー等）を共通化        |
  
<br>  
  
**[XR Plugin Managementのインストール]**

- メニューバーから**Window -> Package Manager**をクリック  
- **Unity Registry**をクリック  
- **XR Plugin Management**で検索  
- **Install**をクリック  
  *初めてインストールする場合は**Download**をクリックしたのちに**Install**

![XR Plugin Managementインストール](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/02.jpg?raw=true)

**[XR Interaction Toolkitとサンプルのインストール]**

- **XR Interaction Toolkit**で検索  
- **Install**をクリック  
- XR Interaction Toolkit内の**Samples**をクリック  
- **Starter Assets**横の**Import**ボタンをクリック  
- ProjectSettingsが自動で開かれても一旦無視してPackage Managerに戻る  
  *ProjectSettingsが開かれない場合は次の手順に進む  
- **Hands Interaction Demo**横の**Import**をクリック  

![Sampleインストール](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/03.jpg?raw=true)

- ProjectSettingsが自動で開かれたら**Fix All**をクリック
- すべてのエラーが消えない場合は再度**Fix All**をクリック  
  *ProjectSettingsが開かれない場合は次の手順に進む  

![ProjectSettings Fix All](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/04.jpg?raw=true)

**[関連パッケージのインストール]**

- PackageManagerに戻る  
- **XR Hands**で検索  
- インストール済みでない場合は**Install**をクリック  
  *サンプルインストール時に自動的にインストールされるはず  
- **Unity OpenXR Meta**で検索して**Install**をクリック 
- **AR Foundation**で検索  
- インストール済みでない場合は**Install**をクリック  
  *Unity OpenXR Metaインストール時に自動的にインストールされるはず
- Package Managerを閉じる

## 3. プロジェクトの設定

**[XR Plugin Managementの設定]**

- **Edit -> Project Settings**をクリック  
- **XR Plug-in Management**をクリック 
- **Android**タブを開く 
- **OpenXR**のチェックをON  
  *他はOFFのままでOK  
- Project Validationが自動で開かれた場合は**Fix All**をクリック   
  *Error(赤)がなくなれば警告(黄)が残っていてもひとまずOK。必要があれば適宜修正してください。
- **XR Plug-in Management**に戻る 
- **Meta Quest feature group**をONにする（任意：カメラパススルー機能によるARを使う場合など）  

![XR Plug-in Management設定](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/05.jpg?raw=true)

**[OpenXRコントローラープロファイルの設定]**

- XR Plug-in Management直下の**OpenXR**をクリック  
- **Android**タブをクリック
- **Enabled Interaction Profiles**の + ボタンをクリック
- **Oculus Touch Controller Profile**と**Meta Quest Touch Plus Controller Profile**を選択  

| 項目                   | Meta Quest Touch Plus                | Oculus Touch                            |
| -------------------- | ------------------------------------ | --------------------------------------- |
| **用途デバイス**           | Meta Quest 3 の Touch Plus コントローラー    | Meta Quest 1/2 や Rift S の Touch コントローラー |

- **OpenXR Feature Groups**の**All Features**をクリック   
- **Meta Quest Support**をON  
  
  <br>


**[ハンドトラッキングを使う場合（オプション）]**

- XR Plug-in Management直下の**OpenXR**を開く  
- **OpenXR Feature Groups**の**All Features**をクリック
- **Hand Tracking Subsystem**をON  
- **Meta Hand Tracking Aim**をON  

**[Quest Linkを使う場合（オプション・Windowsのみ対応）]**

- Project Settingsを開き、**XR Plug-in Management**をクリック
- **Windows, Mac, Linux**タブをクリック  
- **OpenXR**のチェックをON  
- **Meta Quest feature group**をONにする
- **Project Validation**をクリック
- **Fix All**をクリック
- XR Plug-in Management直下の**OpenXR**を開く
- **Windows, Mac, Linux**タブをクリック
- **Enabled Interaction Profiles**の + ボタンをクリック
- **Oculus Touch Controller Profile**と**Meta Quest Touch Plus Controller Profile**を選択  

ハンドトラッキングをQuest Linkでも使用する場合：
- **OpenXR Feature Groups**の**All Features**をクリック   
- **Hand Tracking Subsystem**をON
- **Meta Hand Tracking Aim**をON 

## 4. URPの設定

**[Universal Render Pipeline Assetの編集]**

- **Assets**フォルダ内の**Settings**を開く
- **Mobile_RPAsset**をクリック
- Inspector内の**Quality**を見つけ、下記のように設定  

| 項目                   | 設定                |
| -------------------- | ------------------------------------ | 
|HDR| OFF|
|Render Scale|1|
|Upscalling Filter|Automatic|
|LOD Cross Fade|OFF|

![URP設定](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/06.jpg?raw=true)
  
<br>   

**[Render Pipelineの設定]**

- メニューバーから**Edit -> Project Settings**をクリック
- 左の列から**Graphics**をクリック
- **Default Render Pipeline**で**Mobile_RPAsset**を登録
- 左の列から**Quality**をクリック
- Quality内の**Levels**の項目から**PC**をクリック
- **Render Pipeline Asset**で**Mobile_RPAsset**を登録

## 5. ビルド設定（オプション）

この操作は独自のアプリ名（パッケージ名）を設定するものです。必須ではありません。

**[アプリ情報の設定]**

- **Edit -> Project Settings**を開く
- **Player**を選択
- **Company Name**と**Product Name**を設定

![Player設定画面](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/07.jpg?raw=true)

**[パッケージ名の設定]**

- 少し下の方に表示されているタブから**Android**を選択
- **Other Settings**を開く
- IdentificationのOverride Default Package Nameのチェックを**OFF**

![Android設定画面](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples/blob/main/Documents/materials-xri/1/08.jpg?raw=true)

## 6. 次のステップ

ここまでの内容でプロジェクトの基本的な設定が完了しました。次はVRで3Dオブジェクトを表示する方法について解説します。

[MetaQuestでオブジェクトを表示(XRI版)](https://qiita.com/Tks_Yoshinaga/items/47d1cc29250879cff214)

## 7. XR Interaction Toolkitに関する記事一覧はこちら

[XR Interaction ToolkitではじめようQuestアプリ開発](https://qiita.com/Tks_Yoshinaga/items/9e691eb679fff982a1c9)