Mixed Reality Toolkit 3で始めるクロスプラットフォーム開発

7.5K Views

December 19, 23

スライド概要

XR Kaigi 2023(https://www.xrkaigi.com/)登壇資料。
セッション概要:
Unityでのコンテンツ開発に効果を発揮するMixed Reality Toolkit 3の概要や開発に関して、デバイス毎の開発、プラットフォーム連携(Snapdragon Spaces)等を例に交えながら紹介します。

profile-image

ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Mixed Reality Toolkit 3で始める クロスプラットフォーム開発 2023/12 XR Kaigi 2023 @takabrz1 Takahiro Miyaura

2.

今日はクロスプラットフォーム開発に Mixed Reality Toolkit 3は便利かもしれない話 2023/12/19 Copyright © 2023 Takahiro Miyaura 2

3.

目次 ○Mixed Reality Toolkit 3(MRTK3)とは ✓ 最近の状況 ✓ 機能について ○MRTK3がクロスプラットフォーム開発向きだと思うポイント ✓ UX部品 ✓ 入力系 ○実デバイスでの検証 ✓ HoloLens 2 ✓ Meta Quest シリーズ ✓ Lenovo ThinkReality A3 ✓ Lenovo VRX ○まとめ

4.

Microsoft MVP for Mixed Reality 2018-2024 XRは趣味です 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近は ✓ ✓ Mixed Reality Toolkit v3.0.0(GAされた!) Snapdragon Spacesとか戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura https://zenn.dev/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください

5.

目次 ○Mixed Reality Toolkit 3(MRTK3)とは ✓ 最近の状況 ✓ 機能について ○MRTK3がクロスプラットフォーム開発向きだと思うポイント ✓ UX部品 ✓ 入力系 ○実デバイスでの検証 ✓ HoloLens 2 ✓ Meta Quest シリーズ ✓ Lenovo ThinkReality A3 ✓ Lenovo VRX ○まとめ

6.

Mixed Reality Toolkit 3とは 最近の状況 2023/12/19 Copyright © 2023 Takahiro Miyaura 6

7.

Mixed Reality Toolkit 3(MRTK3)とは 超概要 Unity向けのOSSライブラリ Holotoolkit HoloLens向け ○Unity向け ○クロスプラットフォーム ○最新バージョンはv3.0.0 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール Mixed Reality Toolkit Windows Mixed Reality Devices対応 Mixed Reality Toolkit V2 HoloLens 1/2,VR Devices,Mobile AR… Mixed Reality Toolkit 3 Public Preview版 Mixed Reality Toolkit 3 v3.0.0 GA! 2023.9.6 2023/12/19 Copyright © 2023 Takahiro Miyaura ←イマココ 7

8.

Mixed Reality Toolkit 3(MRTK3)とは 最近の状況 Microsoft, Qualcomm, Magic Leapの3社による独立したプロジェクトに きっかけはMicrosoft社のレイオフ マイクロソフトがMRTK開発チームを解散し「AltspaceVR」シャットダウ ン、今後は「Microsoft Mesh」にシフトか(MoguraVR – 2023/01/25) https://www.moguravr.com/microsoft-mrtk-team-dissolve/ ○Unity向け ○クロスプラットフォーム ○最新バージョンはv3.0.0 MRTK Devチームの解散によりMicrosoft主導によるプロジェ クト運営ではなくOSSとして整備が進むようになる。 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール 2023/12/19 Copyright © 2023 Takahiro Miyaura 8

9.

Mixed Reality Toolkit 3(MRTK3)とは 最近の状況 Microsoft, Qualcomm, Magic Leapの3社による独立したプロジェクトに きっかけはMicrosoft社のレイオフ マイクロソフトがMRTK開発チームを解散し「AltspaceVR」シャットダウ ン、今後は「Microsoft Mesh」にシフトか(MoguraVR – 2023/01/25) https://www.moguravr.com/microsoft-mrtk-team-dissolve/ ○Unity向け ○クロスプラットフォーム ○最新バージョンはv3.0.0 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール MRTK Devチームの解散によりMicrosoft主導によるプロジェ クト運営ではなくOSSとして整備が進むようになる。 独立したプロジェクトとして新たなスタート 「MRTK」がプロジェクトとして独立、運営にMagic Leapとクアルコム参 画へ(MoguraVR – 2023/08/31) https://www.moguravr.com/mrtk-independence-qualcomm-magicleap-join/ Microsoft, Qualcomm, Magic Leap の3社運営 2023/12/19 Copyright © 2023 Takahiro Miyaura 9

10.

Mixed Reality Toolkit 3(MRTK3)とは 最近の状況 独立したプロジェクトになったことによる変更 ○ Githubリポジトリ ○ 元々あったMRTKのプロジェクトから「mrtk3」ブランチが移管 ○ 新しいリポジトリ https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity ○ MRTK V2等旧バージョンはこれまでのMRTKプロジェクトのまま https://github.com/microsoft/MixedRealityToolkit-Unity ○ パッケージ名 ○ 旧:com.microsoft.mixedrealitytoolkit.XXXX 新:org.mixedrealitytoolkit.XXXX ○ 名前空間 ○ 旧:Microsoft.MixedReality.Toolkit.XXXX 新:MixedReality.Toolkit.XXXX 2023/12/19 Copyright © 2023 Takahiro Miyaura 10

11.

Mixed Reality Toolkit 3とは 機能 – アーキテクチャー – パッケージ – サポートデバイス 2023/12/19 Copyright © 2023 Takahiro Miyaura 11

12.

Mixed Reality Toolkit 3 機能 – アーキテクチャー MRTK3が提供するコンポーネントと関連機能の関係 引用:https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk3-overview/architecture/architecture ○ OpenXR,Unityの機能を拡張 ○ 車輪の再発明を避ける設計 ○ MRTK V2の頃はOpenXRやXRIがなかったため相当機能まで作りこまれていた ○ 機能毎に独立したコンポーネント設計 2023/12/19 Copyright © 2023 Takahiro Miyaura 12

13.

Mixed Reality Toolkit 3 機能 – パッケージ 機能毎に分割されたパッケージ提供 MRTK3 Data Binding and Theming MRTK Spatial Manipulation データソースから動的にコンテンツを生成/テーマ変更する機能 1.0.0-pre.18 3Dオブジェクトの回転、拡大等空間操作に関するパッケージ MRTK Accessibility Early Preview MRTK Standard Assets 音声読み上げ、テキスト色反転等のアクセシビリティ関連機能 1.0.0-pre.18 MRTK標準のボタン等で使われるマテリアル等が含まれるパッケージ MRTK Audio Effects MRTK Tools オーディオオクルージョン等が音に関連する機能 3.0.0 MRTK Core Definitions 3.0.0 3.0.0 MRTK UX Components 必須の基本パッケージ。MRTKの基本機能が含まれます。 3.0.1 MRTK Diagnotics UGUIベースのUX部品に関するパッケージ 3.1.0 MRTK UX Conponents(Non-Canvas) コンテンツ分析に関する機能 3.0.0 MRTK Extended Assets 3DオブジェクトベースのUX部品に関するパッケージ 3.1.0 MRTK UX Core Scripts 3.0.0 MRTKのデモやサンプルで使われるオーディオ、モデル等 MRTK Input UX部品の共通パッケージ 3.1.0 MRTK Windows Speech XRI,MRTKのイベント制御を組合わせた入力制御に関するパッケージ 2023/12/19 開発時に利用するツールに関するパッケージ 3.0.0 3.0.0 音声認識に関するパッケージ(Windows専用) Copyright © 2023 Takahiro Miyaura 3.0.0 13

14.

Mixed Reality Toolkit 3 機能 – パッケージ 構成例 – UX部品(メニュー/ボタン)、オブジェクトの操作を利用 MRTK3 Data Binding and Theming MRTK Spatial Manipulation データソースから動的にコンテンツを生成/テーマ変更する機能 1.0.0-pre.18 3Dオブジェクトの回転、拡大等空間操作に関するパッケージ MRTK Accessibility Early Preview MRTK Standard Assets 音声読み上げ、テキスト色反転等のアクセシビリティ関連機能 1.0.0-pre.18 MRTK標準のボタン等で使われるマテリアル等が含まれるパッケージ MRTK Audio Effects MRTK Tools オーディオオクルージョン等が音に関連する機能 3.0.0 MRTK Core Definitions 3.0.0 3.0.0 MRTK UX Components 必須の基本パッケージ。MRTKの基本機能が含まれます。 3.0.1 MRTK Diagnotics UGUIベースのUX部品に関するパッケージ 3.1.0 MRTK UX Conponents(Non-Canvas) コンテンツ分析に関する機能 3.0.0 MRTK Extended Assets 3DオブジェクトベースのUX部品に関するパッケージ 3.1.0 MRTK UX Core Scripts 3.0.0 MRTKのデモやサンプルで使われるオーディオ、モデル等 MRTK Input UX部品の共通パッケージ 3.1.0 MRTK Windows Speech XRI,MRTKのイベント制御を組合わせた入力制御に関するパッケージ 2023/12/19 開発時に利用するツールに関するパッケージ 3.0.0 3.0.0 音声認識に関するパッケージ(Windows専用) Copyright © 2023 Takahiro Miyaura 3.0.0 14

15.

Mixed Reality Toolkit 3 機能 – UX構成要素 サイトより抜粋 https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk3-overview/ ?WT.mc_id=WDIT-MVP-5003104 2023/12/19 Copyright © 2023 Takahiro Miyaura 15

16.

Mixed Reality Toolkit 3 機能 – UX構成要素 ほぼノンコーディングでコンテンツ開発が可能 2023/12/19 Copyright © 2023 Takahiro Miyaura 16

17.

Mixed Reality Toolkit 3 機能 – サポートデバイス MRTK3のリポジトリから抜粋 Platform Supported Devices OpenXR devices Windows • • • • • • • Microsoft HoloLens 2 Magic Leap 2 Meta Quest 1/2 Windows Mixed Reality (experimental) SteamVR (experimental) Oculus Rift on OpenXR (experimental) Varjo XR-3 (experimental) If your OpenXR device already works with MRTK3, let us know! Traditional flat-screen desktop (experimental) And more coming soon! リストにはないですがLenovo ThinkReality A3,VRXでも使える ※OpenXRサポートしていればおおむね動かせる(はず) 2023/12/19 Copyright © 2023 Takahiro Miyaura 17

18.

Mixed Reality Toolkit 3 機能 – サポートデバイス MRTK3での開発を公開しているデバイスメーカー ○Microsoft ✓MRTK3 の概要 https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk3-overview/getting-started/overview?WT.mc_id=WDIT-MVP-5003104 ○Magic Leap(Magic LeapはMRTKV2用もある) ✓MRTK 3 Magic Leap Quick Start https://developer-docs.magicleap.cloud/docs/guides/third-party/mrtk3/mrtk3-template/ ○Qualcomm(Snapdragon Spaces) ✓MRTK3 Setup Guide https://docs.spaces.qualcomm.com/unity/samples/preview/MRTK3SampleWinOnly.html 2023/12/19 Copyright © 2023 Takahiro Miyaura 18

19.

目次 ○Mixed Reality Toolkit 3(MRTK3)とは ✓ 最近の状況 ✓ 機能について ○MRTK3がクロスプラットフォーム開発向きだと思うポイント ✓ UX部品 ✓ 入力系 ○実デバイスでの検証 ✓ HoloLens 2 ✓ Meta Quest シリーズ ✓ Lenovo ThinkReality A3 ✓ Lenovo VRX ○まとめ

20.

MRTK3が クロスプラットフォーム開発向きだと思うポイント クロスプラットフォームの困りごとの1つデバイス依存を低減できる? – MRTK3のUX部品の特徴 – MRTK3の入力制御の特徴 2023/12/19 Copyright © 2023 Takahiro Miyaura 20

21.

MRTK3がクロスプラットフォーム開発向きだと思うポイント MRTK3のUX部品の特徴 Canvas(UGUI)ベースのUX部品も提供 ○3Dオブジェクトベースよりも調整が容易 ✓ Layout Groupによる自動整列 ○動的なサイズ変更にも柔軟に対応できる ✓ 最小/最大サイズによる伸縮調整 2023/12/19 Copyright © 2023 Takahiro Miyaura 21

22.

Mixed Reality Toolkit 3 MRTK3の入力制御の特徴 MRTK3の入力制御系はXRI上に構築 ○OpenXR ✓ Khronosの仕様 ✓ Unity OpenXR Plugin ✓ Microsoft Mixed Reailty OpenXR Plugin ○Unity Subsystem 今のところ地味にこれが重要なPlugin ○Unity Input System ○Unity XR Interaction Toolkit MRTK3は標準のXRIを一部拡張 ○ Interactor→多関節ハンドトラッキング、視線、ピンチ等 https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk3-overview/architecture/interactors?WT.mc_id=WDIT-MVP-5003104 ○ Interactable→UGUIイベントをXRIにマッピングする機能等 https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk3-overview/architecture/interactables?WT.mc_id=WDIT-MVP-5003104 2023/12/19 Copyright © 2023 Takahiro Miyaura 22

23.

Mixed Reality Toolkit 3 MRTK3の入力制御の特徴 Microsoft Mixed Reality OpenXR Plugin ○HoloLens 2, Windows Mixed Reality 向けのOpenXR拡張プラグイン ✓HoloLens 2のハンドトラッキング ✓Windows Mixed Realityモーションコントローラ ○ Meta Quest向けのプラグインでもある(現在は非推奨) ○ ハンドトラッキング、モーションコントローラサポート ※V1.8.0のみこの機能が削除されているので注意 Androidベースのハンドトラッキングが利用可能なXRデバイスの場合この プライグイン経由でMRTK3でもハンドトラッキングが使えてしまう。 例:Snapdragon Spacesが利用できるThink Reality A3やVRX等 2023/12/19 Copyright © 2023 Takahiro Miyaura 23

24.

目次 ○Mixed Reality Toolkit 3(MRTK3)とは ✓ 最近の状況 ✓ 機能について ○MRTK3がクロスプラットフォーム開発向きだと思うポイント ✓ UX部品 ✓ 入力系 ○実デバイスでの検証 ✓ HoloLens 2 ✓ Meta Quest シリーズ ✓ Lenovo ThinkReality A3 ✓ Lenovo VRX ○まとめ

25.

実デバイスでの検証 2023/12/19 Copyright © 2023 Takahiro Miyaura 25

26.

実デバイスでの検証 MRTK3のいくつかの部品を利用したサンプルアプリを各デバイスで動作確認 ○空間にオブジェクトを配置 ○オブジェクトは操作可能 ○つかむ、サイズを変える ○操作はデバイスがサポートする手段 ✓ ハンドトラッキング ✓ モーションコントローラ ○一部デバイス固有機能を併用 ✓ パススルー(Meta Quest 3 / VRX) ✓ 空間認識(AR Foundation) ✓ ルーム(Meta Quest 3) 2023/12/19 Copyright © 2023 Takahiro Miyaura 26

27.

実デバイスでの検証 1. 空の3Dプロジェクトを作成 2. MRTK3セットアップ 3. プロジェクト設定 1. 2. 今回のUnityのバージョンは・・・ Meta Quest 3 → Unity 2022.3.7f1 それ以外→Unity 2021.3.22f1 MRTK3の設定 XR Plug-in Managementの設定 4. シーンの作成 1. 2. 3. MRTK XR Rig, MRTK Input Simulatorの導入 コンテンツ作成(オブジェクト追加/空間操作/ハンドメニュー) デバイス固有の機能追加 5. ビルド&デプロイ 2023/12/19 Copyright © 2023 Takahiro Miyaura 27

28.

実デバイスでの検証 2. MRTK3セットアップ MRTK3のパッケージはMixed Reality Feature Toolで設定 ○ Unityのプロジェクトを選択 ○ MRTK3の以下の機能を追加 ○ ○ ○ ○ ○ ○ ○ ○ 2023/12/19 MRTK Core Definitions v3.0.0 MRTK Input v3.0.0 MRTK Spatial Manipulation v3.0.0 MRTK UX Core Script v3.1.0 MRTK UX Components v3.1.0 MRTK Standard Assets v3.0.0 MRTK Graphics Tools v0.5.12 Mixed Reality OpenXR Plugin v1.9.0 Copyright © 2023 Takahiro Miyaura 28

29.

実デバイスでの検証 3-1. MRTK3の設定 Project Settings – MRTK3でProfileの設定 ○ プラットフォーム毎に設定 ○ ハンドトラッキング利用時は以下をチェック ○ MRTK Hands Aggregator Subsystem ○ Subsystem for OpenXR Hands API ○ Subsystem for Hand Synthesis ○ 手の形状に合わせてメッシュ表示する場合に利用 2023/12/19 Copyright © 2023 Takahiro Miyaura 29

30.

実デバイスでの検証 4-1. MRTK XR Rig, MRTK Input Simulatorの導入 Main Cameraは不要なので削除 MRTK XR Rig: MRTKで利用するカメラやコントローラがプリセットされた Prefab MRTK Input Simulator: Play Modeでハンドトラッキングをキーボード操作でエミュレー ションするPrefab Projectパネルから「MRTK XR Rig」を検索(In Packages内) Projectパネルから「MRTK XR Rig」を検索(In Packages内) 2023/12/19 Copyright © 2023 Takahiro Miyaura 30

31.

実デバイスでの検証 4-2. コンテンツ作成(オブジェクト追加/空間操作/ハンドメニュー) カスタムするため、Prefab Unpackを行って利用 Object Manipulator: 追加することで、対象の3Dオブジェクトの操作(移動、 回転、サイズ変更)を可能にするコンポーネント Hand Menu Base (UGUIベース) : ジェスチャー(手のひらを返す)で表示可能なメニュー を実現するためのPrefab Projectパネルから「HandMenuBase」を検索(In Packages内) 2023/12/19 Copyright © 2023 Takahiro Miyaura 31

32.

実デバイスでの検証 4-2. コンテンツ作成(オブジェクト追加/空間操作/ハンドメニュー) SolverHandler: トラッキング対象の入力を監視し様々なSolverによるオ ブジェクトの操作を実現 今回は手の動きを監視しHandConstraint(Palm Up)に通知 HandConstraint(Palm Up) : 手のひらを返した時に、イベントが発生&手の動き に合わせてオブジェクトを追従するコンポーネント Hand Menu Base (UGUIベース) : ジェスチャー(手のひらを返す)で表示可能なメニュー を実現するためのPrefab Projectパネルから「HandMenuBase」を検索(In Packages内) 2023/12/19 Copyright © 2023 Takahiro Miyaura 32

33.

実デバイスでの検証 後で試してみたい人のために 詳細手順はQiita記事にしました。 【XR Kaigi 2023解説用】 MRTK3 を使ったコンテンツ(空間操作/ハンドメニュー)を作成する(共通) https://qiita.com/miyaura/private/72c0f9e2c1ac2521ee0f 2023/12/19 Copyright © 2023 Takahiro Miyaura 33

34.

実デバイスでの検証 HoloLens 2の場合 2023/12/19 Copyright © 2023 Takahiro Miyaura 34

35.

実デバイスでの検証 HoloLens 2の場合 開発環境とライブラリ 実際の検証動画はこちら ツール ○ Unity 2021.3.22f1 ○ Visual Studio 2022 ○ Mixed Reality Feature Tool 利用するUnityパッケージ ○ ○ ○ ○ ○ ○ ○ ○ 2023/12/19 MRTK Core Definitions v3.0.0 MRTK Input v3.0.0 MRTK Spatial Manipulation v3.0.0 MRTK UX Core Script v3.1.0 MRTK UX Components v3.1.0 MRTK Standard Assets v3.0.0 MRTK Graphics Tools v0.5.12 Mixed Reality OpenXR Plugin v1.9.0 Copyright © 2023 Takahiro Miyaura 35

36.

実デバイスでの検証 HoloLens 2の場合 XR Plug-in Managementの設定 Depth Submission Mode を 16bitに ハンドトラッキングを利用したいためprofileを追加 Microsoft HoloLens feature groupをチェック 2023/12/19 Copyright © 2023 Takahiro Miyaura 36

37.

実デバイスでの検証 HoloLens 2の場合 - デバイス固有機能 空間マッピングの実装(AR Foundation) 空間マッピングに使用するMesh用のPrefabを設定 ※Colliderを入れることで3Dオブジェクトと干渉 Camera Offset(含XR Originコンポーネント)配下の 任意の場所にAR Mesh Managerコンポーネントを追加 2023/12/19 Copyright © 2023 Takahiro Miyaura 37

38.

実デバイスでの検証 後で試してみたい人のために 詳細手順はQiita記事にしました。 【XR Kaigi 2023解説用】 MRTK3と空間マッピング を使ったコンテンツ作成(HoloLens 2向け) https://qiita.com/miyaura/private/c8443173e05056ee3041 2023/12/19 Copyright © 2023 Takahiro Miyaura 38

39.

実デバイスでの検証 Meta Quest 3の場合 2023/12/19 Copyright © 2023 Takahiro Miyaura 39

40.

実デバイスでの検証 Meta Quest 3の場合 開発環境とライブラリ Hand Tracking版 Motion Controllers版 実際の検証動画はこちら ツール ○ Unity 2022.3.7f1 ○ Mixed Reality Feature Tool 利用するUnityパッケージ ○ Meta XR Core SDK v59.0 ○ Meta XR Interaction SDK v59.0 ○ Meta XR Interaction SDK OVR Integration v59.0 ○ 先ほど紹介したMRTK3のパッケージ一式 2023/12/19 Copyright © 2023 Takahiro Miyaura 40

41.

実デバイスでの検証 Meta Quest 3の場合 XR Plug-in Managementの設定(ハンドトラッキング) 何も設定しない Meta XR feature groupをチェック Microsoft Mixed Reality OpenXR Pluginの ハンドトラッキング機能を有効にする 2023/12/19 Copyright © 2023 Takahiro Miyaura 41

42.

実デバイスでの検証 Meta Quest 3の場合 XR Plug-in Managementの設定(コントローラ) モーションコントローラのProfileを追加 Meta XR feature groupをチェック Microsoft Mixed Reality OpenXR Pluginの ハンドトラッキング機能を無効にする 2023/12/19 Copyright © 2023 Takahiro Miyaura 42

43.

実デバイスでの検証 Meta Quest 3の場合 - デバイス固有機能 ○ Target Devices : Quest 3をチェック ○ Enable Passthroughをチェック パススルーの設定 Meta XR SDKを利用 ○ PlacementをUnderlayに変更 任意の場所に空オブジェクトを作成しコンポーネントを追加 ○ OVR Manager ○ OVR Passthrough Layer 2023/12/19 Copyright © 2023 Takahiro Miyaura 43

44.

実デバイスでの検証 Meta Quest 3の場合 - デバイス固有機能 シーン(ルーム)の設定 OVR Managerの Scene Support を Supported/Requiredに Meta XR SDKを利用 Projectパネルから[OVR Scene Manager]を検索しPrefabを追加 2023/12/19 空間内でルームの壁や床に関するオブジェクト を設定(OVR Scene Anchor必須) Copyright © 2023 Takahiro Miyaura 44

45.

実デバイスでの検証 後で試してみたい人のために 詳細手順はQiita記事にしました。 【XR Kaigi 2023解説用】 MRTK3とpassthrough , scene を使ったコンテンツ作成(Meta Quest 3向け) https://qiita.com/miyaura/private/50e017d9feb0d5b23d88 2023/12/19 Copyright © 2023 Takahiro Miyaura 45

46.

実デバイスでの検証 Lenovo ThinkReality A3の場合 2023/12/19 Copyright © 2023 Takahiro Miyaura 46

47.

実デバイスでの検証 Lenovo ThinkReality A3の場合 開発環境とライブラリ 実際の検証動画はこちら ツール ○ Unity 2021.3.22f1 ○ Mixed Reality Feature Tool 利用するUnityパッケージ ○ Snapdragon Spaces v0.17.0 ○ Snapdragon Spaces Dual Render Fusion(Experimental) v0.17.0 ○ 先ほど紹介したMRTK3のパッケージ一式 2023/12/19 Copyright © 2023 Takahiro Miyaura 47

48.

(参考)Snapdragon Spacesについて 名前から想像される通りのクアルコムが手掛けるサービス マートフォン接続のARグラスのデバイス設計、ARグラス向け3Dアプリケーション 開発・商用化を支援するプラットフォーム 基本機能 ○ Positional Tracking 操作系 ○ Gaze Controller 環境(空間)認識 ○ Plane Detection ○ Local Spatial Anchors ○ Snapdragon Spaces Controller ○ Image Tracking ○ Hit Testing ○ Hand Tracking ○ 6DOFによる自己位置推定 ○ 現実空間との位置合わせ ○ 現実空間とのオクルージョン等 ○ 頭の向きでフォーカスや決定 ○ スマホを3DOFコントローラ化 ○ 平面検知 ○ 画像マーカー ○ ハンドトラッキング OpenXR準拠のランタイムと様々なOpenXR拡張機能として提供されている 2023/12/19 Copyright © 2023 Takahiro Miyaura 48

49.

(参考)Snapdragon Spacesの操作系 今提供されているもの Snapdragon Spaces Controller or ハンドトラッキング 【 Snapdragon Spaces Controller】 ○ スマホのアプリとして起動する ○ スマホの傾き(3DOF)でカーソルを制御 ○ スマホの画面をタップすることで決定 ○ アプリ内でのメニュー表示用のボタンもある ○ なお、オレオレコントローラも開発可能 【Hand Tracking】 ○ センサーで手の動きをトラッキング ○ いくつかのジェスチャーでオブジェクトを操作 ○ Ray(手から光線)による遠隔操作も可能 Pinch Point Grab Open-Hand 今回はハンドトラッキングのみ利用 2023/12/19 Copyright © 2023 Takahiro Miyaura 49

50.

実デバイスでの検証 Lenovo ThinkReality A3の場合 XR Plug-in Managementの設定 何も設定しない Snapdragon Spaces feature groupをチェック Microsoft Mixed Reality OpenXR Pluginの ハンドトラッキング機能を有効にする 空間マッピングの機能を有効にする 2023/12/19 Copyright © 2023 Takahiro Miyaura 50

51.

実デバイスでの検証 Lenovo ThinkReality A3の場合 - デバイス固有機能 空間マッピングの実装(AR Foundation) 空間マッピングに使用するMesh用のPrefabを設定 ※Colliderを入れることで3Dオブジェクトと干渉 Camera Offset(含XR Originコンポーネント)配下の 任意の場所にコンポーネントを追加 ○ AR Mesh Manager ○ Spaces AR Mesh Manager 2023/12/19 Copyright © 2023 Takahiro Miyaura 51

52.

実デバイスでの検証 後で試してみたい人のために 詳細手順はQiita記事にしました。 【XR Kaigi 2023解説用】MRTK3と空間マッピング, Dual Render Fusionを使った コンテンツ作成( Lenovo ThinkReality A3向け) https://qiita.com/miyaura/private/be7e1ad2450d7aeff072 2023/12/19 Copyright © 2023 Takahiro Miyaura 52

53.

実デバイスでの検証 Lenovo VRX 2023/12/19 Copyright © 2023 Takahiro Miyaura 53

54.

実デバイスでの検証 Lenovo VRXの場合 開発環境とライブラリ※ThinkReality A3とほぼ同じです Hand Tracking版 Motion Controllers版 実際の検証動画はこちら ツール ○ Unity 2021.3.22f1 ○ Mixed Reality Feature Tool 利用するUnityパッケージ ○ Snapdragon Spaces v0.17.0 ○ 先ほど紹介したMRTK3のパッケージ一式 2023/12/19 Copyright © 2023 Takahiro Miyaura 54

55.

実デバイスでの検証 Lenovo VRXの場合 XR Plug-in Managementの設定(ハンドトラッキング) 何も設定しない Snapdragon Spaces feature groupをチェック Microsoft Mixed Reality OpenXR Pluginの ハンドトラッキング機能を有効にする 空間マッピングの機能を有効にする 2023/12/19 Copyright © 2023 Takahiro Miyaura 55

56.

実デバイスでの検証 Lenovo VRXの場合 XR Plug-in Managementの設定(コントローラ) モーションコントローラのProfileを追加 Snapdragon Spaces feature groupをチェック Microsoft Mixed Reality OpenXR Pluginの ハンドトラッキング機能を無効にする 2023/12/19 Copyright © 2023 Takahiro Miyaura 56

57.
[beta]
実デバイスでの検証
Lenovo VRXの場合 - デバイス固有機能

空間マッピング、パススルーの実装
空間マッピングはThinkReality A3と同様のため省略
public class PassthroughToggleSwitch : MonoBehaviour{
public bool IsPassthroughOn{ get; private set; }
private BaseRuntimeFeature _baseRuntimeFeature;

OpenXRSettingsからSnapdragon Spacesのベース機能を取得
OpenXRSettings.Instance.GetFeature<BaseRuntimeFeature>()

public virtual void OnEnable() {
_baseRuntimeFeature = OpenXRSettings.Instance.GetFeature<BaseRuntimeFeature>();
}
private void Start() {
if (!_baseRuntimeFeature) {
Debug.LogWarning("Base Runtime Feature isn't available.");
return;
}
if (!_baseRuntimeFeature.IsPassthroughSupported()) return;

現在のpassthroughの状態を確認
BaseRuntimeFeature.GetPassthroughEnabled()

IsPassthroughOn = _baseRuntimeFeature.GetPassthroughEnabled();
SetPassthrough(IsPassthroughOn);

}
public void SetPassthrough(bool isPassthroughOn) {
if (!_baseRuntimeFeature.IsPassthroughSupported()) {
Debug.LogWarning("Passthrough isn't supported.");
return;
}
IsPassthroughOn = isPassthroughOn;
_baseRuntimeFeature.SetPassthroughEnabled(isPassthroughOn);
}

passthroughの状態を変更
BaseRuntimeFeature.SetPassthroughEnabled(boolean)

}

2023/12/19

Copyright © 2023 Takahiro Miyaura

57

58.

実デバイスでの検証 後で試してみたい人のために 詳細手順はQiita記事にしました。 【XR Kaigi 2023解説用】MRTK3とpassthrough, 空間マッピングを使ったコンテ ンツ作成( Lenovo VRX向け) https://qiita.com/miyaura/private/093d0ae3ca9f6755723e 2023/12/19 Copyright © 2023 Takahiro Miyaura 58

59.

目次 ○Mixed Reality Toolkit 3(MRTK3)とは ✓ 最近の状況 ✓ 機能について ○MRTK3がクロスプラットフォーム開発向きだと思うポイント ✓ UX部品 ✓ 入力系 ○実デバイスでの検証 ✓ HoloLens 2 ✓ Meta Quest シリーズ ✓ Lenovo ThinkReality A3 ✓ Lenovo VRX ○まとめ

60.

まとめ Mixed Reality Toolkit 3で始めるクロスプラットフォーム開発 1. MRTK3について ✓ ✓ ✓ 2023年9月にGA Microsoft社の1社体制から Qualcomm, Magic Leapを加えた3社独立プロジェクトに MRTK3のみ別のgithubで管理 https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity 2. MRTK3の機能 ✓ ✓ ✓ UX部品や操作に関するコンテンツをほぼノンコーディングで開発可能 クロスプラットフォームを意識した汎用ライブラリを目指している OpenXR, XRI等既存機能をベースに拡張されたデバイス対応の容易さ 3. 様々なデバイスでの検証 ✓ ✓ ✓ コンテンツ作成時、MRTK3で共通化できる部分を増やすことができる 空間認識、ハンドトラッキング等のデバイス機能は個別対応が必要 各デバイス機能とMRTK3の共存は手探り感がある (おまけ)Microsoft Mixed Reality OpenXR Plugin ✓ ✓ 2023/12/19 Android系XRデバイスならハンドトラッキングをMRTK3上で使えるかも? 非推奨ではあるので利用には注意を Copyright © 2023 Takahiro Miyaura 60

61.

大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