Overview
ついに先日 Mixed Reality Toolkit - Unity ( 以下、MRKT ) v2.5 がリリースされました 🎉
- Mixed Reality Toolkit v2.5.0 ( GitHub )
以下 Release Notes ( Draft時の内容含む ) を日本語訳しながら解説したいと思います。機械翻訳ではなく、自力で翻訳 ( + 所感 ) しているのでフィードバック等あればお気軽にコメントいただければと思います。
リリース翌日に公開した資料も宜しければご覧ください。
Mixed Reality Toolkit v2.5.0 Release notes を紐解く ( SpeakerDeck )
Agenda
- What's new / 新しくなったポイント
- Breaking changes / 破壊的な変更点
- Update guidance / 前バージョンからのアップデート
- Known issues / 既知の問題
今回の記事では MRTK v2.5.0 Release Notes に含まれる What's new の内容についてご紹介いたします。
What's new
今回のバージョンアップでは、大きく22個 ( Release notes What's new 項目数 ) のアップデートが含まれています。

1. Unity Package Manager (UPM) support
Unity Package Manager を使った MRTK のインポート
MRTK v2.5 から Unity Package Manager ( 以下、UPM ) を通じて を プロジェクトに組み込むことができるようになりました。本機能は Unity 2019.4 以降の Unity バージョンで使用可能 です。
グローバルメニュー > Window > Package Manager
【 注意点 】 MRTK の UPM ( Unity Package Manger ) パッケージをインポートするためには、いくつか手動で作業が必要となります。詳しい情報が欲しい方は 「Mixed Reality Toolkit and Unity Package Manager」 をご覧ください。
また Unity Package Manager を使用してインポートした場合と、GitHub上から .unitypackage をダウンロードの上、手動インポート場合ではディレクトリパスが異なるので合わせて注意が必要となります。
インポート方法 | MRTK ディレクトリパス |
---|---|
UPMインポート時 | ..\Packages\Mixed Reality Toolkit Foundation ..\Packages\Mixed Reality Toolkit Tools ..\Packages\Mixed Reality Toolkit Extensions ..\Packages\Mixed Reality Toolkit Examples etc.. |
手動インポート時 | ..\Assets\MRTK\Core ..\Assets\MRTK\Provider ..\Assets\MRTK\SDK ..\Assets\MRTK\Services etc.. |
ちょまどさんが日本語で Unity Package Manager を使った MRTK v2.5 インポート方法をまとめられていたので、日本語で読みたいという方は「MRTK 2.5 を Unity Package Manager を使って取り込む」をご覧ください。
2. Oculus Quest XRSDK support
Oculus Quest を ネイティブ XRSDK でサポート
MRTKは ネイティブ XR SDK パイプラインを使用した Oculus Quest ヘッドセットとコントローラーでの動作をサポートしました。ハンドトラッキングもまた Eric Provencher 氏の #MRTK-Quest の取り組みによって、Oculus Integration Unity パッケージでサポートされています。
新しいパイプラインを用いて Oculus Quest へデプロイする方法については「Oculus Quest Setup Guide」をご覧ください。
Oculus Quest 環境セットアップ方法は Microsoft MVP for Windows Development の宮浦さんが Qiita に記事を書かれているので、以下記事をご覧ください。
とりあえず、Oculus Quest 2が来たので #MRTK 動かしてみる。V2.5.0でハンドトラッキングできるのを確認。#OculusQuest2 pic.twitter.com/mwHUZt8rIe
— takabrz1@MRTKV2とAzure Spatial Anchorsと格闘中 (@takabrz1) October 15, 2020
3. Scrolling Object Collection
スクロール可能なオブジェクトコレクション
前回バージョンまで MRTK UX Component の Experimental Feature ( 実験的機能 ) の1つであった Scrolling Object Collection
がアップグレードされ、正式な機能として実装されました。コライダーの設定されていないゲームオブジェクトも新たにサポートされ、大きさの異なる様々なサイズの3Dオブジェクトを今まで以上に気軽にレイアウトすることができるようになるための UX コンポーネントです。
#MRTK v2.5.0 にて
— Futo Horio (@Futo_Horio) October 1, 2020
実験的機能 (Experimental) から
標準機能にアップデートされた
Scrolling Object Collection
コリジョン未設定のオブジェクトや
大きさの異なるオブジェクトなどを
まとめて自由にレイアウト可能🎉#MRTK #HoloLens2 pic.twitter.com/1J3AlfizFB
※ MRTK UX Component ( Experimental ) は、現在実装途中であり、時間の経過と共に変更が加わる可能性のある新たな機能を開発者がいち早く検証できるよう提供されている実験的な取り組みです。

ScrollingObjectCollection (Script) にてゲームオブジェクトのレイアウト ( Pagination
) 、スクロール時の速度 ( Velocity
) などを簡単に設定することが可能です。
詳しい設定方法等は「Scrolling Object Collection」をご覧ください。
4. Teleport pointer animation, handling, and sound improvements
テレポートポインターのアニメーション、ハンドリング、音響効果の向上 (VR)
主にVR端末向けですが、テレポートポインターのアニメーションと音声フィードバックが向上しました。また、テレポートポインターの処理内容を改善し、近くの境界面を指す状態から遠くの境界面を指すようにポインターを移動させた際の処理を円滑に行えるようにしました。

アニメーションで確認したい方は__こちら__をご覧ください。
5. Input Simulation Cheat Sheet
入力シミュレーションチートシート ( Unity Editor Play モード )
Unity Editor ゲーム再生中 ( Play Mode ) に入力シミュレーションのチートシートを表示できるショートカットが追加されました。

Unity Editor 上でゲーム再生 (Play) を行った状態で ショートカット ( 左Ctrl + H ) を押下することで、チートシートの表示/非表示の切り替えを行うことができます。

※ 本機能は HandInteractionExample.unity (サンプルシーン) にてデフォルトで含まれている機能ですが、他のサンプルシーン or ご自身で作られたシーンで使用するためには 「Prefab : Help_Panel_Viewer」を追加する必要があるのでご注意ください。
( Prefab パス : Packages/com.microsoft.mixedreality.toolkit.examples/Common/Prefabs/Help_Panel_Viewer.prefab
)
6. Input Simulation Eye Gaze with mouse
マウスを用いたアイトラッキングシミュレーションが可能に ( Unity Editor Play モード )
Mixed Reality Toolkit > Input > Input Data Provider > Input Simulation Service > Eye Gaze Simulation > Default Eye Gaze Simulation Mode にて設定可能です。
設定項目 | 内容 |
---|---|
Disabled | シミュレーション無効化 |
Camera Forward Axis | カメラの向きで視線入力シミュレーションを有効化 |
Mouse | マウスカーソルで視線入力シミュレーションを有効化 |
※ MRTK 検索バーに「eye tracking」と入力し、検索結果の「MixedRealityPointerProfile」から設定内容を変更することも可能です。
7. Input Simulation Motion Controller in Editor Play Mode
モーションコントローラーのシミュレーションが可能に ( Unity Editor Play モード )
ユーザーは Unity Editor Play モードの手のようにモーションコントローラーをシミュレーションできるようになりました。トリガー、グラブ、メニューボタンが現在サポートされています。
8. Conical Grab Pointer
円錐グラブポインターへのアップデート
グラブポインターは球体ではなく、グラブポインターからの円錐を使用して近くのオブジェクトを検索するようになりました。これは円錐を使用して近くのオブジェクトを検索する HoloLens 2 の標準インターフェースの動作によく似ています。DefaultHoloLens2InputSystemProfile も新しい円錐グラブポインター (ConicalGrabPointer) が使用されるように変更が加えられています。

変更理由 : グラブポインターが球体だとオブジェクトより自分の手が奥にある場合でもオブジェクトを掴める (誤操作) につながるので、円錐を利用して自分の手の置くにあるオブジェクトのみを掴めるようにアップデートされました。詳細な変更理由を知りたい方は MRTK's issue を見ていただくのが良いと思います。
9. TestUtilities package
ハンドジェスチャーを伴うテストユーティリティパッケージの追加
MRTKがプロジェクトの端から端までテストを作成するために使用する Play Mode および Test Mode テストインフラストラクチャを含むパッケージ (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackag) が追加されました。このインフラストラクチャは、MRTKチーム自身にとって非常に便利であり、開発者がこのパッケージを使用して自身のプロジェクトにテストカバレッジを追加できることを嬉しく思います。
次のコードはテストハンドを作成し、特定の場所に表示し、移動してから、摘まんで手を開く方法を示しています。
TestHand leftHand = new TestHand(Handedness.Left);
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);
- これらのテストユーティリティを使用してテストを作成する方法については writing tests をご覧ください。
- このインフラストラクチャを使用する既存のテスト例については MRTK's PlayModeTests をご覧ください。
10. Support for the Leap Motion 4.5.1 Unity Modules
Leap Motion 4.5.1 Unity モジュールのサポート
Leap Motion Unity モジュールバージョン 4.5.1 のサポートが追加され、4.4.0アセットのサポートリストから削除されました。現在サポートされている Leap Motion Unity モジュールのバージョンは 4.5.0 と 4.5.1 です。
11. Spatial Awareness Mesh Observer better handles customization of materials
空間メッシュオブザーバーの更新
今回のリリースでは Windwos Mixed Reality 空間メッシュオブザーバーおよび、ジェネリックXRSDK空間メッシュオブザーバーコンポーネントの視覚マテリアルハンドリングが改善されました。これによりメッシュがオブザーバーによって更新された時にマテリアルが保持されるようになりました。以前はMRTKプロファイルで構成されているデフォルトのVisibleMaterialにリセットされていました。このアップデートにより開発者の空間メッシュマテリアル変更を予期せず上書きされることが無くなります。

