Mixed Reality Toolkit パッケージ
Mixed Reality Toolkit (MRTK) は、Mixed Reality ハードウェアとプラットフォームをサポートすることにより、クロスプラットフォーム Mixed Reality アプリケーション開発を可能にするパッケージのコレクションです。
MRTK は アセット (.unitypackage) パッケージとして、そして Unity Package Manager を通して利用可能です。
アセット パッケージ
MRTK のアセット (.unitypackage) は、GitHub からダウンロードできます。
アセット パッケージを使う利点としては以下があります。
- Unity 2018.4 以降で利用可能
 - MRTK への変更が簡単
- MRTK は Assets フォルダ内にある
 
 
課題としては以下があります。
- MRTK がプロジェクトのアセット フォルダの一部になるため、
- プロジェクトが大きくなる
 - コンパイル時間が遅くなる
 
 - 依存管理がない
- パッケージの依存関係を手動で解決する必要がある
 
 - 手動でのアップデート プロセス
- 複数のステップ
 - 巨大な (3000 以上のファイルの) ソース コントロールの更新
 - MRTK への変更を失ってしまうリスク
 
 - Examples パッケージをインポートするということは全ての Examples を含むことを意味する
 
利用可能なパッケージは以下のものです。
これらのパッケージは、GitHub の mrtk_release ブランチのソース コードから、Microsoft によってリリース、サポートされています。
Foundation パッケージ
Mixed Reality Toolkit Foundation は、アプリケーションが Mixed Reality プラットフォーム間で共通の機能を活用できるようにするコードのセットです。
  
MRTK Foundation パッケージ
MRTK Foundation パッケージは以下を含んでいます。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Core | Interface and type definitions, base classes, standard shader. | |
| MRTK/Core/Providers | Platform agnostic data providers | |
| Hands | Base class support and services for hand tracking. | |
| InputAnimation | Support for recording head movement and hand tracking data. | |
| InputSimulation | Support for in-editor simulation of hand and eye input. | |
| ObjectMeshObserver | Spatial awareness observer using a 3D model as the data. | |
| UnityInput | Common input devices (joystick, mouse, etc.) implemented via Unity's input API. | |
| MRTK/Providers | Platform specific data providers | |
| LeapMotion | Support for the UltraLeap Leap Motion controller. | |
| OpenVR | Support for OpenVR devices. | |
| Oculus | Support for Oculus devices, such as the Quest. | |
| UnityAR | (Experimental) Camera settings provider enabling MRTK use with mobile AR devices. | |
| WindowsMixedReality | Support for Windows Mixed Reality devices, including Microsoft HoloLens and immersive headsets. | |
| Windows | Support for Microsoft Windows specific APIs, for example speech and dictation. | |
| XR SDK | (Experimental) Support for Unity's new XR framework in Unity 2019.3 and newer. | |
| MRTK/SDK | ||
| Experimental | Experimental features, including shaders, user interface controls and individual system managers. | |
| Features | Functionality that builds upon the Foundation package. | |
| Profiles | Default profiles for the Microsoft Mixed Reality Toolkit systems and services. | |
| StandardAssets | Common assets; models, textures, materials, etc. | |
| MRTK/Services | ||
| BoundarySystem | System implementing VR boundary support. | |
| CameraSystem | System implementing camera configuration and management. | |
| DiagnosticsSystem | System implementing in application diagnostics, for example a visual profiler. | |
| InputSystem | System providing support for accessing and handling user input. | |
| SceneSystem | System providing multi-scene application support. | |
| SpatialAwarenessSystem | System providing support for awareness of the user's environment. | |
| TeleportSystem | System providing support for teleporting (moving about the experience in jumps). | |
| MRTK/StandardAssets | MRTK Standard shader, basic materials and other standard assets for mixed reality experiences | 
Extensions パッケージ
オプションの Microsoft.MixedRealityToolkit.Unity.Extensions パッケージには、MRTK の機能を拡張する追加サービスが含まれています。
Note
Extensions パッケージは Microsoft.MixedRealityToolkit.Unity.Foundation が必要です。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Extensions | ||
| HandPhysicsService | Service that adds physics support to articulated hands. | |
| LostTrackingService | Service that simplifies handling of tracking loss on Microsoft HoloLens devices. | |
| SceneTransitionService | Service that simplifies adding smooth scene transitions. | 
Tools パッケージ
オプションの Microsoft.MixedRealityToolkit.Unity.Tools パッケージには、MRTK を使った Mixed Reality 開発エクスペリエンスを強化する役に立つツールが含まれています。 これらのツールは Unity Editor の Mixed Reality Toolkit > Utilities メニューにあります。
Note
Tools パッケージは Microsoft.MixedRealityToolkit.Unity.Foundation が必要です。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Tools | ||
| BuildWindow | Tool that helps simplify the process of building and deploying UWP applications. | |
| DependencyWindow | Tool that creates a dependency graph of assets in a project. | |
| ExtensionServiceCreator | Wizard to assist in creating extension services. | |
| MigrationWindow | Tool that assists in updating code that uses deprecated MRTK components. | |
| OptimizeWindow | Utility to help automate configuring a mixed reality project for the best performance in Unity. | |
| ReserializeAssetsUtility | Provides support for reserializing specific Unity files. | |
| RuntimeTools/Tools/ControllerMappingTool | Utility enabling developers to quickly determine Unity mappings for hardware controllers. | |
| ScreenshotUtility | Enables capturing application images in the Unity editor. | |
| TextureCombinerWindow | Utility to combine graphics textures. | |
| Toolbox | UI that makes it easy to discover and use MRTK UX components. | 
Test utilities パッケージ
オプションの Microsoft.MixedRealityToolkit.TestUtilities パッケージは開発者が簡単にPlayMode テストを作るためのヘルパー スクリプトのコレクションです。これらのユーティリティは MRTK のコンポーネントを作る開発者に特に有用です。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Tests | ||
| TestUtilities | Methods to simplify creation of play mode tests, including hand simulation utilities. | 
Examples パッケージ
Examples パッケージには、Foundation パッケージの機能を使用するデモ、サンプル スクリプト、およびサンプル シーンが含まれています。このパッケージには、さまざまなタイプのハンド インプット (多関節および非多関節) に反応するサンプル オブジェクトが含まれる HandInteractionExample シーン (下図) が含まれています。

