---
title: OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ～ (私が)完全に理解できたらちゃんと作れて、いろいろ話できるはず編 ～
tags:  #hololens #openxr  
author: [Miyaura](https://www.docswell.com/user/m-taka596)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE1V9Q3X7G.jpg?width=480
description: Kobe HoloLens Meetup! vol.5 - 春休みスペシャル(https://arkobe.connpass.com/event/241397/)登壇資料。 HoloLens 2向けのコンテンツをOpenXRだけで開発したり、OpenXR+XR Interraction Toolkitの組合わせて作ってみたりした話。コンテンツは最小限でCubeをいじるもの。 サンプルコード：https://github.com/TakahiroMiyaura/OpenXRHoloLensSamples  動画：https://youtube.com/playlist?list=PLc2Vh5cXp2W1EvV6ZEykfPqRTnvgogbeU
published: March 23, 22
canonical: https://www.docswell.com/s/m-taka596/ZM1W7N-OpenXR-XRI-HoloLens-20220323
---
# Page. 1

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

OpenXR + XR Interaction Toolkit
使ったHoloLensコンテンツ開発検証
～ (私が)完全に理解できたらちゃんと作れて、いろいろ話できるはず編 ～
2022/03
Kobe HoloLens Meetup vol.5
takabrz1
大阪駆動開発 Takahiro Miyaura


# Page. 2

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

Microsoft MVP for Windows Development 2018-2022
某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず）＝ XRは趣味です（貢献領域：Mixed Reality）
宮浦 恭弘
(Miyaura Takahiro)
◼ 大阪駆動開発(とHolomagicians)コミュニティに生息
◼ HoloLens日本販売してからxR系技術に取組む
◼ 普段はよくMixed Reality Toolkitに関する調査している
✓ リリース機能調べたり・・・
✓ 面白い機能使ってみたり・・・
✓ 新しい実験してフィードバックしたり・・・
最近はこちらに
Come Back気味
と思ったらDigital Twins
◼ 新しい技術や、MRに使えそうな技術を調べる
技術Tips : https://qiita.com/miyaura
@takabrz1
※よかったらこれを機にお知り合いになってください


# Page. 3

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

この話をしようと思った経緯は
Mixed Reality Toolkit V3から来ています。
2022/02/16
Copyright © 2022 Takahiro Miyaura
3


# Page. 4

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

Mixed Reality Toolkit V3について
◼ 詳細が知りたい人はアーカイブへ
✓Tokyo HoloLens ミートアップ vol.29
~HoloLens日本上陸五周年記念！~
◼
Microsoft YoonさんからのV3に関する情報
✓
✓
✓
✓
経緯
アーキテクチャー
リリース計画
Etc…
動画を見たい方は・・・
HoloLens ミートアップのアーカイブは
Conpass等で後日共有予定
2022/01/19
Copyright © 2022 Takahiro Miyaura
4


# Page. 5

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

Mixed Reality Toolkit V3について
- ロードマップ
2022年春～夏にPublic Preview→その後リリース予定
2022/01/19
Development
Public Preview
Now
Spring/Summer ‘22
• Port core UX building blocks
• Internal Validation
• Performance Analysis
• OpenXR
• New Architecture based on XRI
• New Mixed Reality Design
Language
• Independent Subsystems
• UI Theme System
• Data Binding
• Collection Navigator
• Volumetric Layout Tools
Copyright © 2022 Takahiro Miyaura
Public Contributions
5


# Page. 6

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

Mixed Reality Toolkit V3について
- アーキテクチャ
フィードバックと業界標準のサポート
○非MRTKのコードと容易に統合可能
○独立したサブシステム
○MRTK V2を使いながらMRTK V3へ移行が可能
○エンタープライズ規模に対応したコンポーネント
○トクロスプラットフォームデバイスのサポー
○業界標準のサポート(最小要件の変更)
Unity XR Interaction Toolkit（XRI）
xRデバイスとコンテンツのInteraction
を抽象化しデバイス固有の実装を隠蔽
かすることでクロスプラットフォーム
開発を支援するための開発キット
2022/01/19
OpenXR
Unity 2020.3 LTS
xRコンテンツ開発を簡素化することを
目的としたクロスプラットフォームXR
体験を実現するための仕様およびSDK
xRコンテンツ開発を実現する3D開発プ
ラットフォーム
Copyright © 2022 Takahiro Miyaura
6


# Page. 7

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

Mixed Reality Toolkit V3について
- アーキテクチャ
使いたい部分を導入しながらコンテンツ開発の自由度を上げる構造
MRTK(No dependencies)
MRTK
Unity
Theming / Branding
Core UX
(Buttons, sliders, etc)
MRTK Interaction Layer
(Pointers, Gaze, Stateful
interactions)
XR Interaction Toolkit
Volumetric Layout
Data Binding
Accessibility
Tools
(Build Window, etc)
Input Simulator
Visualizations
(Spatial Mesh, Performance
Monitor, Boundary)
MRTK Subsystems
(Hands, Performance data, Speech, etc)
XR / AR Subsystems
Input System
OpenXR / Microsoft Extentions
2022/01/19
Copyright © 2022 Takahiro Miyaura
7


# Page. 8

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

Mixed Reality Toolkit V3について
- アーキテクチャ
使いたい部分を導入しながらコンテンツ開発の自由度を上げる構造
MRTK(No dependencies)
MRTK
Unity
Theming / Branding
Core UX
(Buttons, sliders, etc)
Volumetric Layout
【ポイント2】
Unityの標準の手段が
MRTK Interaction Layer
(Pointers, Gaze, Stateful
土台になっているInput Simulator
Data Binding
Accessibility
Tools
(Build Window, etc)
interactions)
XR Interaction Toolkit
XR / AR Subsystems
Input System
OpenXR / Microsoft Extentions
2022/01/19
Visualizations
(Spatial Mesh, Performance
Monitor, Boundary)
MRTK Subsystems
(Hands, Performance data, Speech, etc)
Copyright © 2022 Takahiro Miyaura
【ポイント1】
OpenXRが基本
8


# Page. 9

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

本日のお題
◼ OpenXR + XR Interaction Toolkitの話
✓ 実際にHoloLens2向けにサンプルを構築
✓ OpenXRのみでの開発（各種トラッキング、イベントの制御）
✓ OpenXR + XR Interaction Toolkitでの開発
✓ と言いながらXR Interaction ToolkitのVRサンプルをコンパクトにして設定方法を調べた
作ってみて気づいたことや、それぞれの話を簡単に。
なお、空間マッピングはまだ（ちょっとハードル高いｗ）
2022/02/16
Copyright © 2022 Takahiro Miyaura
9


# Page. 10

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

少しだけ技術の話
OpenXR
2022/02/16
Copyright © 2022 Takahiro Miyaura
10


# Page. 11

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

OpenXR
https://www.khronos.org/openxr/
デバイス固有の制御を隠蔽化し実装部分の共通化を図るための仕組み
HoloLens を made with Unityすると。。。
OpenXRを使う開発
Windows XR / Legacy XRを使う開発
2022/02/16
移植が容易
(Mixed Reality OpenXR Plugin)
Copyright © 2022 Takahiro Miyaura
11


# Page. 12

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

XR Interaction Toolkit
https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.0/manual/installation.html
デバイス操作とコンテンツ動作を容易に相互作用する
Interactors
Register
Register
選択したりするアク
ションを処理
Interaction Manager
InteractorsとInteractablesの管理と仲介
Action
Control
入力データを抽象化し、インターアク
ターがそれを使ってインタラクション
の状態（特に選択と起動）に変換する
方法を提供
2022/02/16
選択したり、アクティブに
することができるシーン内
のオブジェクト
Interactables
Select
Controllers
Interactables
基本的な部分は
Mixed Reality Toolkitの
Input Systemに似ている
Cursor,Focus,Pointer…
MRTKが操作とコンテン
ツをつなぐ…
Controllers
Copyright © 2022 Takahiro Miyaura
12


# Page. 13

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

OpenXRだけでHoloLens 2コンテンツ作る
割と面倒でした。。。
2022/02/16
Copyright © 2022 Takahiro Miyaura
13


# Page. 14

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

OpenXRだけでHoloLens 2コンテンツ作る
環境
今回は以下の環境
◼ Unity 2020.3.8f1(リビジョン注意!時々HoloLensに致命的なバグあり)
◼ Microsoft OpenXR Plugin 1.3.1 ※Mixed Reality Feature Toolでセットアップ
◼ Visual Studio 2019
2022/02/16
Copyright © 2022 Takahiro Miyaura
14


# Page. 15

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

OpenXRだけでHoloLens 2コンテンツ作る
◼ Tracked Pose Driverでデバイス操作と紐づけ
◼ Player Inputでデバイスのアクションと処理を紐づけ
【結構実装しないといけないです】
※デバイスのトラッキングまでは実装不要
オブジェクトの制御は要実装
✓ 手を認識→ハンドレイを表示
✓ ハンドレイがオブジェクトに衝突→オブジェクトを選択
✓ タップ→オブジェクトの色を変える
2022/02/16
Copyright © 2022 Takahiro Miyaura
15


# Page. 16

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

OpenXRだけでHoloLens 2コンテンツ作る
カメラ6DOF設定の例
Tracked Pose Driver(New Input System)をMainCameraに追加
Position Actionに
devicePosition [OpenXR HMD]を設定
Rotation Actionに
deviceRotation [OpenXR HMD]を設定
Tracked Pose Driverを追加するとデバイスの情報がオブジェクトに反映
OpenXR HMDなので頭の動きに追従
2022/02/16
Copyright © 2022 Takahiro Miyaura
16


# Page. 17

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

OpenXRだけでHoloLens 2コンテンツ作る
アクションの定義
Player Inputを利用
デバイス操作から必要なものを
アクションとして定義
アクションに対応する処理を
処理するメソッドを関連付ける
タップ操作でイベントを起こす場合
Input Action AssetにSelectPressedをアクションとして
定義する
2022/02/16
Copyright © 2022 Takahiro Miyaura
17


# Page. 18

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

OpenXRだけでHoloLens 2コンテンツ作る
アクションの定義
Input Action Assetはデバイス操作とアクションを紐づけ
デバイス操作をアクションとして定義
(左手のタップ操作をSelectアクションで定義)
2022/02/16
Copyright © 2022 Takahiro Miyaura
18


# Page. 19

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

OpenXRだけでHoloLens 2コンテンツ作る
色々頑張るといつものあれができます！
◼ 割り当てたアクション
✓
✓
✓
✓
Head Position(6DOF)
ハンドトラッキング（Palmのみ）
ハンドレイ
タップ操作でのアクション
◼ 実装例
✓ ハンドレイでフォーカス、タップでオブジェクトの色変更
✓ 空間でタップすると豆腐が生み出される
2022/02/16
Copyright © 2022 Takahiro Miyaura
19


# Page. 20

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

OpenXR + XR Interaction Toolkit
でHoloLens 2コンテンツ作る
ほとんどサンプルを流用しました。
ほとんど変更いらないです。
2022/02/16
Copyright © 2022 Takahiro Miyaura
20


# Page. 21

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

OpenXR + XR Interaction Toolkit でHoloLens 2コンテンツ作る
環境
今回は以下の環境
◼
◼
◼
◼
Unity 2020.3.8f1(リビジョン注意!時々HoloLensに致命的なバグあり)
Microsoft OpenXR Plugin 1.3.1 ※Mixed Reality Feature Toolでセットアップ
XR Interaction Toolkit 2.0.1
Visual Studio 2019
XR Interaction Toolkitのサンプル「Starter Assets」を流用
基本的にはこのサンプルの設定をHoloLens用に変えれば動きます。
2022/02/16
Copyright © 2022 Takahiro Miyaura
21


# Page. 22

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

OpenXR + XR Interaction Toolkit で
HoloLens 2コンテンツ作る
基本はOpenXRの時と同じ
◼ 基本的な設定
✓ Tracked Pose Driverでデバイス操作と紐づけ
✓ Input Action Managerを配置
✓ Interaction Managerを設置
◼ ハンドトラッキング制御
✓
✓
✓
✓
Action Based Controller Manager（なくてもいいかも）
XR Controller(Action-based)
XR Ray Interactor（ハンドレイ利用の場合）
XR Direct Interactor（つかむ動作用）
◼ 操作するオブジェクト
✓ XR Grab Interactable
2022/02/16
Copyright © 2022 Takahiro Miyaura
22


# Page. 23

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

OpenXRだけでHoloLens 2コンテンツ作る
カメラ6DOF設定の例
Tracked Pose Driver(Input System)をMainCameraに追加
Position Inputに
XRI Head/Positionを設定
Rotation Inputに
XRI Head/Positionを設定
考え方はOpenXRの時と一緒。
デバイスの動作を定義する方法がXRIではより共通化
2022/02/16
Copyright © 2022 Takahiro Miyaura
23


# Page. 24

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

OpenXRだけでHoloLens 2コンテンツ作る
アクションの定義
XRIでもデバイス操作とアクションを紐づけ
Tracked Pose Driver（カメラ用）
に紐づけたのはこの定義
2022/02/16
Copyright © 2022 Takahiro Miyaura
24


# Page. 25

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

OpenXRだけでHoloLens 2コンテンツ作る
オブジェクトの定義
操作対象オブジェクトにInteractableを設定
ここでInteraction Managerと紐づけ
◼ 動かしたいオブジェクトに追加
◼ 実行時にInteractableをInteraction Managerに自動登録
◼ InteractorからのアクションがInteraction Managerを経由
してInteractableに伝達
◼ 条件に応じて（フォーカス持ってる）制御
2022/02/16
Copyright © 2022 Takahiro Miyaura
25


# Page. 26

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

OpenXRだけでHoloLens 2コンテンツ作る
おおむね最小限になりました
◼ 割り当てたアクション
✓
✓
✓
✓
✓
Head Position(6DOF)
ハンドトラッキング（Palmのみ）
ハンドレイ（左手のみ）
つかむ制御(両手)
各オブジェクトへの操作
◼ 実装内容
✓ XRIのVRサンプルの一部を焼き直してHoloLens2用に
2022/02/16
Copyright © 2022 Takahiro Miyaura
26


# Page. 27

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

まとめ
◼ OpenXR + XR Interaction Toolkitの話
✓ 実際にHoloLens2向けにサンプルを構築
✓ OpenXRのみでの開発（各種トラッキング、イベントの制御）
✓ OpenXR + XR Interaction Toolkitでの開発
✓ と言いながらXR Interaction ToolkitのVRサンプルをコンパクトにして設定方法を調べた
✓
✓
✓
✓
2022/02/16
OpenXRのみでやるのはなかなか面倒
その面を補完できるのがXRIで使い勝手はMRTKに近い
XRIとMRTKが融合するととても便利そう
空間マッピングはいずれやっておきますｗ
Copyright © 2022 Takahiro Miyaura
27


# Page. 28

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

最後に
GitHubに今回作ったサンプルあげておきました
◼ https://github.com/TakahiroMiyaura/OpenXRHoloLensSamples
もう少し細かいことはQiitaにも書く予定
2022/02/16
Copyright © 2022 Takahiro Miyaura
28


# Page. 29

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

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