( Windows Mixed Reality Spatial Mesh Observer パス : Packages/com.microsoft.mixedreality.toolkit.foundation/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs
)
( Generic XR SDK Spatial Mesh パス : ObserverPackages/com.microsoft.mixedreality.toolkit.foundation/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs
)
12. Link.xml created in the MixedRealityToolkit.Generated folder
MRTK UPM版の導入時に Link.xml が Mixed RealityToolkit.Generated 配下に生成されます
Unity Pakage Manager 版 MRTK の導入により、MRTK は link.xml ファイルを MixedRealityToolkit.Generated フォルダーに書き込むようになりました。特に何も制約がない場合は、この link.xml ファイル (および link.xml.meta ファイル) をソース管理に追加することを推奨します。link.xml は Unity Linker のマネージドコードストリッピング機能に影響を与えるために使用されます。MRTK link.xmlファイルの詳細については、MRTKおよびマネージコードストリッピングの記事を参照してください。
13. Unity 2019.3+: MRTK configuration dialog no longer attempts to enable legacy XR support
MRTK設定ダイアログでの レガシーXRサポート の有効化が削除されました

14. Reduction in InitializeOnLoad overhead
初期化処理のオーバーヘッドを削減
MRTK内のInitializeOnLoadを削減し、コンパイル時や Unity Editor Playモード移行時の処理時間が削減されました。InitializeOnLoadハンドラーは、スクリプトがコンパイルされるたびに実行されます。このアップデートにより内部ループの開発速度の向上が見込めます。