このパッケージには、アイ トラッキング デモも含まれています。詳細はこちらに記載されています。
より一般的には、MRTK のすべての新機能について、同じフォルダ構造と場所にほぼ従って、対応するサンプルが Examples パッケージに含まれているべきです。
Note
Examples パッケージは Microsoft.MixedRealityToolkit.Unity.Foundation が必要です。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Examples | ||
| Demos | Simple scenes illustrating one or two related features. | |
| Experimental | Demo scenes illustrating experimental features. | |
| StandardAssets | Common assets shared by multiple demo scenes. | 
Unity Package Manager
Unity 2019.4 以降では、MRTK は Unity Package Manager を通じて利用可能です。
アセット パッケージを使う利点としては以下があります。
- プロジェクトが小さくなる
- Visual Studio のソリューションがきれいになる
 - 管理ファイルが少なくなる(MRTK は 
Packages/manifest.jsonファイルのシンプルな参照) 
 - コンパイルの高速化
- Unity がビルド時に MRTK を再コンパイルする必要がない
 
 - 依存関係の解決
- 依存先としてパッケージを指定した時に必要な MRTK のパッケージが自動でインストールされる
 
 - 新しい MRTK のバージョンへの簡単なアップデート
Packages/manifest.jsonファイルのバージョンを変更する
 
課題としては以下があります。
- MRTK は変更不可能になる
- パッケージの解決から取り除かないと変更することができない
 
 - Unity 2018.4 では MRTK は UPM パッケージをサポートしない
 
Foundation パッケージ
Foundation パッケージ (com.microsoft.mixedreality.toolkit.foundation)は、Mixed Reality Toolkit の基礎を形作ります。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Core | Interface and type definitions, base classes, standard shader. | |
| MRTK/Core/Providers | Platform agnostic data providers | |
| Hands | Base class support and services for hand tracking. | |
| InputAnimation | Support for recording head movement and hand tracking data. | |
| InputSimulation | Support for in-editor simulation of hand and eye input. | |
| ObjectMeshObserver | Spatial awareness observer using a 3D model as the data. | |
| UnityInput | Common input devices (joystick, mouse, etc.) implemented via Unity's input API. | |
| MRTK/Providers | Platform specific data providers | |
| LeapMotion | Support for the UltraLeap Leap Motion controller. | |
| OpenVR | Support for OpenVR devices. | |
| Oculus | Support for Oculus devices, such as the Quest. | |
| UnityAR | (Experimental) Camera settings provider enabling MRTK use with mobile AR devices. | |
| WindowsMixedReality | Support for Windows Mixed Reality devices, including Microsoft HoloLens and immersive headsets. | |
| Windows | Support for Microsoft Windows specific APIs, for example speech and dictation. | |
| XR SDK | (Experimental) Support for Unity's new XR framework in Unity 2019.3 and newer. | |
| MRTK/SDK | ||
| Experimental | Experimental features, including shaders, user interface controls and individual system managers. | |
| Features | Functionality that builds upon the Foundation package. | |
| Profiles | Default profiles for the Microsoft Mixed Reality Toolkit systems and services. | |
| StandardAssets | Common assets; models, textures, materials, etc. | |
| MRTK/Services | ||
| BoundarySystem | System implementing VR boundary support. | |
| CameraSystem | System implementing camera configuration and management. | |
| DiagnosticsSystem | System implementing in application diagnostics, for example a visual profiler. | |
| InputSystem | System providing support for accessing and handling user input. | |
| SceneSystem | System providing multi-scene application support. | |
| SpatialAwarenessSystem | System providing support for awareness of the user's environment. | |
| TeleportSystem | System providing support for teleporting (moving about the experience in jumps). | 
依存パッケージ:
- Standard Assets (
com.microsoft.mixedreality.toolkit.standardassets) 
Standard Assets
Standard Assets パッケージ (com.microsoft.mixedreality.toolkit.standardassets) は全ての Mixed Reality エクスペリエンスに推奨されるコンポーネントのコレクションで、以下が含まれています。
- MRTK Standard シェーダー
 - MRTK Standard シェーダーを使った基本的なマテリアル
 - Audio ファイル
 - Fonts
 - Textures
 - Icons
 
