---
title: Unity6とMETA XR SDK(v209)でQuestアプリ開発
tags:  #unity #quest pro #occlus integration #building blocks #ovrsemanticclassification #ovrscenemanager #オクルージョン #scene manager #depth api #meta xr sdk #quest3 #fingerfeaturestateprovider #shaperecognizeractivatestate #transformfeaturestateprovider #transformrecognizeractivestate #jointdeltaprovider #jointvelocityactivestate #jointrotationactivestate #sequenceactivestate #ambisonic #metaxraudiosource #playerlocomotor #ovrplayercontroller #meta haptics studio #meta xr haptics sdk #ovrtrackedkeyboard #hapticclipplayer #hapticclip #meta horizon os ui set #asw #application spacewarp #ovr metrics tool #colocation discovery #コロケーション #unity6 #mx ink #passthrough camera api #qrコードトラッキング #qr code tracking #trackableadded #trackableremoved #mruktrackable #meta vr glasses  
author: [あうぜん](https://image.docswell.com/user/Ovjang)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EZPVP5NJ3.jpg?width=480
description: Unity6とMETA XR SDKを利用する方法です。 内容 　1.環境構築 　2.Building Blockの利用 　3.Building Blockでパススルーを設定する 　4.手とコントローラーをPrefabから組み立てる 　5.Interaction sdkを使う 　6.Interaction SDKを自分で組み立てる 　7.手とコントローラにつかむ設定を入れる 　8.つかまれる側の設定  想定バージョンは下記のとおり Unity	6000.6.9f1 Meta XR SDK	209.0.0 Meta XR Interaction SDK	209.0.0 Open XR Plugin	1.18.0 Unity OpenXR Meta	2.7.0 Meta Quest Link App	208.0.0.84.535
published: November 15, 26
canonical: https://image.docswell.com/s/Ovjang/Z4NP9G-Unity6-MetaXRSDK
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EZPVP5NJ3.jpg)

UNITY6とMETA XR SDKでQUESTアプリ開発
META XR SDK Ｖ209
UPDATE : 2026-11-15


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Y76M5M99EV.jpg)

大久保 聡
Mail
ovjang@gmail.com
Twitter ＠followapp


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G75ZYZNDJ4.jpg)

META XR SDKのその他情報
 9章～45章はこちらのスライドを参照ください。
https://www.docswell.com/s/Ovjang/ZP9V6X-MetaXRSDK66


# Page. 4

![Page Image](https://bcdn.docswell.com/page/9J2RGR8M7R.jpg)

目次
1.
2.
環境構築
SDKパッケージ内容
プロジェクトの設定
Building Blockの利用
ハンドで物をつかむ
コントローラーを使う
11. 遠くの物(Game Object)を選択する
12. Poke(指でさわって)でボタン操作
13. Direct touch UI(手でさわって選ぶUI)の作成
14. Hand Micro Gestures
15. Curved UIの作成
3.
Building Blockでパススルーを設定する
16. Meta Horizon OS UI Setの利用
4.
ハンドとコントローラーをプレハブから組み立てる
17. Controller Handsの使い方
5.
Interaction SDKを使う
18. 手のポーズ(ジェスチャー)を認識させる
6.
Interaction SDKを自分で組み立てる
19. パススルーをオリジナルのシーンに組み込む
7.
ハンドとコントローラにつかむ設定を入れる
20. パススルーを動的に切り替える
8.
つかまれる側の設定
21. パススルーカメラ APIを使う
9.
Hand Poseの作り方
22. シーンモデルの利用
10. 反対側のハンドのポーズの作り方
23. MRUK(MR Utility Kit)を自分で組み立てる
24. Depth APIを試す


# Page. 5

![Page Image](https://bcdn.docswell.com/page/DEYDVD6PEM.jpg)

目次
25. Depth APIを自分のプロジェクトに組み込む
38. Questのパフォーマンス(CPU/GPU)の設定
26. スぺーシャルアンカーによる位置合わせ
39. Application SpaceWarpでFPSを向上させる
27. 共有スペーシャルアンカーのサンプル実行
40. MX Ink(Quest用スタイラスペン)を使う
28. コロケーションディスカバリー(v71～)
41. 実機でのDebug
29. 同じ空間で複数人がコラボレーション
42. Voice SDKで声をテキストに変える
30. ハンドとコントローラーのマルチモーダル(同時利用)
43. ガーディアンのバウンダリー(境界)表示を消す
31. XR Audioを試す
44. やってはいけないMeta Quest
32. コントローラーでの移動
45. 関連情報の紹介
33. コントローラーでテレポート移動
46. QRコードトラッキング(v78～)
34. 音に合わせてコントローラーを振動させる
35. 現実のキーボードを仮想空間に表示させる
36. ワイドモーションモード(WMM)を利用する
37. OVR Metrics Toolでパフォーマンス測定


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJN6M6ZMJ8.jpg)

こんなときは

ハンドトラッキングやコントローラーで物をつかみたい。
1-8章

現実空間の情報を利用したい。
20-24章

つかまれた、離されたタイミングを知りたい。
8章


物をつかんだ時にそれっぽい手の形でつかみたい。
9-10章
現実の物が手前にある場合に、パススルー映像の手前に表示
したい。
22-23章


ボタンを指で押したい。
12章
手とコントローラを同時に使いたい。
28章


UIを手やコントローラーで操作したい。
13-15章
3D空間音響を使いたい。
29章


コントローラーを使うが見た目は手にしたい。
仮想空間内を移動したい。
30-31章

16章

効果音にあわせてコントローラーを振動させたい。
32章

グーチョキパーなどのジェスチャーを認識させたい。
17章

現実のキーボードを仮想空間に持ち込みたい。
33章

パススルーで現実とMR(仮想を融合)を実現したい。
18-19章

ピンク色になるのをなんとかしたい。
8章のTips

VRとMRを切り替えたい。
19章


# Page. 7

![Page Image](https://bcdn.docswell.com/page/YE9LNLZW73.jpg)

1.環境構築


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GE8XKX1RJD.jpg)

動作環境
 環境設定については、PluginとProject Settingsの一部の手順を記載していますが、細かな部分は解
説されているHomeページがたくさんありますので省略します。
 プロジェクトはURPで作成しています。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LEL8Z8Q27R.jpg)

動作環境
 検証済みのバージョンの組み合わせは下記の通りです。

Unity
Meta XR SDK
Meta XR Interaction SDK
Open XR Plugin
Unity OpenXR Meta
Meta Quest Link App
6000.6.9f1
209.0.0
209.0.0
1.18.0
2.7.0
208.0.0.84.535


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JM6V619EW.jpg)

V84→V209の変更点
バージョン
Core SDK
Interaction SDK
v201.0 (2026.04)
OSバージョニング標準化
ハンドGlow対応・Teleport改修
v203.0 (2026.06)
Unity 6 (6000.0.66f2) 必須化
UI Theme刷新・ActiveState非推奨
v205.0 (2026.07)
Hands Optimizer・XR Operator
AI向けAPI刷新・新旧Input両対応
v207.0 (2026.09)
Unity 6.3 LTS対応・安定性向上
視線操作(Gaze)・OSPanel追加
v209.0 (2026.11)
Forward Head Pose・FOV改善
ピンチ可視化UI・Unity 6.4+対応