15. Bounds control graduated
Bounds Cotrol 標準パッケージ化 ( 旧:BoundingBox廃止 )
Bounds control が Experimental (実験的機能) から卒業し、標準パッケージに含まれることになりました。このアップデートに伴い、たくさんの機能とバグ修正が行われました。今回のアップデートのハイライトは以下の通りです。
- プロパティが設定ごとに分割され、設定が容易に
- 設定内容をスクリプトで共有可能 ( Configuraion ) に
- プロパティ変更時に境界制御リグが再作成されなくなりました
- すべてのプロパティを実行時 (ランタイム) に変更することが可能に
- 翻訳ハンドルのサポート
- Constraint Manager (後述、制約管理) を通じてオブジェクトの操作制限をサポート
- Elastic system (後述、弾性システム) の統合 [実験的機能]

古い Bouding Box は非推奨となり、Bouding Box を使用する既存のゲームオブジェクトは、migration tool (移行ツール) または、Bounding Box インスペクター上に表示されているボタンにてアップグレードを実施することが可能となります。


16. Constraint manager component
オブジェクトの制約を管理するマネージャーの更新
Bounds Control (境界面操作) と Object Manipulation (オブジェクト操作) の両方から Constraint Manager を通じて、制約を使用できるようになりました。これまでは Bounds Control, Object Manipulation それぞれで設定を行う必要があったので統一されるのは良いですね。また、境界面制御 (Box Control) とオブジェクト操作 (Near/Far) で異なった操作性にならないのでアプリケーションの体験性としても理解しやすいUXが実現できるのではないかと思います。