Note
Assembly Definitions の破壊的変更を防ぐため、MRTK Standard シェーダーのいくつかの機能をコントロールするのに使われているスクリプトは Standard Assets パッケージに含まれていません。これらのスクリプトは Foundation パッケージの MRTK/Core/Utilities/StandardShader フォルダにあります。
依存パッケージ: なし
Extension パッケージ
オプションの Extensions パッケージ (com.microsoft.mixedreality.toolkit.extensions) には MRTK の機能を拡張する追加のコンポーネントが含まれています。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Extensions | ||
| HandPhysicsService | Service that adds physics support to articulated hands. | |
| LostTrackingService | Service that simplifies handing of tracking loss on Microsoft HoloLens devices. | |
| SceneTransitionService | Service that simplifies adding smooth scene transitions. | |
| Samples~ | A hidden (in the Unity Editor) folder that contains the sample scenes and assets. | 
サンプル プロジェクトを含むパッケージの利用手順の詳細は、Mixed Reality Toolkit と Unity Package Manager をご覧ください。
依存パッケージ:
- Foundation (
com.microsoft.mixedreality.toolkit.foundation) 
Tools パッケージ
オプションの Tools パッケージ (com.microsoft.mixedreality.toolkit.tools) には Mixed Reality 体験を作るのに便利なツールが含まれています。おおむねこれらのツールは Editor コンポーネントで、コードはアプリケーションの一部としてはリリースされません。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Tools | ||
| BuildWindow | Tool that helps simplify the process of building and deploying UWP applications. | |
| DependencyWindow | Tool that creates a dependency graph of assets in a project. | |
| ExtensionServiceCreator | Wizard to assist in creating extension services. | |
| MigrationWindow | Tool that assists in updating code that uses deprecated MRTK components. | |
| OptimizeWindow | Utility to help automate configuring a mixed reality project for the best performance in Unity. | |
| ReserializeAssetsUtility | Provides support for reserializing specific Unity files. | |
| RuntimeTools/Tools/ControllerMappingTool | Utility enabling developers to quickly determine Unity mappings for hardware controllers. | |
| ScreenshotUtility | Enables capturing application images in the Unity editor. | |
| TextureCombinerWindow | Utility to combine graphics textures. | |
| Toolbox | UI that makes it easy to discover and use MRTK UX components. | 
依存パッケージ:
- Foundation (
com.microsoft.mixedreality.toolkit.foundation) 
Test utilities パッケージ
オプションの Test utilities パッケージ (com.microsoft.mixedreality.toolkit.testutilities) には、開発者が簡単に PlayMode テストを作れるようにするヘルパー スクリプトのコレクションが含まれています。これらのユーティリティは MRTK のコンポーネントを作る開発者に特に有用です。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Tests | ||
| TestUtilities | Methods to simplify creation of play mode tests, including hand simulation utilities. | 
依存パッケージ:
- Foundation (
com.microsoft.mixedreality.toolkit.foundation) 
Examples パッケージ
Examples パッケージ (com.microsoft.mixedreality.toolkit.examples) は開発者が興味のあるサンプルのみをインポートできるように構成されています。
サンプルプロジェクトを含むパッケージを使う手順の詳細は、Mixed Reality Toolkit と Unity Package Manager のページをご覧ください。
| Folder | Component | Description | 
|---|---|---|
| MRTK/Examples | ||
| Samples~ | A hidden (in the Unity Editor) folder that contains the sample scenes and assets. | |
| StandardAssets | Common assets shared by multiple demo scenes. | 
依存パッケージ:
- Foundation (
com.microsoft.mixedreality.toolkit.foundation) - Extensions (
com.microsoft.mixedreality.toolkit.extensions)