# Page. 11

![Page Image](https://bcdn.docswell.com/page/PJRP2PL9E9.jpg)

SDKの提供方法の変更
 v59以降、全部入りのOculus Integrationは廃止され、個別のパッケージとして提供されるようにな
ります。また全部入りは、Meta XR All-in-One SDKヘルパーパッケージとして提供されます。
 Meta XR SDKは、Unity Asset Store https://assetstore.unity.com/publishers/25353 からダ
ウンロード可能です。


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PEX3D3W3JX.jpg)

パッケージの内容①
 coreを基本に必要なものを足すスタイルです。
com.meta.xr.sdk.core
カメラ リグ、タッチ コントローラー、ハンド トラッキング、コンポジション レイヤー、パススルー、アンカー、
シーン管理など、Meta XR ヘッドセットが提供する多くの重要な機能が含まれています。
com.meta.xr.sdk.interaction
コントローラー、⼿、およびコントローラーを⼿としてレイ、ポーク、ロコモーション、グラブなどのインタラク
ションを追加します。各インタラクションはモジュール式に設計されており、単純な VR アプリケーションと複雑
な VR アプリケーションの両⽅で動作します。インタラクション SDK には、⼿固有のインタラクション、ポーズ
とジェスチャの検出、ビジュアルのデバッグなど、⼿専⽤の機能もあります。
com.meta.xr.sdk.interaction.ovr.samples
プレーヤー リグの OVR バリアントを使⽤した、インタラクション SDK のサンプル シーン、プレハブ、アート ア
セットが含まれています。
com.meta.xr.mrutilitykit
シーンクエリー、グラフィカルヘルパー、シーンデバッガーなどのユーティリティとツール群が含まれます。
com.meta.xr.sdk.audio
頭部伝達関数 (HRTF) ベースのオブジェクトやアンビソニック空間化、室内⾳響シミュレーションなどの空間オー
ディオ機能を提供します。これは、Oculus Spatializer プラグインの代替品です。
com.meta.xr.sdk.voice
Voice SDKを使⽤してアプリに⾳声インタラクションを導⼊し、⼈々が周囲の環境や他の⼈々と対話するためのよ
り⾃然かつ柔軟な⽅法でエクスペリエンスを強化します。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/3EKYXYVNJD.jpg)

パッケージの内容②
 ソーシャルVRアプリ用のplatformが提供されます。
com.meta.xr.simulator
Meta Quest ヘッドセットと機能のシミュレーションを可能にする、開発者向けに構築された軽量の OpenXR ラ
ンタイムです。ヘッドセットを頻繁に着脱する必要がなく、アプリのテストとデバッグが可能になるため、⽇々の開
発が容易になり、テスト環境のセットアップを簡素化することで⾃動化のスケールアップに役⽴ちます。
com.meta.xr.sdk.platform
プラットフォーム SDKを使⽤してソーシャル VR アプリケーションを作成します。SDK の個々のコンポーネント
を使⽤して、マッチメイキング、DLC、アプリ内購⼊、クラウド ストレージ、ボイス チャット、カスタム アイテ
ム、実績などをエクスペリエンスに追加します。
com.meta.xr.sdk.interaction.ovr
このパッケージにより、Interaction SDK が OVRPlugin と連携できるようになります。OVRPlugin または
Utilities パッケージを使⽤している場合は、このパッケージを使⽤します。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/L73959MZ75.jpg)

提供されているASSET①
 パッケージ構成とほぼ内容は重複しますが、用意されているAssetのくくりは下記のようになっていま
す。Core SDKとInteraction SDKが基本となるAssetです。
Meta XR Core SDK
VRのコア機能、コンポーネント、スクリプト、およびプラグインをまとめたもので、UnityにおけるMeta Questアプリ開発プロセスを
容易にするとともに、その質を向上させるためのものです。Unityとのシームレスな統合が可能になるほか、さまざまなレンダリング機
能、ソーシャルやコミュニティの構築、サンプルフレームワーク、オーディオ、およびアバターの開発サポートを活用するための一連の
SDKがバンドルされています。既存の Oculus Integrations パッケージ内の VR フォルダーに相当します。
Meta XR Interaction SDK
Essentials
(Meta XR Interaction SDK)
コントローラーとハンドのインタラクションと体の姿勢検出をエクスペリエンスに追加するコンポーネントのライブラリです。このパッ
ケージには、コントローラーとハンドのインタラクションと体の姿勢検出に使用される Interaction SDK に固有のコンポーネントが含
まれています。このパッケージは、既存の Oculus Integrations パッケージ内の Interaction フォルダーに相当します。
Meta XR Interaction SDK
(Meta XR Interaction SDK
OVR Integration)
Interaction SDK が OVRPlugin と連携できるようになります。OVRPlugin または Utilities パッケージを使用している場合は、この
パッケージを使用します。コントローラーとハンドのインタラクションと体の姿勢検出をエクスペリエンスに追加するコンポーネントの
ライブラリです。このパッケージには、コントローラーとハンドのインタラクションと体の姿勢検出に使用される Interaction SDK に
固有のコンポーネントが含まれています。このパッケージは、既存の Oculus Integrations パッケージ内の Interaction フォルダーに
相当します。
Meta MR Utility Kit
空間認識アプリを構築するときに一般的な操作を実行するための、Scene API 上に豊富なユーティリティ/ツールのセットを提供します。
これにより、物理世界に対して迅速かつ簡単にプログラミングできるようになります。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/87DGDG647G.jpg)

提供されているASSET②
 空間オーディオ、音声でのコマンド入力、STT(Speech to text)などの機能が含まれるAssetです。
Meta XR Audio SDK
Meta XR Audio SDK には、HRTF を備えた空間オーディオ レンダラー、アンビソニック オーディオ再生、イマーシブ環境を作成
するための室内音響など、イマーシブ アプリケーション向けの包括的な空間オーディオ機能が含まれています。
このパッケージは、既存の Oculus Integrations パッケージ内の Audio フォルダーに相当します。
Meta Voice SDK - Immersive
Voice Commands
アプリ エクスペリエンスに音声対話を導入できます。Voice SDK を使用すると、人々がアプリを操作するためのより自然かつ柔軟な
方法で AR/VR エクスペリエンスを強化できます。たとえば、音声コマンドによりコントローラーのアクションを 1 つのフレーズで
ショートカットしたり、インタラクティブな会話によりアプリをより魅力的にしたりできます。
Meta Voice SDK - Telemetry
Voice SDK の依存関係であり、VoiceSDK とその関連パッケージの動作に関するインサイトを提供し、すべてのユーザーのエクスペ
リエンスを向上させることができます。Voice SDK を使用する場合、テレメトリ(製品の品質向上データ)をオプトイン(利用者の許諾)
またはオプトアウト(利用者が拒否)できます。
Meta Voice SDK - Composer
インタラクティブな会話を設計するための Wit.ai(自然言語処理を支援する無償のサービス) の新機能である Composer のサポートを
提供します。Composer は、インテントを理解し、クライアント側のアクションをトリガーし、会話の流れに基づいて静的または動
的応答を提供できるグラフベースのダイアログ デザイナーです。
Meta Voice SDK - Dictation
アプリで音声をリアルタイムで効率的にテキストに書き写すことができます。ディクテーション機能は、音声コマンドに使用するよう
に設計されているのではなく、テキスト入力モダリティとして使用するように設計されています。正規表現を使用して解析し、コマン
ドの処理に使用することもできますが、テキストは人間が読める形式でフォーマットされます。
Meta XR Haptics SDK
触覚クリップを Quest コントローラーで再生。ハプティック クリップを再生すると、クリップに保存されている振動パターンに従っ
てコントローラーが振動します。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VJP3X3YVE8.jpg)