Constraint Manager から Add constraint to GameObject ボタンを押下し制約を追加するだけで、Bounds Control, Object Manipulation の操作に反映させることができます。

オブジェクトに対する制約は8種類あり、それぞれ Inspector 上でプロパティ設定を行うことで微調整が可能です。

Constraint の種類と設定方法の詳細はこちらをご覧ください。
17. HoloLens 2 Button material update
HoloLens 2 ボタンマテリアルの更新
HoloLens 2 ボタンマテリアルが更新されました。これは MRC (Mixed Reality Capture) で動画を撮影した場合にボタンが黒っぽくなることを防ぐためのアップデートとなります。

18. Description panel update, movable example scene
説明パネルの更新、シーン全体の移動機能追加
Example シーンなどで使用されている説明パネルに更新が入り、「TitleBar : 説明パネル上部」オブジェクトに ObjectManipulator.cs (Script) が追加され、シーン内に含まれるすべてのオブジェクトを移動できるようになりました。

サンプルシーンを開いて場所を微調整したい場合や違う場所に移動させたい場合に便利ですね!これでオブジェクトの配置位置を合わせるためにアプリ再起動しなくて良くなりますね!
19. Spatial mesh visualization - Pulse on air-tap
HoloLens 2 シェル標準の空間メッシュサンプルシーンの追加
HoloLens 2 シェルと同様の動作をする空間メッシュサンプルが追加されました。

( サンプルシーンパス : Assets/Samples/Mixed Reality Toolkit Examples/2.5.0/Experimental - PulseShader/Scenes/PulseShaderExamples.unity
)
20. Elastic System - Experimental
弾性システム (実験的機能)
ゲームオブジェクトに弾力性を持たせることのできるUXコンポーネント (Experimental) が追加されました。
#MRTK v2.5.0 新機能
— Futo Horio (@Futo_Horio) October 1, 2020
Elastic system 試してみた!
(Experimental)
Elastic は「弾力性のある」
という意味を持つ英単語
UI や ゲームオブジェクトに
バネのような弾力性を持たせる
ことができます!#MRTK #HoloLens2 pic.twitter.com/DlP62gUZv7
( サンプルシーンパス : Assets/Samples/Mixed Reality Toolkit Examples/2.5.0-preview.20200928.5/Experimental - Elastic/Scenes/ElasticSystemExamples.unity
)
21. Joystick (Experimental)
ジョイスティック UXコンポーネント (実験的機能)
ジョイスティックを使って 位置・回転・大きさを 自由自在に変えることできるUXコンポーネント(Experimental) ( スケールの大きなオブジェクトの操作に最適 ) が追加されました。

実際に動作させた際の様子は以下動画をご覧ください。
#MRTK v2.5.0 新機能
— Futo Horio (@Futo_Horio) October 1, 2020
Joystick を試してみた!
(Experimental)
ジョイスティックを使って
位置・回転・大きさを
自由自在に変えることができます!
大きなオブジェクトの操作に最適✨#MRTK #HoloLens2 pic.twitter.com/Ba5gBp8JcZ
( サンプルシーンパス : Assets/Samples/Mixed Reality Toolkit Examples/2.5.0-preview.20200928.5/Experimental - Joystick/JoystickExample.unity
)
22. Color picker (Experimental)
カラーピッカー (実験的機能)
アプリ実行時 (ランタイム) にマテリアルカラーを動的に変更できる機能が Experimental として追加されました。RGB, HSV (Hue : 色相, Saturation : 彩度, Value : 明度) などを操作できるUXコンポーネントです。実際に動作させた際の様子は以下動画をご覧ください。
#MRTK v2.5.0 で追加された
— Futo Horio (@Futo_Horio) October 1, 2020
Color picker (Experimental)
アプリケーション実行時に
オブジェクトのマテリアルカラーを
ユーザーの任意で変更可能✨
これからの進化が楽しみ!#MRTK #HoloLens2 pic.twitter.com/FWE3WYwjHQ
( サンプルシーンパス : Assets/Samples/Mixed Reality Toolkit Examples/2.5.0/Experimental - ColorPicker/ColorPickerExample.unity
)
最後に
最後までお読みいただきありがとうございましたー👏