MetaQuestのパススルー機能を使ったAR表示（XRI版）


## 0. 本記事の内容

本記事ではMeta Questで3Dオブジェクト（立方体）をAR表示するまでの手順を紹介します。**XR Interaction Toolkit**を使用したパススルー機能の設定から背景の透明化まで、現実世界に仮想オブジェクトを重畳表示するための基本的な手法を学習できます。

GitHubで公開している[サンプル](https://github.com/TakashiYoshinaga/MetaXR-SDK-Samples)のXRI_Samplesプロジェクト、01-ShowObject-ARシーンでも動作を確認できます。

[![XRI AR Display](https://img.youtube.com/vi/PX7oQ8_7Udg/0.jpg)](https://www.youtube.com/watch?v=PX7oQ8_7Udg)

なお本記事は下記で作成したシーンを編集してAR化します。まずはこちらをお読みください。ただし既に**XR Interaction Toolkit**を使ったVRのシーンをお持ちの場合は下記記事の確認は不要です。

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

## 1. シーンを複製

前回の記事で作成したシーンを編集することも可能ですが、この既存のシーンを破壊せずにAR化を試すため、シーンを複製する方法を紹介します。不要な場合は読み飛ばしてください。

- AR化したいシーンを開く  
  *本記事では前回作成したVRシーンの**ShowObject**
- **File -> Save As...**をクリックして現在のシーンを新しい名前で保存  
  *本記事では**ShowObject-AR**とします
- Hierarchyに表示されるシーン名が**ShowObject-AR**になっていることを確認

## 2. パススルー機能の有効化

**[パススルー設定]**

- Hierarchy内で<b>XR Origin Hands (XR Rig)</b>を見つける
- 子要素**Camera Offset -> Main Camera**の順で開く
- **Main Camera**のInspector下方の**Add Component**をクリック
- **AR Camera Background**をクリック
- Inspectorに**AR Camera Background**と**AR Camera Manager**が追加されていることを確認  
  *AR Camera Managerが追加されていない場合は同様の手順で手作業で追加

## 3. カメラの背景設定

上記の手順でパススルー表示の準備は概ね整いましたが、実はこのままビルドしてもSkyboxしか表示されずAR化されません。最後にカメラの背景描画設定を変更してパススルー映像を表示できるようにします。

**[背景の透明化]**

- **XR Origin Hands (XR Rig) -> Camera Offset -> Main Camera**を開く
- Inspector内で**Camera**を見つけ**Background Type**を**Skybox**から**Solid Color**に変更
- **Background**の項目で色を**RGBA全て0**に変更  
  *特に**A（アルファ値）を0**にして透過させることが重要

| 設定項目 | 設定値 |
|----------|--------|
| **Background Type** | Solid Color |
| **R** | 0 |
| **G** | 0 |
| **B** | 0 |
| **A** | 0 |

## 4. URP Assetの設定

- **Assets**フォルダ直下の**Settings**フォルダを開く
- **Universal Render Pipeline Assets**を選択（本プロジェクトでは**Mobile_RPAsset**）
- **Quality**直下の**HDR**を**OFF**

## 5. OpenXR設定の確認

- **Edit -> Project Settings**をクリック
- **XR Plug-in Management**を開く
- その直下に表示される**OpenXR**をクリック
- **OpenXR Feature Groups**に注目
- **Meta Quest: Camera (Passthrough)**と**Meta Quest: Session**のチェックが**ON**になっていることを確認  
  *細かい設定手順は[環境設定の記事](https://qiita.com/Tks_Yoshinaga/items/26ab2f342be44f7b8661)を確認

## 6. 動作確認

**[実機にインストールする場合]**

- QuestとPCをUSBケーブルで接続
- Unity Editorで**File -> Build Settings**をクリック
- **Build And Run**をクリック
- インストーラ(apk)名を半角英数で設定して保存
- インストーラの生成とインストールが終わると自動的にQuest内でアプリが起動します
- 立方体が現実世界に重畳表示されるはずです。目の前とは異なる方角に表示される場合は右コントローラの**meta (oculus)ボタン**を長押しして方位をリセットしてください
- インストールでエラーが出る場合は設定を見直すか、一度Buildでapkだけ作成して[SideQuest](https://sidequestvr.com/setup-howto)や[MetaQuestDeveloperHub](https://developer.oculus.com/documentation/unity/ts-odh/?locale=ja_JP)からアプリをインストールしてください

**[Meta Quest Linkを使用する場合（Windows）]**

詳細は[公式ページ](https://www.meta.com/ja-jp/help/quest/articles/headsets-and-accessories/oculus-link/set-up-link/)をご覧ください。

- QuestとPCをUSBケーブルで接続
- Quest内でQuest Linkを起動
- Unity Editorの**Play**ボタンをクリック
- 立方体が現実世界に重畳表示されるはずです。目の前とは異なる方角に表示される場合は右コントローラの**meta (oculus)ボタン**を長押しして方位をリセットしてください

## 7. 次のステップ

ここまでの内容でAR表示の基本が実現できました。ただし、現状ではコントローラによるワープ（テレポート）やターン（視点回転）が有効になったままです。これらの機能はVRでは便利ですが、ARでは現実空間との整合性を損なう可能性があります。

より自然なAR体験を実現するため、次はこれらのロコモーション機能を無効化する方法について解説します。

[MetaQuestのロコモーションをオフにする（XRI版）](https://qiita.com/Tks_Yoshinaga/items/71b3c4f369b790ad098b)

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

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