提供されているASSET③
 開発時に利用できるシミュレーター、XRマルチプレイ用のAsset類などです。
Meta XR Simulator
Meta Quest ヘッドセットと機能のシミュレーションを可能にする、開発者向けに構築された軽量 XR ランタイムです。ヘッドセッ
トを頻繁に着脱する必要がなく、アプリのテストとデバッグが可能になるため、日常の開発が容易になり、テスト環境のセットアップ
を簡素化することで自動化のスケールアップに役立ちます。
Meta XR Simulator Samples
Meta XR Simulatorの使用を開始するのに役立ついくつかのサンプルアセットが含まれています。
Meta XR Simulator –Synthetic
Environment Builder
Synthetic Environment Builderを使用すると、Meta XR SimulatorでのMRシミュレーションに自分の環境を使用できます。
Meta XR Platform SDK
ソーシャル VR アプリケーションを作成します。SDK の個々のコンポーネントを使用して、マッチメイキング、DLC、アプリ内購
入、クラウド ストレージ、ボイス チャット、カスタム アイテム、実績などをエクスペリエンスに追加します。
Meta XR SDK Shared Assets
Meta integration SDKsのパッケージ全体で使用される共有アセットを提供します。他の Meta サンプルおよびパッケージで使用さ
れる共有アセットを提供します。このパッケージは、スタンドアロン パッケージとしてではなく、他の Meta SDK への依存関係と
して取得する必要があります。
Meta XR Utilities SDK
Meta XR Utilities SDKは廃止され、Meta XR Core SDKに変更されました。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/2EV4L4GRJQ.jpg)

ASSETの購入(無料)
 Unity Asset Store https://assetstore.unity.com/publishers/25353 から、購入(Add to My
Assets)します。


# Page. 18

![Page Image](https://bcdn.docswell.com/page/57G1X186EL.jpg)

プロジェクトの作成
 本資料では、URPでプロジェクトを作成します。
 テンプレートからUniversal ３Dを選択し、プロジェクトを作成を選択します。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4EQD8D92JP.jpg)

プロファイルの作成
 Meta Quest用にAndroid Platformに切り替えを行います。
Build Profilesをメニューから開き、AndroidをPlatformのプロファイルを作成します。


# Page. 20

![Page Image](https://bcdn.docswell.com/page/KJ4Z2ZXP71.jpg)

プロジェクトにASSETを追加
 Package Managerを開き、My Assetsから購入したMeta XRを検索します。
。


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LE1RMRNXEG.jpg)

CORE SDKのインストール
 Meta XR Core SDKを選択し、Installします。


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GEW1314K72.jpg)

TIPS：サンプルプログラム
 Meta XR Core SDKのサンプルプログラムはこちらからインポートできます。


# Page. 23

