---
title: Mixed Reality Toolkit 3の便利な機能 - Data Binding周りを調べてみる
tags:  #xrmtg #mrtk3 #mixed reality  
author: [Miyaura](https://www.docswell.com/user/m-taka596)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE1VDZPD7G.jpg?width=480
description: XRミーティング 2022/11/16登壇資料。 Mixed Reality Toolkit 3で提供される予定のData bindingの機能について調べた途中経過を共有。
published: November 16, 22
canonical: https://www.docswell.com/s/m-taka596/K9XJ95-MRTK3-DataBinding-20221116
---
# Page. 1

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

Mixed Reality Toolkit 3の便利な機能
Data Binding周りを調べてみる
2022/11
XRミーティング
takabrz1
Takahiro Miyaura


# Page. 2

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

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


# Page. 3

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

本日の内容
○ Mixed Reality Toolkit 3のData Binding調べる
○おさらい
○Data Binding調べる
色々と便利ですよ、Data Binding
2022/11/16
Copyright © 2022 Takahiro Miyaura
3


# Page. 4

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

Mixed Reality Toolkit 3
おさらい
2022/11/16
Copyright © 2022 Takahiro Miyaura
4


# Page. 5

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

Mixed Reality Toolkit 3おさらい
- Mixed Reality Toolkit とは
Unity向けのMicrosoft公式のOSSライブラリ
Holotoolkit
Mixed Reality Toolkit 3は
Public Preview版だから
検証目的で使ってね！
HoloLens向け
◼Unity向け
◼クロスプラットフォーム
◼最新バージョンはV2.8.2
✓基本コンポーネント
✓共通のインタラクション
✓UIコントロール
※Unreal向けのMRTKもあります。
※実はBabylon.js版もある
2022/11/16
Mixed Reality Toolkit
Windows Mixed Reality Devices対応
Mixed Reality Toolkit V2
HoloLens 1/2,VR Devices,Mobile AR…
Mixed Reality Toolkit 3
New!!!
Copyright © 2022 Takahiro Miyaura
5


# Page. 6

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

Mixed Reality Toolkit 3おさらい
ポイント
既存ライブラリへの対応、標準化
✓
MRTK V2までで持つしかなかった機能や仕組みを改めて既存ライブラリを利用するように変更
引用元:Microsoft Developer,「Getting started with your first MRTK3 project」, https://youtu.be/aVnwIq4VUcY, (参照2022/06/11)
業界標準、冗長な機能に対応するためのリファクタリングにより
扱いやすいライブラリへ
2022/11/16
Copyright © 2022 Takahiro Miyaura
6


# Page. 7

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

Mixed Reality Toolkit 3おさらい
ポイント
機能毎のバージョニングに変更となった
パッケージ名
バージョン
com.microsoft.mrtk.accessibility
1.0.0-pre.12
com.microsoft.mrtk.core
3.0.0-pre.12
com.microsoft.mrtk.data
1.0.0-pre.12
com.microsoft.mrtk.diagnostics
3.0.0-pre.12
com.microsoft.mrtk.environment
3.0.0-pre.12
com.microsoft.mrtk.extendedassets
3.0.0-pre.12
MRTK3からの新機能なのでV1から始まってる
MRTK3からの新機能なのでV1から始まってる
com.microsoft.mrtk.graphicstools.unity
2022/11/16
0.4.0
com.microsoft.mrtk.input
3.0.0-pre.12
com.microsoft.mrtk.spatialmanipulation
3.0.0-pre.12
com.microsoft.mrtk.standardassets
3.0.0-pre.12
com.microsoft.mrtk.uxcomponents
3.0.0-pre.12
com.microsoft.mrtk.uxcore
3.0.0-pre.12
com.microsoft.mrtk.windowsspeech
3.0.0-pre.12
Copyright © 2022 Takahiro Miyaura
7


# Page. 8

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

Mixed Reality Toolkit 3おさらい
現時点でのサポートデバイス
随時追加しているのでExperimental（試験的）が多め
Platform
Supported Devices
OpenXR devices
○ Microsoft HoloLens 2
○ Meta Quest 1/2
○ Windows Mixed Reality (experimental)
○ SteamVR (experimental)
○ Oculus Rift on OpenXR (experimental)
○ Varjo XR-3 (experimental)
Windows
○ Traditional flat-screen desktop (experimental)
And more coming soon!
OpenXRに対応していると大抵動く
XRI対応でデバイス対応はかなり楽になってる印象
2022/11/16
Copyright © 2022 Takahiro Miyaura
8


# Page. 9

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

Mixed Reality Toolkit 3おさらい
現時点でのサポートデバイス
先日試したらMeta Quest Pro上でも動きました。
2022/11/16
Copyright © 2022 Takahiro Miyaura
9


# Page. 10

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

Mixed Reality Toolkit 3おさらい
（参考）開発環境とパッケージ要件
開発に必要な環境とパッケージ(HoloLensの場合)
○ Mixed Reality Feature Tool
○ Unity 2020.3.35,2021.3.4 or newer
○ packages
✓ Mixed Reality OpenXR Plugin(from Mixed Reality Feature Tool)
✓ Input System*
✓ XR Management*
✓ XR Interaction Toolkit*
✓ OpenXR Plugin*
○ Visual Studio 2022
✓ Windows 10 SDK version 10.0.19041.0 or 10.0.18362.0, or Windows 11 SDK
✓ USB Device Connectivity (required to deploy/debug to HoloLens over USB)
✓ C++ (v142) Universal Windows Platform tools (required when using Unity)
＊印はMRTK3を導入すると自動的に依存関係のあるpackageとしてインポートされます。
2022/11/16
Copyright © 2022 Takahiro Miyaura
10


# Page. 11

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

本日の内容
○ Mixed Reality Toolkit 3のData Binding調べる
○おさらい
○DataBinding調べる
色々と便利ですよ、Data Binding
2022/11/16
Copyright © 2022 Takahiro Miyaura
11


# Page. 12

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

MRTK3
Data Bindingとは
2022/11/16
Copyright © 2022 Takahiro Miyaura
12


# Page. 13

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

MRTK3 Data Bindingとは
（参考）開発環境とパッケージ要件
コンポーネントなどに後付けで動的データを扱う
動的にデータを入れ替えたり、スタイルを変更する
2022/11/16
Copyright © 2022 Takahiro Miyaura
13


# Page. 14

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

MRTK3 Data Bindingだけ試すなら
必要なパッケージ
Mixed Reality Feature Toolで設定
MRTK3はこれをインポート
○ MRTK Data Binding and Theming Early Preview(1.0.0-pre.12)
○ MRTK Input(3.0.0-pre.12)
○ MRTK Standard Assets(3.0.0-pre.12)
○ MRTK UX Conpoments(3.0.0-pre.12)
○ Mixed Reality OpenXR Plugin(1.6.0)
必要なコンポーネントの設定
MRTK3関連に加えてOpenXR Pluginの追加も忘れずに！
任意で空間オーディオライブラリも使えます。
2022/11/16
Copyright © 2022 Takahiro Miyaura
14


# Page. 15

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

とりあえず試すなら
Mixed Reality Toolkit のGithubのサンプルがいいです。
MRTK3はこれをインポート
○ https://github.com/microsoft/MixedRealityToolkit-Unity/
○ ブランチを「mrtk3」に
○ ルートにUnityProjectsフォルダがある
○ この下にサンプルが入っている
Unityのバージョン
現在はUnity 2020.3.38f1です。
2022/11/16
Copyright © 2022 Takahiro Miyaura
15


# Page. 16

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

とりあえず試すなら
Assets/Data Binding Example/Scenesの中にサンプルあり
2022/11/16
Copyright © 2022 Takahiro Miyaura
16


# Page. 17

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

ちょっとだけやってみよう
2022/11/16
Copyright © 2022 Takahiro Miyaura
17


# Page. 18

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

ちょっとだけやってみよう
Textの{{ samplename }}を変更する
Microsoft.MixedReality.Toolkit.Data.DataSourceGOBase
○ 動的データ管理するためのコンポーネントを作成する基底クラス
○ このくらいを継承して自分好みのDataSourceを作成する
Microsoft.MixedReality.Toolkit.Data.DataConsumerText
○ 配下にあるText系コンポーネントを検索しDataSouceの値を引当てる
2022/11/16
Copyright © 2022 Takahiro Miyaura
18


# Page. 19

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

デモ
作ったコード：samplenameという名前で値が置き換わる
using
using
using
using
Microsoft.MixedReality.Toolkit.Data;
System.Collections;
System.Collections.Generic;
UnityEngine;
public class SampleSourceReflection : DataSourceGOBase
{
private float _deltaSeconds;
private int _nextFiveSecondTarget;
private System.Random _random = new System.Random();
private string[] _names = { &quot;Sample 1&quot;, &quot;Data 1&quot;, &quot;Demo 1&quot;, &quot;XRMTG!!!&quot;};
protected override void InitializeDataSource()
{
InitializeData();
_deltaSeconds = 0;
}
private void Update()
{
_deltaSeconds += Time.deltaTime;
int tenthsOfSeconds = (int)(_deltaSeconds * 10.0);
DataChangeSetBegin();
if (tenthsOfSeconds &gt; _nextFiveSecondTarget)
{
_nextFiveSecondTarget += 50;
SetValue(&quot;samplename&quot;, _names[_random.Next(0, _names.Length)]);
}
DataChangeSetEnd();
}
private void InitializeData()
{
DataChangeSetBegin();
SetValue(&quot;samplename&quot;, _names[0]);
DataChangeSetEnd();
}
/// &lt;summary&gt;
/// A class to contain data that is to be used as a data source. This is akin to a view model
/// that will be used to populate a view.
/// &lt;/summary&gt;
private class TestInfo
{
public string samplename;
}
オブジェクトに以下を配置
○ Data Consumer Text
○ 今回作ったDataSource
private TestInfo _dataSourceObject = new TestInfo();
/// &lt;summary&gt;
/// IDataSourceProvider method used to provide the correct
/// data source, which in this case is the DataSourceReflection instance with
/// the specified _dataSourceObject attached to it to provide the actual
/// data using reflection.
/// &lt;/summary&gt;
public override IDataSource AllocateDataSource()
{
return new DataSourceReflection(_dataSourceObject);
}
}
2022/11/16
Copyright © 2022 Takahiro Miyaura
19


# Page. 20

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

デモ
置き換えるところは {{ samplename }}で！
子のオブジェクトとして。。。
○ TextMesh Proなどを置く
2022/11/16
Copyright © 2022 Takahiro Miyaura
20


# Page. 21

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

様々な動的データに対応
現状、標準でいろいろ機能がある。
○Audio CLip
○URLからImageやテクスチャーに張り付ける
○Material
○Sprite
○Text
○Theme（テーマ切替用）
2022/11/16
Copyright © 2022 Takahiro Miyaura
21


# Page. 22

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

本日の内容
○ Mixed Reality Toolkit 3のData Binding調べる
○動的なデータ置換えが行える
○動的データに合わせてオブジェクト生成する機能もある
○見た目をボタン１つで変えるThemingの機能も
正式にリリースされるのが楽しみ！
2022/11/16
Copyright © 2022 Takahiro Miyaura
22


# Page. 23

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

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


