276 Views
June 23, 22
スライド概要
Tokyo HoloLens ミートアップ vol.30(https://hololens.connpass.com/event/249363/)登壇資料。先日あったMixed Reality Dev Days 2022のMRTK3をセションをぎゅっと濃縮してMRTK3概要、基本的な話、興味深い機能の紹介。
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
Mixed Reality Toolkit 3 Recap 2022/06 Tokyo HoloLens ミートアップ Vol.30 takabrz1 Takahiro Miyaura
Microsoft MVP for Windows Development 2018-2022 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近はMixed Reality Toolkit 3と戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください
先日 Mixed Reality Dev Days 2022が開催 色々話があって面白かったですね!!! 2022/6/23 Copyright © 2022 Takahiro Miyaura 3
Mixed Reality Dev Daysとは だいたい春頃に開催さるMicrosoft社のMRの開発技術イベント コロナ禍でしばらくはオンラインだったが今回からオフラインでも開催 ◼ 今回は以下の技術に関するセッション ✓ ✓ ✓ ✓ ✓ ✓ ✓ Mixed Reality Toolkit 3 Stereokit OpenXR, Unity XR Interaction Toolkit Unreal Engine 5 (+ Deep Learning) Azure Remote Rendering Moving Platform HoloLens 2 Power Thermal Notification SDK オンライン配信はMRTK3のみでしたが 今は全セッションアーカイブ公開されてます。 https://www.youtube.com/watch?v=U1BSqLbWPM&list=PLlrxD0HtieHhkPlibqfQf1pGvM0vLNPpL 2022/6/23 Copyright © 2022 Takahiro Miyaura 4
ということでMRDD2022から Mixed Reality Toolkit 3関連の情報を なのですが・・・ 2022/6/23 Copyright © 2022 Takahiro Miyaura 5
全部で6セッションあるんですよね。。。 twitterで5セッションって言ってた気がしますが、数えたら数合わないですね・・・ 1. Introducing MRTK3 – Shaping the future of the MR Developer Experience. →過去のMRTKの取組みから振返り、MRTK3がどういったコンセプトで今回作られたのか 【見所】このセッションで紹介されているサンプルはとてもよくできている & 名前の由来 2. Getting started with your first MRTK3 project →MRTK3動かしてみようぜ 【見所】とりあえずやってみたい人はこれ見ればOK 3. MRTK3 Interaction building blocks →MRTK3の入力系についての設計や構造 【見所】徹夜&早朝では難易度ナイトメア 4. Building Rich UI for MR in MRTK3 →MRTK3の素敵なUIをどう構築しているか 【見所】今回のUIコンセプトの話(丸みを帯びてるとか色々) 5. Working with Dynamic Data and Theming in MRTK3 →データバインディングとテーマ制御について 【見所】とりあえず全部。データバインディングは特に 6. Deploy Everywhere with OpenXR and MRTK3 →MRTK3のOpenXR対応で色々デバイスで動く話 【見所】LiveデモでHoloLens 2とMeta Quest 2のリモートデバッグ 2022/6/23 Copyright © 2022 Takahiro Miyaura 6
全部で6セッションあるんですよね。。。 twitterで5セッションって言ってた気がしますが、数えたら数合わないですね・・・ 1. Introducing MRTK3 – Shaping the future of the MR Developer Experience. →過去のMRTKの取組みから振返り、MRTK3がどういったコンセプトで今回作られたのか 【見所】このセッションで紹介されているサンプルはとてもよくできている & 名前の由来 2. Getting started with your first MRTK3 project →MRTK3動かしてみようぜ 【見所】とりあえずやってみたい人はこれ見ればOK 3. MRTK3 Interaction building blocks →MRTK3の入力系についての設計や構造 【見所】徹夜&早朝では難易度ナイトメア 4. Building Rich UI for MR in MRTK3 →MRTK3の素敵なUIをどう構築しているか 【見所】今回のUIコンセプトの話(丸みを帯びてるとか色々) 5. Working with Dynamic Data and Theming in MRTK3 →データバインディングとテーマ制御について 【見所】とりあえず全部。データバインディングは特に 6. Deploy Everywhere with OpenXR and MRTK3 →MRTK3のOpenXR対応で色々デバイスで動く話 【見所】LiveデモでHoloLens 2とMeta Quest 2のリモートデバッグ 需要があれば前向きにやりますよ! (な け れ ば 1人 モク モクし ておき ます) 独断と偏見で一部をチョイス 時間がいくらあっても足りなくなるので機能に ついては簡単な機構程度にとどめます。 (後日詳細化とハンズオンしようかな。。。) タグ「#Holomagicians #HoloLens」で需要あるか見ときます 2022/6/23 Copyright © 2022 Takahiro Miyaura 7
本日の内容 ◼ Mixed Reality Toolkit 3の概要 ✓ ✓ ✓ Mixed Reality Toolkit 3に至る経緯 ポイント アーキテクチャ、パッケージ構造 ◼ Get Started(ここは事前に記事書けた。。。) ✓ ✓ ✓ パッケージ導入 Unity上の設定(OpenXR,MRTK) シーン設定 以下はサンプルを交えながら・・・ ◼ MRTK3からのUI表現 ◼ Data Binding And Theming 2022/6/23 Copyright © 2022 Takahiro Miyaura 詳細になりすぎないよう努めますがそれでも いっぱいいっぱいなので、 時間が迫ってきたら駆け足になるかもです。 そうならないように応援をお願いしいますw 8
Mixed Reality Toolkit 3はPublic Preview版だから 検証目的で使ってね! Microsoft 公式でもそう書かれています。 2022/6/23 Copyright © 2022 Takahiro Miyaura 9
Mixed Reality Toolkit 3 Mixed Reality Toolkit 3に至る経緯 2022/6/23 Copyright © 2022 Takahiro Miyaura 10
Mixed Reality Toolkit 3に至る経緯 - Mixed Reality Toolkit とは Unity向けのMicrosoft公式のOSSライブラリ Holotoolkit HoloLens向け ◼Unity向け ◼クロスプラットフォーム ◼最新バージョンはV2.8.0 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール ※Unreal向けのMRTKもあります。 ※実はBabylon.js版もある 2022/6/23 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 11
Mixed Reality Toolkit 3に至る経緯 - Mixed Reality Toolkit V2までで抱えている課題 コミュニティからのフィードバック 便利さゆえに・・・ ○コンポーネントの課題→管理単位が大きい(MRTKという単位) ◦各サブシステムが大きく、個別で活用できない ◦UX部品の使いやすさを重視した結果、カスタマイズが困難 & Prefabが膨大に ◦パフォーマンスの劣化が大きくなっている ○開発環境の課題 ◦Unity2018のサポート終了 ◦LegacyXRのサポート終了 ◦業界標準への対応 2022/6/23 Copyright © 2022 Takahiro Miyaura 12
Mixed Reality Toolkit 3に至る経緯 - 業界標準への対応 早期にCross Platform対応を進めてきた結果。。。 ○OpenXRが後追いで公開されている ◦MRTK V2のInput Providerは各XRデバイスのSDKを隠蔽化し共通化 ○Unity XR Interaction Toolkitも後追いでできた ◦Input Providerからの入力をどのアクションに割当てるか定義する機能を持っている 世の中にクロスプラットフォーム向けの便利なものがなかった ライブラリ内で構築した結果、現在はそれ自体が冗長になっている 2022/6/23 Copyright © 2022 Takahiro Miyaura 13
Mixed Reality Toolkit 3 ポイント 2022/6/23 Copyright © 2022 Takahiro Miyaura 14
MRTK3のポイント 既存ライブラリへの対応、標準化 ✓ MRTK V2までで持つしかなかった機能や仕組みを改めて既存ライブラリを利用するように変更 引 用 元 :Microsoft Developer,「 Getting started with your first MRTK3 project」 , https://youtu.be/aVnwIq4VUcY, (参 照 2022/06/11) 業界標準、冗長な機能に対応するためのリファクタリングにより 扱いやすいライブラリへ 2022/6/23 Copyright © 2022 Takahiro Miyaura 15
MRTK3のポイント (参考)開発環境とパッケージ要件 開発に必要な環境とパッケージ ○ 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を導入すると自動的に依存関係のあるpa ckageとしてインポートされます。 2022/6/23 Copyright © 2022 Takahiro Miyaura 16
Mixed Reality Toolkit 3 アーキテクチャ、パッケージ構造 2022/6/23 Copyright © 2022 Takahiro Miyaura 17
Mixed Reality Toolkit 3 アーキテクチャ、パッケージ構造 アーキテクチャはこういう感じです。 ✓ ✓ MRTK V2までで持つしかなかった機能や仕組みを改めて既存ライブラリを利用するように変更 各機能をパッケージとして分割し依存性を排除 引 用 元 :Microsoft Developer,「 Getting started with your first MRTK3 project」 , https://youtu.be/aVnwIq4VUcY, (参 照 2022/06/11) 依存関係も見直しが入っており扱いやすく 2022/6/23 Copyright © 2022 Takahiro Miyaura 18
Mixed Reality Toolkit 3 パッケージ構造 細かくなりました。 ポイント MRTK3からは機能毎にパッケージングし細分化、それぞれにバージョンをつける 機能毎に細分化したことで修正時の パッケージの範囲も小さくなりリリー スサイクルを短縮できる 引 用 元 :Microsoft Developer,「 Getting started with your first MRTK3 project」 , https://youtu.be/aVnwIq4VUcY, (参 照 2022/06/11) ゆえに MRTK V3 ではなく MRTK3 となっている 3はバージョンではなく第3世代という意味 2022/6/23 Copyright © 2022 Takahiro Miyaura 19
Mixed Reality Toolkit 3 (参考)MRTK3のバージョン ◼こういう感じで機能毎にバージョニングされます パッケージ名 バージョン com.microsoft.mrtk.accessibility 1.0.0-pre.6 com.microsoft.mrtk.core 3.0.0-pre.6 com.microsoft.mrtk.data 1.0.0-pre.6 MRTK3からの新機能なのでV1から始まってる MRTK3からの新機能なのでV1から始まってる com.microsoft.mrtk.diagnostics 3.0.0-pre.6 com.microsoft.mrtk.environment 3.0.0-pre.6 com.microsoft.mrtk.extendedassets 3.0.0-pre.6 com.microsoft.mrtk.graphicstools.unity 2022/6/23 0.3.15 com.microsoft.mrtk.input 3.0.0-pre.6 com.microsoft.mrtk.spatialmanipulation 3.0.0-pre.6 com.microsoft.mrtk.standardassets 3.0.0-pre.6 com.microsoft.mrtk.uxcomponents 3.0.0-pre.6 com.microsoft.mrtk.uxcore 3.0.0-pre.6 com.microsoft.mrtk.windowsspeech 3.0.0-pre.6 Copyright © 2022 Takahiro Miyaura 20
Get Started とりあえずMRTK3やってみよう 2022/6/23 Copyright © 2022 Takahiro Miyaura 21
Get Started 話すと長くなるので全体的には・・・ ○Qiitaにまとめています。 ○Getting started with your first MRTK3 project https://qiita.com/miyaura/items/df5947d45cb3b86bbf18 ○MRTK3について ○空のプロジェクトの作成~デプロイ ○Hand Interaction Example等のサンプルについて 2022/6/23 Copyright © 2022 Takahiro Miyaura 22
Get Startedはこんな感じ HoloLens 2で動かす! Meta Quest 2で動かす! 2022/6/23 Copyright © 2022 Takahiro Miyaura 23
Get Started 大雑把な手順は・・・ Unityで空プロジェクト作ってMRTK3のUI部品を使うまで 1. 2. 3. 4. Unityで空プロジェクト作成 1のプロジェクトにMixed Reality Feature Toolで必要なパッケージをインポート OpenXRとMRTKの設定 Hierarchyの設定(この作業までするとベースが完成) ✓ Main Cameraの削除 ✓ MRTK XR Rigの追加 ✓ MRTK Input Simulatorの追加 5. ボタンといくつかのUI部品を追加 6. ビルド&デプロイ(HoloLens 2 or Meta Quest 2) 7. 2022/6/23 |・ω・’)b Copyright © 2022 Takahiro Miyaura 24
Get Started MRTK3の既知の問題(先日試した時点で) ○OpenXR対応なのでMeta Quest 2でも動きます ○ハンドトラッキングできます ○人差し指で押せます ○モーションコントローラは使えます !モーションコントローラは見えないです(今日時点) !ハンドレイは未サポートです(今日時点) !ジェスチャーも未サポートです(今日時点) 2022/6/23 Copyright © 2022 Takahiro Miyaura 25
Get Started パッケージ導入 2022/6/23 Copyright © 2022 Takahiro Miyaura 26
Get Started パッケージ導入 導入はMixed Reality Feature Toolを利用 MRTK3はこれをインポート ○ MRTK Input(3.0.0-pre.6) ○ MRTK Standard Assets(3.0.0-pre.6) ○ MRTK UX Conpoments(3.0.0-pre.6) ○ Mixed Reality OpenXR Plugin(1.4.1) 必要なコンポーネントの設定 Preview releaseの表示 MRTK3関連に加えてOpenXR Pluginの 追加も忘れずに! 任意で空間オーディオライブラリも使 えます。 MRTK3はまだPublic Preview版なので Mixed Reality Feature Tool使うために は設定変更が必要 2022/6/23 Copyright © 2022 Takahiro Miyaura 27
Get Started Unity上の設定(OpenXR,MRTK) 2022/6/23 Copyright © 2022 Takahiro Miyaura 28
Get Started Unity上の設定(OpenXR,MRTK OpenXR関連の設定は以前と同じです 2022/6/23 Copyright © 2022 Takahiro Miyaura 29
Get Started Unity上の設定(OpenXR, MRTK) Project Settingsで行います デプロイするプラットフォーム毎に 設定が必要 ○ デフォルト設定はパッケージ内 にあるProfileを使う ○ Input Simulatorを使う場合 ○ Susbsystem for Hand Synthesis のチェックを忘れずに 2022/6/23 Copyright © 2022 Takahiro Miyaura 30
Get Started シーン設定 2022/6/23 Copyright © 2022 Takahiro Miyaura 31
Get Started シーン設定 必要なPrefabは提供されている (現状は自分で設定する) ○ MRTK XR Rig ○ カメラ、コントローラ等 ○ MRTK Input Simulator ○ Editor上のデバッグで使う Projectタブで検索して追加する ※In PackageかAllで検索してね 2022/6/23 Copyright © 2022 Takahiro Miyaura 32
MRTK3からのUI表現 2022/6/23 Copyright © 2022 Takahiro Miyaura 33
MRTK3からのUI表現 Microsoft Meshベースのデザインです 引 用 元 :Microsoft Developer,「 Building Rich UI for MR in MRTK3」 , https://youtu.be/g2HF5HMy-2c, (参 照 2022/06/11) 2022/6/23 Copyright © 2022 Takahiro Miyaura ポイント ○ 丸みを帯びたデザイン ○ 背景に薄くグレーを入れる (境界を可視化) 34
MRTK3からのUI表現 Volumetric UI With Unity Canvas UGUIをベースにした可変レイアウトに対応 レイアウトの調整を柔軟に行えるようになった 2022/6/23 Copyright © 2022 Takahiro Miyaura 35
MRTK3からのUI表現 Volumetric UI With Unity Canvas UGUI側イベントはProxy XRI Interactorでフィードバック 従来のXRIでの関係 UGUIのイベントを XRI Interactorに通して 処理を可能にする 2022/6/23 Copyright © 2022 Takahiro Miyaura 36
Data Binding 2022/6/23 Copyright © 2022 Takahiro Miyaura 37
Data Binding Dataに応じてコンテンツを動的に制御する Json形式データをバインディングしてコンテンツに反映 [ { DataSource "ID": "MRTK0001", "Name": "MRTK3 is amazing." 何かから情報を取ってきて管理 (このサンプルではJson形式で管理) }, {…},… ] Consumer系コンポーネント DataSourceに従って動的にコンテンツを 調整 ※テキストを動的に変えるときは DataConsumerTextコンポーネントを利用 Dictionary系コンポーネント Json等のキー変換テーブルを管理 ページ切替用コンポーネント 2022/6/23 Copyright © 2022 Takahiro Miyaura Collection系で利用するとページャー機能をつ けることができる 38
Theming 2022/6/23 Copyright © 2022 Takahiro Miyaura 39
Theming 統一そた色や音でコンテンツを動的に切り替える仕組み アクセシビリティや、モードの区別などで活用 どういう変更を行うかは UX Theme Profileで定義 • UX部品に応じて以下情報を定義可能 • 色などのマテリアル • フォント系 • 効果音 Data Source Theme Provider 何かから情報を取ってきて管理 (このサンプルではJson形式で管理) Theme Selector 複数のテーマを登録し管理。 Current Themeを変更すると Data Source Theme Providerが変更 2022/6/23 Copyright © 2022 Takahiro Miyaura 40
以上! 2022/6/23 Copyright © 2022 Takahiro Miyaura 41
まとめ ◼ Mixed Reality Toolkit 3の概要 ✓ Mixed Reality Toolkit 3の「3」は第3世代を意味 ✓ 従来のパッケージング構成を変更して細分化→バージョニングはそれぞれで ✓ OpenXR、XRI等機能が重複するものはシンプルに ◼ Get Started(ここは事前に記事書けた。。。) ✓ MRTK3はpublic previewなのでMixed Reality Feature Toolでshow preview releaseを ✓ OpenXRはこれまでと同じ。MRTK3での設定はProject Settingsで ✓ 必要なモジュールは「MRTK XR Rig」、デバック実行には「MRTK Input Simulator」も。MRTKの設定は忘れないでね ◼ MRTK3からのUI表現 ✓ ✓ ✓ ✓ Microsoft Meshのような丸みを帯びたデザイン。 色見は少し明るくなった。 操作感は依然と同じライティングや音と使った表現 ThemingによりUIカスタマイズや、アクセシビリティ対応も ◼ Data Binding And Theming ✓ 利用時にはシンボル定義「MRTK_UX_DATABINDING_THEMING_ENABLED 」が必要 ✓ DataBinding ✓ テキスト等を後から動的に差し込むことが可能 ✓ コレクションにも対応し、データに応じてオブジェクトで一覧表示も ✓ Theming ✓ 動的にテーマ(マテリアルや音声)変更が可能 2022/6/23 Copyright © 2022 Takahiro Miyaura 42
MRTK3に関する情報 ◼ Github - Mixed Reality Toolkit 3 ✓ https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk3 ◼ MTRK3ドキュメント ✓ https://aka.ms/mrtk3 ◼ MRTK3 Tutorial : "Zappy's Playground" ✓ https://aka.ms/ZappysPlayground ◼ Mixed Reality Dev Days 2022 ✓ 再生リスト:https://www.youtube.com/watch?v=U1BSqLbW-PM&list=PLlrxD0HtieHhkPlibqfQf1pGvM0vLNPpL 1. Introducing MRTK3 – Shaping the future of the MR Developer Experience.(https://youtu.be/fjQFkeF-ZOM) →過去のMRTKの取組みから振返り、MRTK3がどういったコンセプトで今回作られたのか 2. Getting started with your first MRTK3 project(https://youtu.be/aVnwIq4VUcY) →MRTK3動かしてみようぜ 3. MRTK3 Interaction building blocks(https://youtu.be/naVziEJ-yDg) →MRTK3の入力系についての設計や構造 4. Building Rich UI for MR in MRTK3(https://youtu.be/g2HF5HMy-2c) →MRTK3の素敵なUIをどう構築しているか 5. Working with Dynamic Data and Theming in MRTK3(https://youtu.be/IiTpZ2ojyno) →データバインディングとテーマ制御について 6. Deploy Everywhere with OpenXR and MRTK3(https://youtu.be/LI6lyW9TG9o) →MRTK3のOpenXR対応で色々デバイスで動く話 2022/6/23 Copyright © 2022 Takahiro Miyaura 43
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ 2022/6/23 Copyright © 2022 Takahiro Miyaura 44