![Page Image](https://bcdn.docswell.com/page/47ZPVP2NE3.jpg)

INTERACTION SDK のインストール
 Meta XR Interaction SDKをインストールします。


# Page. 24

![Page Image](https://bcdn.docswell.com/page/YJ6M5MV97V.jpg)

TIPS：サンプルプログラム
 Meta XR Interaction SDKのサンプルプログラムはこちらからインポートできます。


# Page. 25

![Page Image](https://bcdn.docswell.com/page/GJ5ZYZDDE4.jpg)

TIPS : UISET EXAMPLES
 V69から、UISetExamplesというサンプルが追加されており、UI Setの使用方法を学ぶことができま
す。


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LE395VQQE5.jpg)

XR PLUGINのインストール
 Unity Registryから Unity OpenXR Metaをインストール


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8EDGD89WEG.jpg)

XR PLUG-IN MANAGEMENTのインストール
 Project Settingsを開き、XR Plug-in Managementをインストールします。
Unity OpenXR Metaをインストールした際に自動でインストールされます。


# Page. 28

![Page Image](https://bcdn.docswell.com/page/V7P3X8ZXJ8.jpg)

OPEN XR PLUGINの場合のプロジェクト設定①
 Project Settingsから、XR Plug-in Managementの設定を行います。
PCの設定
Meta Quest(Android)の設定


# Page. 29

![Page Image](https://bcdn.docswell.com/page/2JV4LNW37Q.jpg)

OPEN XR PLUGINの場合のプロジェクト設定②
 OpenXRのMeta XR設定


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5EG1XKDYJL.jpg)

PROJECT SETUP TOOLでエラーの修復(1/2)
 Meta XR SDKのパネルからProject setup toolを選択、もしくはProject SettingsのMeta XRを開
きます。Outstanding IssuesとRecommendeed ItemsをFix、Applyします。


# Page. 31

![Page Image](https://bcdn.docswell.com/page/4JQD8N167P.jpg)

PROJECT SETUP TOOLでエラーの修復(2/2)
 PCとAndoridのタブを確認し、 Fix、Applyの対応を行います。意図的に、推奨外の指定を行う場合
は、意図的にApplyを行わず自分で設定を行います。


# Page. 32

![Page Image](https://bcdn.docswell.com/page/K74Z2GRME1.jpg)

2.BUILDING BLOCKSの利用


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJ1RMDQYJG.jpg)

BUILDING BLOCKSで基本のシーン作成
 Meta XR SDKのパネルからBuilding Blocksを開きます。


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GJW13YM1E2.jpg)

CAMERA RIGを配置する
 新しいシーンを作成し、Main Cameraを削除します。
 頭の部分に相当するCamera RigをドラッグアンドドロップでHierarchyに配置します。


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4EZPVXQXJ3.jpg)

原点を床位置に設定
 [BuildingBlock] Camera Rigを選択し、OVR ManagerのOrigin TypeをFloor Level(デフォルト)に
設定します。


# Page. 36

![Page Image](https://bcdn.docswell.com/page/Y76M546PEV.jpg)

HAND TRACKINGを配置する
 手に相当するHand TrackingをドラッグアンドドロップでHierarchyに配置します。


# Page. 37

![Page Image](https://bcdn.docswell.com/page/G75ZYQ6PJ4.jpg)

VIRTUAL HANDSを配置する
 Interaction Rig (Virtual Hands)をドラッグアンドドロップでHierarchyに配置します。
Meta XR Core SDK v.77以降
Meta XR Core SDK v.74以前


# Page. 38

![Page Image](https://bcdn.docswell.com/page/9J2RGPMZ7R.jpg)

ハンドでつかめるアイテムを配置する
 ハンドでつかめるアイテム、Grab InteractionをドラッグアンドドロップでHierarchyに配置します。
 シーン上でCubeを、つかみやすい位置に移動させます。


# Page. 39

![Page Image](https://bcdn.docswell.com/page/DEYDV5XNEM.jpg)

QUEST LINKでPCに接続し実行
 USBケーブル(Air Link)でパソコンにQuestを
接続します。
 UnityのPlayボタンを押下し実行します。ハン
ドトラッキングで手が表示され、Cubeオブ
ジェクトが手でつかむことが確認できます。
※ 実際は、Hand TrackingとInteraction Rigを入れなくても、Grab
Interactionをいれるだけで、コントローラーもハンドトラッキングも表示され、
掴むことができるようになります。


# Page. 40

![Page Image](https://bcdn.docswell.com/page/VJN6MN1VJ8.jpg)

コントローラーを使う場合
 コントローラに相当するController TrackingをドラッグアンドドロップでHierarchyに配置します。


# Page. 41

![Page Image](https://bcdn.docswell.com/page/YE9LNR5V73.jpg)

QUEST LINKでPCに接続し実行
 USBケーブル(Air Link)でパソコンにQuestを
接続します。
 UnityのPlayボタンを押下し実行します。コン
トローラを使うとコントローラーが表示され、
コントローラーを置くとハンドトラッキングで
手が表示されます。それぞれでCubeオブジェ
クトが手でつかむことが確認できます。
※ 実際は、Hand TrackingとInteraction Rigを入れなくても、Grab
Interactionをいれるだけで、コントローラーもハンドトラッキングも表示され、
掴むことができるようになります。


# Page. 42

![Page Image](https://bcdn.docswell.com/page/GE8XKWY4JD.jpg)

3.BUILDING BLOCKでパススルーを設定する
BUILDING BLOCKSを使う場合


# Page. 43

![Page Image](https://bcdn.docswell.com/page/LEL8ZN4V7R.jpg)

CAMERA RIGを配置する
 新しいシーンを作成し、Main Cameraを削除します。
 頭の部分に相当するCamera RigをドラッグアンドドロップでHierarchyに配置します。


# Page. 44

![Page Image](https://bcdn.docswell.com/page/4JM6VXKNEW.jpg)

パススルーを使う
 PassthroughをドラッグアンドドロップでHierarchyに配置します。


# Page. 45

![Page Image](https://bcdn.docswell.com/page/PJRP2NX4E9.jpg)

パススルーをQUEST LINK経由で利用する場合
 パソコンのMeta Quest Link(旧Oculusアプリ)の設定でQuest Link経由でのパススルーにチェックを
いれる必要があります。


# Page. 46

![Page Image](https://bcdn.docswell.com/page/PEX3DN6ZJX.jpg)

実行して確認する
 ビルドする場合は、QuestをUSBケーブルで接続しBuild And Runで実機で動作確認します。
 Quest Linkを利用する場合は、USBでPCに接続(もしくはAir Link)しPlayを押下します。


# Page. 47

![Page Image](https://bcdn.docswell.com/page/3EKYXN1VJD.jpg)

4.ハンドとコントローラーをプレハブから組み立てる


# Page. 48

![Page Image](https://bcdn.docswell.com/page/L7395VNQ75.jpg)

CORE SDKのインストール
 インストールがまだの場合、Meta XR Core SDKを選択しInstallします。


# Page. 49

![Page Image](https://bcdn.docswell.com/page/87DGD8WW7G.jpg)

ヘッドトラッキングの設定
 新規にシーンを作成します。
 PackagesのMeta XR Core SDKのPrefabsフォルダにある。OVRCameraRigを
Hierarchy(Scene)上にドラッグアンドドロップします。これで基本の頭のトラッキングができます。
 不要になったMain Cameraを削除します。


# Page. 50

![Page Image](https://bcdn.docswell.com/page/VJP3X89XE8.jpg)

ヘッドトラッキングの設定
 OVRCameraRigのOrigin TypeをFloor Levelにしておくと良いです。


# Page. 51

![Page Image](https://bcdn.docswell.com/page/2EV4LNM3JQ.jpg)

TRACKING ORIGIN TYPEについて
Tracking Origin Type
説明
Eye Level
アプリ起動時のHMD(頭)の位置を原点(0,0,0)に設定します。目線を中心にコンテンツを構築する際に使
います。
Floor Level
アプリ起動時のHMD(頭)位置のX,Z座標の真下の床を原点(0,0,0)に設定します。
床位置は、ガーディアン設定時の床位置となります。
カメラ位置が床からの頭の位置、すなわち目線の高さになるので自然です。
Stage
Floor Levelと同様であるが、シーン上のOVRCameraRigの向きが正面(Z+方向)になり、リセンターが
無効となります。
コンテンツの見せたい方向に、初期の視線を向けることができます。また、ヘッドセットをはずしてかぶ
り直したときにリセンターがかかりますが、リセンターをかけたくない場合にもこの設定が有効になりま
す。
Stationary(V77～)
現実世界の固定位置との相対的な位置と向きをトラッキングします。その
ID(OVRPlugin.GetStationaryReferenceSpaceIdで取得)が同じである限り、複数のアプリセッション
をまたいでも同じ固定位置に留まります。アプリはセッションをまたいでIDを記憶しチェックすることが
でき、IDが同じであれば、トラッキング原点に基づいて配置されたコンテンツをそのまま使用できます。
IDが変更された場合、コンテンツの位置や向きが現実世界では任意のものとなる可能性があるため、アプ
リはコンテンツをもう一度配置する必要があります。OpenXRプラグインではまだ完全にサポートされて
いません。


# Page. 52

![Page Image](https://bcdn.docswell.com/page/57G1XKGYEL.jpg)

HMDを同じ高さに設置し、起動した際の
Unity上でのカメラ位置の違い。
カメラ起動時に横を向いた場合のUnity上でのカメラ
向きの違い。
シーン上のOVR Camera Rigの向き
Eye Level
横を向いて
アプリを起動
Floor Level
Floor Levelでは、Unity上の原点から
目線位置にカメラが移動していること
がわかります。
Stage
Floor Level
Stageではアプリ起動時の向きに関係なく、シーン上の
OVR Camera Rigの向きが初期の方向になります。


# Page. 53

![Page Image](https://bcdn.docswell.com/page/4EQD8NX6JP.jpg)

手とコントローラーのどれを使うか
 OVRManagerのHand Tracking Supportの設定で、手とコントローラーのどれを使うかを設定でき
ます。


# Page. 54

![Page Image](https://bcdn.docswell.com/page/KJ4Z2G6M71.jpg)

コントローラートラッキングの設定①
 PackagesのMeta XR Core SDKのPrefabsフォルダにある。OVRControllerPrefabを
Hierarchy(Scene)上のLeftControllerAnchor(RightControllerAnchor)の下に、ドラッグアンドド
ロップします。


# Page. 55

![Page Image](https://bcdn.docswell.com/page/LE1RMDVYEG.jpg)

コントローラートラッキングの設定②
 LeftControllerAnchor(RightControllerAnchor)の下のOVRControllerPrefabを選択し、
InspectorでControllerをLtouch(RTouch)に設定します。これで基本のコントローラーのトラッキン
グができます。


# Page. 56

![Page Image](https://bcdn.docswell.com/page/GEW13YL172.jpg)

ハンドトラッキングの設定①
 PackagesのMeta XR Core SDKのPrefabsフォルダにある。OVRHandPrefabを
Hierarchy(Scene)上のLeftHandAnchor(RightHandAnchor)の下に、ドラッグアンドドロップし
ます。


# Page. 57

![Page Image](https://bcdn.docswell.com/page/47ZPVXMXE3.jpg)

ハンドトラッキングの設定②
 RightHandAnchorの下のOVRHandPrefabを選択し、InspectorでHand Typeを右手に設定します。
(Skelton Type/ Mesh Typeは、自動で変更されます。) これで基本の手のトラッキングができます。
OpenXRハンドスケルトンの場合
OVRハンドスケルトンの場合


# Page. 58

![Page Image](https://bcdn.docswell.com/page/YJ6M54NP7V.jpg)

動作をEDITORで確認
 Meta QuestをUSBケーブルで接続(AirLinkでも可)し、Quest Link起動。
 Unity Editorで実行します。コントローラーをもって認識するか？
するか確認します。
コントローラーを置いて手を認識


# Page. 59

![Page Image](https://bcdn.docswell.com/page/GJ5ZYQ5PE4.jpg)

5.INTERACTION SDKを使う


# Page. 60

![Page Image](https://bcdn.docswell.com/page/9E2RGPNZJR.jpg)

INTERACTION SDKとは
 手やコントローラーでより細かな操作を行うことができます。

ものをつかむ

遠くのものをつかむ

ボタンを押す

ものをつかんだ時の手の形をそれっぽく見せる

手のジャスチャーを認識させる

シーン内を移動する
etc.


# Page. 61

![Page Image](https://bcdn.docswell.com/page/D7YDV5PN7M.jpg)

INTERACTION SDKの使い方
1. Building Blocksを使う。
2. OVRCameraRigInteractionプレハブをベースに組み立てる。※v74以降で廃止になりました。
次ページ以降に軽く、中身の解説を行っています。
3. その他の用意されているプレハブとコンポーネントをベースに組み立てる。
Interacgtion SDKを自分で組み立てる以降の章で解説を行っています。こちらを理解した上で
Building Blocksや、 OVRCameraRigInteractionを使うというのが基本になるかと思います。


# Page. 62

![Page Image](https://bcdn.docswell.com/page/VEN6MN5VE8.jpg)

INTERACTION SDK のインストール
 インストールがまだの場合、 Meta XR Interaction SDKをインストールします。


# Page. 63

![Page Image](https://bcdn.docswell.com/page/Y79LNRYVJ3.jpg)

OVR CAMERA RIG INTERACTIONの追加
 新しいシーンを作成します。
 Packages/Meta XR Interaction SDK/Runtime/Prefabsより、OVRCameraRigInteractionを追
加します。
 不要となるMain Cameraを削除します。


# Page. 64

![Page Image](https://bcdn.docswell.com/page/G78XKW64ED.jpg)

OVR CAMERA RIG INTERACTIONの確認
 OVRCamaraRigがあり、またInteraction SDKの機能が網羅的にセットされた構成となっています。
 手とコントローラーの中身を見ていくと、つかんだり移動したりする機能が確認できます。
Poke
Ray
Grab
Locomotion
Distance Grab
: 直接さわって操作
: Rayを飛ばして操作
: 直接つかむ
: 移動用
: 遠くのものをつかむ


# Page. 65

![Page Image](https://bcdn.docswell.com/page/L7L8ZN9VJR.jpg)

CONTROLLER INTERACTORSの設定の確認
 ControllerInteractorsのInteractor Groupを確認します。Groupに配下にあるInteractorがセットさ
せれているのが確認できます。使うInteractorを配下にセットし、その参照をGroupにセットするこ
とでその機能が利用できるようになる仕組みです。


# Page. 66

![Page Image](https://bcdn.docswell.com/page/4EM6VXZN7W.jpg)

QUEST LINKでPCに接続し実行
 USBケーブル(Air Link)でパソコンにQuestを接続します。
 UnityのPlayボタンを押下し実行します。ハンドトラッキングで手が表示され、コントローラーを持つ
とコントローラーが表示されます。移動に使うロコモーションのInteractorも含まれるため、移動や回
転の操作も可能です。(移動できる領域が未設定なので移動はできません。)
 このような感じで全部入りの手とコントローラーの設定済みのプレハブを簡単に利用できます。


# Page. 67

![Page Image](https://bcdn.docswell.com/page/PERP2N6479.jpg)

必要な機能(INTERACTOR)の選択方法
 コントローラーでつかみたい場合だとGrabInteractorだけを残し、他のInteractorを削除します。
 GroupのElementから、削除したInteractorの参照を削除します。
 Interactorの使い方は、次ページ以降個別に説明していますので、そちらを参考にしてください。


# Page. 68

![Page Image](https://bcdn.docswell.com/page/P7X3DNMZEX.jpg)

6.INTERACTION
SDKを自分で組み立てる


# Page. 69

![Page Image](https://bcdn.docswell.com/page/37KYXNGVED.jpg)

OVR INTERACTIONを追加
 OVR Interactionを自分で組み立てる場合、前セクションの「ハンドとコントローラーをプレハブから
組み立てる」の状態から作業を継続します。
 Packages/Meta XR Interaction SDK/Runtime/Prefabsより、OVRInteraction追加します。


# Page. 70

![Page Image](https://bcdn.docswell.com/page/LJ395V5QJ5.jpg)

OVR INTERACTIONの設定
 OVRInteractionのCameraRigにOVRCameraRigの参照を設定します。
 OVRRigRefは自動でセットされます。


# Page. 71

![Page Image](https://bcdn.docswell.com/page/8JDGD8DWJG.jpg)

ハンドとコントローラーの追加
 OVRInteractionの下に、PackagesよりOVRControllers、OVRHandsプレハブを追加します。


# Page. 72

![Page Image](https://bcdn.docswell.com/page/VEP3X8XX78.jpg)

ハンドの表示をINTERACTION SDK側にまかせる
 Interaction側で手の表示を行う場合は、両方の手のOVRHnadPrefabの手の表示部分を削除します。
両手に
実施
削除


# Page. 73

![Page Image](https://bcdn.docswell.com/page/27V4LNL3EQ.jpg)

実行して確認する
 ビルドする場合は、QuestをUSBケーブルで接続しBuild And Runで実機で動作確認します。
 Quest Linkを利用する場合は、USBでPCに接続(もしくはAir Link)しPlayを押下します。
 コントローラーを使うと、コントローラーが表示されます。コントローラーを置いて、手をかざすとハ
ンドトラッキングに切り替わり手が表示されます。


# Page. 74

![Page Image](https://bcdn.docswell.com/page/5JG1XKXY7L.jpg)

補足：手の表示をＣＯＲＥ SDK側にまかせる場合
 Core SDKとInteraction SDK側両方で手が表示されているため、Interaction SDKの表示を消す場
合はHandVisualRight/Leftを非Activeにします。この場合「ハンドの表示をInteraction SDK側に
まかせる」の作業は不要です。


# Page. 75

![Page Image](https://bcdn.docswell.com/page/47QD8N86EP.jpg)

7.ハンドとコントローラにつかむ設定を入れる


# Page. 76

![Page Image](https://bcdn.docswell.com/page/KE4Z2G2MJ1.jpg)

ものをつかむ
 つかむ側とつかまれる側に、必要なコンポーネントを追加して実現します。
つかまれる側
つかむ側
何でどのようにつかむか
ハンド、コントローラー
×
Grab、Ray、Poke…
＋
Interactor
つかむ
＋
Interactable
Grabbable
Transformer
何でどのようにつかまれるて、どの
ように動かすか
ハンド、コントローラー
×
Grab、Ray、Poke…
×
平面上、軸、球


# Page. 77

![Page Image](https://bcdn.docswell.com/page/L71RMDMY7G.jpg)

HANDS / CONTROLLER / CONTROLLER HANDS
 3種のプレハブと、つかむ側・つかまれる側のコンポーネントを組み合わせ”つかみ”を実装します。
プレハブ名
OVRHands
OVRControllers
OVRControllerDrivenH
ands
つかむ側のコンポーネント
つかまれれる側
のコンポーネント
HandGrabInteractor
HandGrabInteractable
HandPokeInteractor
PokeInteractable
HandRayInteractor
RayInteractable
DistanceHandGrabInteractor
HandGrabInteractable
ControlleGrabInteractor
GrabInteractable
ControllerPokeInteractor
PokeInteractable
ControllerRayInteractor
RayInteractable
ControllerDistanceGrabInteractor
GrabInteractable
HandGrabInteractor
HandGrabInteractable
HandPokeInteractor
PokeInteractable
HandRayInteractor
RayInteractable
DistanceHandGrabInteractor
HandGrabInteractable
入力
（手・コントローラー）
見え方


# Page. 78

![Page Image](https://bcdn.docswell.com/page/G7W13Y31J2.jpg)

コントローラでつかむ①
 ControllerGrabInteractorを検索し、ControllerInteractorsの配下に追加します。


# Page. 79

![Page Image](https://bcdn.docswell.com/page/4JZPVXVX73.jpg)

コントローラでつかむ②
 両方の手のCotrollerInteractorsに、追加したInteractorの参照を設定します。
両手に
実施


# Page. 80

![Page Image](https://bcdn.docswell.com/page/YE6M545PJV.jpg)

ハンドでつかむ①
 HandGrabInteractorを検索し、HandInteractorsの配下に追加します。


# Page. 81

![Page Image](https://bcdn.docswell.com/page/GE5ZYQYP74.jpg)

ハンドでつかむ②
 両方の手のHandInteractorsLeft(Right)に、追加したInteractorの参照を設定します。
両手に
実施


# Page. 82

![Page Image](https://bcdn.docswell.com/page/972RGPGZER.jpg)

8.つかまれる側の設定


# Page. 83

![Page Image](https://bcdn.docswell.com/page/DJYDV5VNJM.jpg)

CUBEをつかめるように①
 Cubeを作成し、RigidBodyを追加します。つかみやすい位置においてください。CubeにはCollider
がついていますが、独自のメッシュなどの場合は自分でColliderを追加します。
 落ちないようにUse Gravity=True、Is Kinematic=Trueに設定します。


# Page. 84

![Page Image](https://bcdn.docswell.com/page/V7N6MNMV78.jpg)

CUBEをつかめるように②
 Cubeに、InspectorのAdd Componentから、 GrabFreeTransformerとGrabbableコンポーネン
トを追加します。
 GrabbableコンポーネントにCubeにさきほどつけたGrabFreeTransformerを設定します。


# Page. 85

![Page Image](https://bcdn.docswell.com/page/YJ9LNRNVE3.jpg)

CUBEをコントローラーでつかめるようにする
 Cubeに、Grab Interactableコンポーネントを
追加します。
 Grab Interactableコンポーネントにつかみ位置
とRigidbodyが自動で設定されます。(設定され
ていない場合は手動で設定します。)


# Page. 86

![Page Image](https://bcdn.docswell.com/page/GJ8XKWK47D.jpg)

CUBEをハンドでつかめるようにする
 Cubeに、Hand Grab Interactableコンポーネ
ントを追加します。
 Hand Grab Interactableコンポーネントにつか
み位置とRigidbodyが自動で設定されます。(設
定されていない場合は手動で設定します。)


# Page. 87

![Page Image](https://bcdn.docswell.com/page/LJL8ZNZVER.jpg)

 ハンドでもコントローラでも、コントローラーハンド(コントローラー使用で表示は手)でもつかめるよ
うにするならば、Interactableを複数つければ良いです。


# Page. 88

![Page Image](https://bcdn.docswell.com/page/47M6VXVNJW.jpg)

実行して確認する
 ビルドする場合は、QuestをUSBケーブルで接続しBuild And Runで実機で動作確認します。
 Quest Linkを利用する場合は、USBでPCに接続(もしくはAir Link)しPlayを押下します。
 手もしくはコントローラーでCubeがつかめるようになっています。


# Page. 89

![Page Image](https://bcdn.docswell.com/page/P7RP2N24J9.jpg)

V65の変更点
 One Grab Free TransformerとTwo Grab Free Transformerが、GrabFreeTransformerに統合
されています。使い方は２つのコンポーネントの代わりに、 GrabFreeTransformerを追加するだけ
です。


# Page. 90

![Page Image](https://bcdn.docswell.com/page/PJX3DNDZ7X.jpg)

その他のコンポーネント
Grabbable
挙動
Grabbable
Transformerと組み合わせてものをつかめるようになります。
Physics Grabbable(廃止予定)
Grabbableに統合(V65～)
Grabbableコンポーネントと併用し、物理挙動をもつものをつかめるようになり
ます。Rigid Bodyは、Use Gravity=True Is Kinematic=Falseで使います。
Transformer
挙動
One Grab Free Transformer(廃止予定)
Two Grab Free Transformer(廃止予定)
GrabFreeTransformer (V65～)
片手持ち/両手持ち
GrabFreeTransformerに統合されます。
One Grab Translate Transformer
XYZの相対移動範囲を限定でき、平面上を動かしたりする場合に利用。
One Grab Physics Joint Transformer
Configurable Jointを使用してターゲットを制御できる。
One Grab Rotate Transformer
回転軸を固定、回転のPivotと回転範囲を指定できる。
One Grab Sphere Transformer(V64～)
円弧上の移動範囲を指定できる。
Two Grab Plane Transformer
Yの移動範囲を限定でき、平面上を動かしたりする場合に利用。
Two Grab Rotate Transformer
回転軸を固定、回転のPivotと回転範囲を指定できる。


# Page. 91

![Page Image](https://bcdn.docswell.com/page/3JKYXNXV7D.jpg)

PHYSICS GRABBABLEの例
 右手から左手に渡せるようになっ
たり、落下物を空中でつかむこと
ができます。キャッチボールでき
るということです。
 ものを投げたい場合、
ThrowWhenUnselectedコン
ポーネントを追加します。
※V65以降で、Grabbableに統合
されます。
※V66以降で、
ThrowWhenUnselectedが
Grabbableをアタッチした際に
自動的に追加されます。


# Page. 92

![Page Image](https://bcdn.docswell.com/page/LE395VRQE5.jpg)

ONE GRAB TRANSLATE TRANSFORMERの例
 移動可能範囲を設定する場合は、
Constrainにチェックをいれる。
XとZを-30cm～30cmしか移動
できないようにし、Yの移動制限
はなしの場合。


# Page. 93

![Page Image](https://bcdn.docswell.com/page/8EDGD8YWEG.jpg)

TWO GRAB FREE TRANSFORMERの例
 両手で握って回転や拡大縮
小させる場合の例です。
拡大縮小に制限を設ける場
合は、 Constrainに値を設
定。


# Page. 94

![Page Image](https://bcdn.docswell.com/page/V7P3X86XJ8.jpg)

ONE GRAB SPHERE TRANSFORMERの例
 Sphere Centerを中心に上
下30度の範囲に移動制限を
設ける例です。
 中心からの距離による制限
はなさそうで、無限球の上
下角の移動制限をつけるこ
とができます。
30度
-30度
Sphere
Center
横からみた場合の移動可能範囲


# Page. 95

![Page Image](https://bcdn.docswell.com/page/2JV4LN337Q.jpg)

TIPS：握られた、離されたタイミングのイベントをとる
 PointableUnityEventWrapperを追加して、Grabbableを参照として指定することでSelectと
Unselectのタイミングをとることが可能です。
public class GrabEvent : MonoBehaviour
{
private bool isGrabbed = false;
public void Select()
{
isGrabbed = true;
}
public void UnSelect()
{
isGrabbed = false;
}
}


# Page. 96

![Page Image](https://bcdn.docswell.com/page/5EG1XK3YJL.jpg)

TIPS：握られているかどうかを判定
 自分が握られているかどうか、GrabInteractableのStateを参照することで判定することができます。


# Page. 97

![Page Image](https://bcdn.docswell.com/page/4JQD8N567P.jpg)

TIPS : 握っている物を強制的に手放す
 HandGrabInteractorのForceReleaseメソッドで強制手に手放すことが可能です。


# Page. 98

![Page Image](https://bcdn.docswell.com/page/K74Z2G9ME1.jpg)

TIPS：手のコライダー
 手の指１本１本にコライダーを自動で付ける。Is Triggerがfalseのコライダーとなるので注意。


# Page. 99

![Page Image](https://bcdn.docswell.com/page/LJ1RMDKYJG.jpg)

TIPS：ピンクのマテリアル
 Built-inシェーダーのマテリアルは、URPでは正常に表示されないためURP用に変換してください。
 Meta XR SDKのマテリアルはPackage配下に格納されるため、Package配下のマテリアルを検索し
てAssets側にコピーします。コピーしたマテリアルを選択してメニュー(Edit -&gt; Rendering -&gt;
Convert …)から変換し、マテリアルをURP用のシェーダーに変換したマテリアルに置き換えます。


# Page. 100

![Page Image](https://bcdn.docswell.com/page/GJW13YD1E2.jpg)

TIPS : 旧バージョンからのUNITY6への移行①
 移行中のメッセージ
このプロジェクトのソース・ファイルの中には、変更されたAPIを参照して
いるものがある。これらは自動的に更新されます。更新する前にプロジェ
クトのバックアップを取っておくことをお勧めします。これらのファイル
を更新しますか？
プロジェクトのマテリアルは、Universal Render Pipeline（URP）の古
いバージョンを使用して作成されています。Unityは、それらを現在のバー
ジョンのURPと互換性があるようにアップグレードする必要があります。
Unityは、プロジェクト内のすべてのマテリアルを再インポートし、アップ
グレードされたマテリアルをディスクに保存し、必要に応じてソース管理
でチェックアウトします。 詳細については、URPドキュメントのマテリア
ルアップグレードガイドをご覧ください。


# Page. 101

![Page Image](https://bcdn.docswell.com/page/4EZPVXGXJ3.jpg)

TIPS : 旧バージョンからのUNITY6への移行②
 TextMeshProはuGUIに組み込まれたため、重複した状態となったインストール済みのTMPのフォル
ダを削除する。
 Visual Studio Code Editorなど、Deprecatedのパッケージを削除


# Page. 102

![Page Image](https://bcdn.docswell.com/page/Y76M54YPEV.jpg)

TIPS : 旧バージョンからのUNITY6への移行③
 ビルド中のエラー、ビルド後にアプリが落ちるなどの場合。
Custom Main Manifestのチェックを外してビルドする。(外せない場合、Removeする)


# Page. 103

![Page Image](https://bcdn.docswell.com/page/G75ZYQGPJ4.jpg)

46.QRコードトラッキング


# Page. 104

![Page Image](https://bcdn.docswell.com/page/9J2RGPYZ7R.jpg)

META MR UTILITY KIT
 Package Managerを開き、My Assetsから購入したMetaを検索します。
 MRUK(Meta MR Utility Kit)を選択肢、インストールします。


# Page. 105

![Page Image](https://bcdn.docswell.com/page/DEYDV5GNEM.jpg)

CAMERA RIGを配置する
 新しいシーンを作成し、Main Cameraを削除します。
 頭の部分に相当するCamera RigをドラッグアンドドロップでHierarchyに配置します。


# Page. 106

![Page Image](https://bcdn.docswell.com/page/VJN6MNGVJ8.jpg)

パススルーを使う
 PassthroughをドラッグアンドドロップでHierarchyに配置します。


# Page. 107

![Page Image](https://bcdn.docswell.com/page/YE9LNRWV73.jpg)

SCENEサポートを有効にする
 OVRCameraRigを選択し、OVR Managerコンポーネント、Generalタブの中にあるScene
SupportにRequired、Passthrough SupportにSupportedを選択します。Anchor Supportが自
動的にEnabledに変わります。(Building Blocksで組み立てた場合設定済み)
 Permission Requests On Startupにある、Sceneにチェックをいれます。


# Page. 108

![Page Image](https://bcdn.docswell.com/page/GE8XKWN4JD.jpg)

EXPERIMENTALを有効にする
 OVRCameraRigを選択し、OVR Managerコンポーネント、Experimentalタブの中にある
Experimental Features Enableにチェックをいれます。


# Page. 109

![Page Image](https://bcdn.docswell.com/page/LEL8ZNPV7R.jpg)

MRUKでQRコードトラッキングの有効化
 空のGame Objectを作成し、名前をMRUKとします。
 作成したGame Object にMRUKコンポーネント追加します。
 InspectorでTracker Configurationにある、QR Code Tracking Enabledにチェックをいれます。


# Page. 110

![Page Image](https://bcdn.docswell.com/page/4JM6VX4NEW.jpg)

QRコード検出のコードを書く
 TrackableAddedとTrackableRemovedのイベントリスナーを追加します。
 TrackableAddedとTrackableRemoved の呼び出し時に戻される、MRUKTrackableでタイプを判
断し、QRCodeのみ処理するようにフィルタリングします。MRUKTrackableのプロパティを見て、
位置情報やペイロードを確認し処理を行います。
using UnityEngine;
using Meta.XR.MRUtilityKit;
public class QRTracker : MonoBehaviour
{
[SerializeField]
MRUK _mrukInstance;
void OnEnable()
{
_mrukInstance.SceneSettings.TrackableAdded.AddListener(OnTrackableAdded);
_mrukInstance.SceneSettings.TrackableRemoved.AddListener(OnTrackableRemoved);
}
public void OnTrackableAdded(MRUKTrackable trackable)
{
if (trackable.TrackableType != OVRAnchor.TrackableType.QRCode)
{
return;
}
Debug.Log(&quot;QRCode tracked! UUID=&quot; + trackable.Anchor.Uuid);
}
public void OnTrackableRemoved(MRUKTrackable trackable)
{
if (trackable.TrackableType != OVRAnchor.TrackableType.QRCode)
{
return;
}
Debug.Log(&quot;QRCode removed! UUID=&quot; + trackable.Anchor.Uuid);
Destroy(trackable.gameObject);
}
}


# Page. 111

![Page Image](https://bcdn.docswell.com/page/PJRP2NW4E9.jpg)

MRUKTRACKABLE
 MRUKTrackableクラスのプロパティ
プロパティ
説明
Transform transform
ここに検出したQRCodeの座標が格納される。
OVRAnchor.TrackableType TrackableType
トラッカーのタイプを取得する。(None/Keyboard/QRCode)
bool IsTracked
この追跡可能オブジェクトが現在追跡対象であるかどうか。
追跡可能なオブジェクトは、たとえばデバイスで認識できない場合、一時的に追跡不能になることがあ
ります。
string MarkerPayloadString
マーカーのペイロードを文字列として取得できます。そのペイロードを文字列として解釈できる場合は、
このプロパティを使用してペイロードを文字列として取得します。このトラッキング可能オブジェクト
がマーカーではない場合、またはそのペイロードが文字列ではない場合、このプロパティは null になり
ます。
byte[] MarkerPayloadBytes
ペイロード バイトを取得します。このトラッキング可能オブジェクトがマーカーでない場合は、このプ
ロパティは null になります。
List&lt;Vector2&gt; PlaneBoundary2D
アンカーに関連付けられた平面の境界を定義するローカル空間ポイントのリスト。
Rect PlaneRect
アンカーに関連付けられた平面上の長方形境界。


# Page. 112

![Page Image](https://bcdn.docswell.com/page/PEX3DNPZJX.jpg)

QUEST LINKでPCに接続し実行
 実行しQRコードを目の前に置いてみるとTrackableオブジェクトが生成されていることが確認できま
す。


# Page. 113

![Page Image](https://bcdn.docswell.com/page/3EKYXNDVJD.jpg)

25.DEPTH APIを試す
空間の奥行情報の利用したオクルージョン


# Page. 114

![Page Image](https://bcdn.docswell.com/page/L7395VPQ75.jpg)

空間の奥行情報の利用
 現実の空間での奥行情報を利用して、CGのオブジェクトの手前に現実のものがあった場合に、現実の
ものの向こう側に隠す処理(オクルージョン)を行います。より現実と融合したオブジェクトの表示が可
能となり、MRアプリでの仮想と現実の溶け込み具合を向上させることが可能です。
 深度(TOF)カメラのあるQuest3でのみ利用可能です。
 パススールを使う場合GPU パフォーマンスが 17% 低く、CPU パフォーマンスが 14% 低くなりま
す。Depth APIを利用するとさらにパフォーマンスが悪くなるので注意が必要です。
※V67でパフォーマンスの低下が緩和されましたが、重い処理には変わりはありません。
https://developer.oculus.com/blog/start-developing-Meta-Quest-3-tips-performance-mixed-reality/


# Page. 115

![Page Image](https://bcdn.docswell.com/page/87DGD8LW7G.jpg)

ソフトとハードオクルージョン
 エッジが目立つハードオクルージョンと、GPUパワーをより使うソフトウェアオクルージョンがあり
ます。
https://github.com/oculus-samples/Unity-DepthAPI


# Page. 116

![Page Image](https://bcdn.docswell.com/page/VJP3X82XE8.jpg)

必用要件
 Depth APIを機能させるには、予め次の要件を満たしておく必要があります。

グラフィックAPIをVulkanに設定する。

ステレオレンダリングモードをマルチビューに設定する。

パススルー機能を有効にして、Depth APIを使う予定のすべてのシーンに統合しておく。

OVRManagerコンポーネントでシーンサポートを必須に設定する。

Unity6以前 Oculus XR Plugin 4.2以降(com.unity.xr.oculus@4.2.0)
Unity6以降 OpenXR Plugin 2.2以降(com.unity.xr.meta-openxr@2.2.0)


# Page. 117

![Page Image](https://bcdn.docswell.com/page/2EV4LND3JQ.jpg)

DEPTH APIの追加
 空のGame Objectを作成しDepthManagerという名前に変更します。
 作成したGameObjectにAdd Componentで、EnvironmentDepthManagerをコンポーネントに追
加します。


# Page. 118

![Page Image](https://bcdn.docswell.com/page/57G1XKYYEL.jpg)

オクルージョンモードの切替え
 エッジが目立つハードオクルージョンと、エッ
ジはハードより滑らかだが、よりGPUパワーを
使うソフトウェアオクルージョンを切り替える
ことができます。
オクルージョンなし
ハードウェアオクルージョン
ソフトウェアオクルージョン


# Page. 119

![Page Image](https://bcdn.docswell.com/page/4EQD8NM6JP.jpg)

問題の確認
 Project SettingsのMeta XRを選択、Project Setup Toolにて問題を確認します。すべての問題と解
決のための推奨事項がメニューに表示されます。未解決の問題をすべて修正しないと、Depth APIが
機能しません。推奨事項も適用してください。


# Page. 120

![Page Image](https://bcdn.docswell.com/page/KJ4Z2GVM71.jpg)

シーンのアクセス許可
 Depth APIを利用するアプリは、アプリの実行中に空間
データへのアクセス許可をリクエストする必要があります。
 OVRManagerのExperimentalのScene チェックボック
スにチェックを入れてください。アプリ起動時にシーンの
アクセス許可を付与するよう、ユーザーに求めることがで
きます。


# Page. 121

![Page Image](https://bcdn.docswell.com/page/LE1RMD3YEG.jpg)

マテリアルの変更
 オクルージョンの遮蔽をサポートするシェーダー
付きマテリアルが必要です。
 マテリアルを作成し、シェーダーを
EnvironmentDepth/OcclusionLitに変更しま
す。
 このマテリアルをオクルージョンされるオブジェ
クトに適用します。


# Page. 122

![Page Image](https://bcdn.docswell.com/page/GEW13YP172.jpg)

ビルドして実行
 QuestをUSBケーブルで接続し、Build And Runで実機で動作確認します。Unity Editor上で実行す
る場合は、オキュラスアプリのβ機能をオンにします。Quest LinkでPCに接続しPlayを押下します。
 実験的機能が利用可能に設定されていない場合、確認のダイアログが表示されますのでYes, enableを
選択します。


# Page. 123

![Page Image](https://bcdn.docswell.com/page/47ZPVXKXE3.jpg)

SHADER GRAPHをDEPTH APIに対応させる
 サブグラフのOcclusionSubGraphをノードに追加して、Alphaに差し込むだけです。


# Page. 124

![Page Image](https://bcdn.docswell.com/page/YJ6M54QP7V.jpg)

BUILDING BLOCKSで作る
 シーンにOcclusionをドラッグアンドドロップ
するだけです。Camera Rig、Passthroughな
どの依存関係は自動で追加されます。


