Microsoft Mixed Reality Toolkit 2.5 リリースノート

重要

ARM64 を使用して Microsoft HoloLens 2 用に構築されたアプリケーションに影響を与える既知のコンパイラの問題があります。 この問題は、Visual Studio 2019 をバージョン16.8 以降に更新することによって修正されます。 Visual Studio を更新できない場合は、パッケージをインポートして、 com.microsoft.mixedreality.toolkit.tools 回避策を適用してください。

2.5.4 の新機能

UPM を使用する場合の Oculus 統合のバグを修正しました

UPM を使用する場合、OculusXRSDKDeviceManagerProfile では、 起動時に常に prefabs が None に設定されます。 このリリースでは、起動時に prefabs のワーキングセットをポイントするように Device Manager を構成します。

UPM を使用した OpenXR の問題を修正します。

OpenXR プロバイダーが既定で link.xml に追加されていないため、Unity のパッケージマネージャーを介して OpenXR と mrtk を使用すると、新しいプロジェクトがデバイス上で実行できなくなる問題を修正します。 アップグレードされた既存のプロジェクトでも、手動で追加する必要があります。

2.5.3 の新機能

2.5.2 で導入された Oculus を使用して回帰を修正します。

2.5.2 では、OCULUS SDK を統合するときにビルドの問題が発生しました。 このリリースでは、この問題は元に戻されます。

2.5.2 の新機能

OpenXR のサポートを追加する

Unity の OpenXR preview パッケージと Microsoft の Mixed Reality OpenXR パッケージの初期サポートが追加されました。 詳細については、 MRTK/XRSDK の概要ページUnity のフォーラム投稿、または Microsoft のドキュメント を参照してください。

重要

Unity の OpenXR は、Unity 2020.3 以降でのみサポートされています。 また、x64、ARM、および ARM64 ビルドのみをサポートしています。

境界の視覚化エラーの修正

フロアや壁のような境界の視覚化は、境界プロファイルに従って、実行時に適切に構成され、表示されるようになります。

Unity サポートの MSBuild

unity の新しいパッケージガイダンスに合わせて、2.5.2 リリースの以降、unity の MSBuild のサポートが削除されました。

2.5.1 の新機能

パッケージ依存関係エラーの修正

このリリースでは、不適切なパッケージ間ファイルの依存関係が修正されています (例: 標準アセットのファイルが、Foundation のファイルを誤って参照していない)。 また、バージョン2.5.1 は、テキストメッシュ Pro に明示的な依存関係を追加します。

アセット/MRTK/シェーダーにコピーされた標準アセットパッケージシェーダー

標準アセットパッケージが UPM 経由でインストールされると、そのシェーダーは、変更できなくなるように Assets/MRTK/シェーダーフォルダーにコピーされます。 これにより、ユニバーサルレンダリングパイプライン (URP) に対して更新されたシェーダーの問題が解決され、次回のプロジェクトの読み込み時に従来の動作が元に戻されます。

テレポートカーソルがハンドに突き出ていることを修正

このリリースでは、テレポート destination カーソルがビジュアルを手にすることができる 問題 が修正されています。

2.5.0 の新機能

Unity パッケージマネージャー (UPM) のサポート

Unity パッケージマネージャーを使用して、Mixed Reality Toolkit を管理できるようになりました。

MRTK Foundation UPM パッケージ

注意

MRTK UPM パッケージをインポートするには、手動の手順がいくつか必要です。 詳細については、Mixed Reality Toolkit と Unity パッケージマネージャーを参照してください。

Oculus クエスト XR SDK のサポート

MRTK で、ネイティブの XR SDK パイプラインを使用した Oculus クエストヘッドセットとコントローラーの実行がサポートされるようになりました。 MRTK での Eric Provencher の作業により、 Oculus Integration Unity パッケージでも手動追跡がサポートされています。

新しいパイプラインを使用して Oculus クエストにデバイスをデプロイする手順については、 Oculus クエストセットアップガイドを参照してください。

オブジェクト コレクションのスクロール

MRTK UX コンポーネントは試験的な機能からアップグレードされ、さまざまなサイズのレイアウト3D コンテンツをより自由に使用できるようになりました。 colliders がアタッチされていないオブジェクトのサポートも追加されています。 コンテンツマスクを無効にするための新しいオプションも追加され、プロトタイプ作成が容易になりました。

詳細については、「 オブジェクトコレクションのスクロール 」を参照してください。

オブジェクト コレクションのスクロール

テレポートポインターアニメーション、処理、およびサウンドの改善

これで、テレポートポインターのアニメーションと音声フィードバックが改善されました。 また、隣接するサーフェイスをポイントするから離れた場所に移動するときにスムーズに処理されるように、テレポートポインターの処理を改善しました。

入力シミュレーションのカンニングペーパー

[アクションの例] シーンに、入力シミュレーションのヘルプページを表示するための構成可能なショートカットが表示されるようになりました。

入力シミュレーションのカンニングペーパー

マウスを使用した入力シミュレーションの視点

ユーザーは、マウスを使用して目の追跡をシミュレートできるようになりました。 Eye Simulation Mode入力シミュレーションプロファイルのフィールドを参照し、それを [マウス] に設定します。 これにより、前のフィールドが置き換えら Simulate Eye Position れます。

目を見つめたマウス

エディター再生モードでの入力シミュレーションモーションコントローラー

ユーザーは、エディターの再生モードと同じようにモーションコントローラーをシミュレートできるようになりました。 トリガー、グラブ、メニューボタンは現在サポートされています。

円錐グラブポインター

グラブポインターは、球体ではなくグラブポイントからの円錐を使用して近くのオブジェクトを照会するように構成できるようになりました。 これは、既定の HoloLens 2 インターフェイスの動作に似ています。これは、コーンを使用して近くのオブジェクトに対してクエリを行います。 DefaultHoloLens2InputSystemProfile も、新しいを使用するように調整されてい ConicalGrabPointer ます。

円錐グラブポインター

TestUtilities パッケージ

現在、パッケージ (Toolkit MixedReality) があります。2.5.0. unitypackage)。これは、MRTK がエンドツーエンドのテストを作成するために使用する PlayMode と Testutilities のテストインフラストラクチャを含んでいます。 このインフラストラクチャは、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);

これらの TestUtilities を使用してテストを作成する方法については、 テストの作成に関するこのセクションを参照してください。

このインフラストラクチャを使用する既存のテストの例については、「MRTK の Playmodetests」を参照してください。

うるうモーション 4.5.1 Unity モジュールのサポート

うるうモーション Unity モジュールバージョン4.5.1 のサポートが追加され、4.4.0 アセットのサポートが削除されました。 現在サポートされているうるう Motion Unity モジュールのバージョンは、4.5.0 および4.5.1 です。

また、最初の Leap モーション統合についても追加の手順があります。詳細については、「 MRTK での leap の追跡の構成方法 」を参照してください。

空間認識メッシュオブザーバーがマテリアルのカスタマイズをより適切に処理

このリリースでは、とのコンポーネントによって Windows Mixed Reality Spatial Mesh Observer Generic XR SDK Spatial Mesh Observer 視覚的なマテリアル処理が改善されています。 メッシュがオブザーバーによって更新されたときに、マテリアルが保持されるようになりました。以前は、プロファイルで構成されている既定の VisibleMaterial にリセットされました。

これにより、開発者はメッシュマテリアルを変更することができ、変更が予期せず上書きされることはありません。

MixedRealityToolkit フォルダーに作成された Link.xml

Unity パッケージマネージャー MRTK の導入により、MRTK link.xml はフォルダーにファイルを書き込み Assets/MixedRealityToolkit.Generated ます (存在しない場合)。 このファイル (および) は、ソース管理に追加することをお勧めし link.xml.meta ます。 Link.xml は、Unity リンカーの マネージコード 削除機能に影響を与えるために使用されます。

MRTK link.xml ファイルの詳細については、 mrtk とマネージコード の削除に関する記事を参照してください。

Unity 2019.3 +: MRTK 構成ダイアログで、レガシ XR サポートを有効にしようとしていません

Unity の XR プラットフォームを使用するときに発生する可能性がある競合を避けるため、MRTK 構成ダイアログから、レガシ XR サポートを有効にするオプションが削除されました。 必要に応じて、従来の XR のサポートを有効にすることができます。 Unity 2019 では、XR Project 使用し て、 > 設定 > Player > 設定 > Virtual Reality がサポートされ ています。

InitializeOnLoad のオーバーヘッドの削減

InitializeOnLoad ハンドラーで実行される作業量を削減するために作業を行ってきました。これにより、内部ループの開発速度が向上します。 InitializeOnLoad ハンドラーは、スクリプトがコンパイルされるたびに実行されます。再生モードに入る前や、エディターの起動時にも実行されます。 これらのハンドラーは、はるかに少数のケースで実行されるようになり、Unity の応答性が全般的に改善されました。

場合によっては、次のようなトレードオフが必要になりました。

境界コントロールのグラデーション

境界コントロール

境界制御 が試験段階で段階的に除去され、多数の新機能や大量のバグ修正が行われています。 この更新プログラムの要点の一覧を次に示します。

  • プロパティが構成に分割され、境界コントロールの設定が簡単になります。
  • 構成は、スクリプト可能なオブジェクトを介して共有できます。
  • すべてのプロパティ/スクリプト可能なプロパティはランタイムで構成可能
  • プロパティの変更時に境界コントロールのリモート操作を再作成できない
  • 変換ハンドルのサポート
  • 制約マネージャーを使用した完全な制約のサポート
  • エラスティックシステム統合 (試験段階)

以前の境界ボックスは非推奨となりました。境界ボックスを使用している既存のゲームオブジェクトは、移行ツールまたは境界ボックスインスペクターを使用してアップグレードできます。

制約マネージャーコンポーネント

制約は、新しい 制約マネージャーコンポーネントを介して、境界制御とオブジェクトマニピュレーターの両方で使用できるようになりました。 どちらのコンポーネントも、既定で制約マネージャーを作成し、アタッチされた制約を自動的に処理します。

また、自動動作制約マネージャーにも、処理する必要がある制約をユーザーが決定できる手動モードが付属しています。 このため、プロパティインスペクターで制約を表示する方法は少し変更しました。

Inspector view showing manual constraint manager selection

コンポーネントに適用される制約は、制約マネージャーコンポーネントに一覧として表示されるようになりました。一方、制約マネージャー ( 境界コントロール または オブジェクトマニピュレーター) を使用するコンポーネントには、選択した制約マネージャーとモード (自動または手動) が表示されます。 詳細については、ドキュメントの「 制約マネージャー 」セクションを参照してください。

HoloLens 2 ボタンのマテリアルの更新

HoloLens 2 ボタンのフロントケージの素材を更新して、MRC の黒の色を削除しました。

HoloLens 2 ボタンのマテリアルの更新

説明パネル更新、移動可能サンプルシーン

説明パネルが更新されました。 (SceneDescriptionPanelRev) 新しいデザインでは、ユーザーがシーン全体を調整したり移動したりできる grabbable のトップバーを提供します。

説明パネルの更新

空間メッシュの視覚エフェクト-エアタップでのパルス

HoloLens 2 のシェル動作と一致するように、空間メッシュのパルスシェーダーの例を更新しました。

エアタップのパルス

エラスティックシステム (試験段階)

エラスティック System2

MRTK には、拡張性と柔軟性に優れたさまざまなサブクラスを含む エラスティックシミュレーションシステム が付属しています。これには、4次元の四元数のばね、3次元の容積ばね、および単純な線形スプリングシステムのバインディングが用意されています。

現在、 エラスティック manager をサポートする次の MRTK コンポーネントでは、エラスティック機能を利用できます。

Expanding an elastic menu Grabbing an elastic coffee cup

ジョイスティック (試験段階)

大きなターゲットオブジェクトを制御できるジョイスティックインターフェイスの例。

ジョイ

カラーピッカー (試験段階)

実行時に任意のオブジェクトの素材の色を簡単に変更できる実験的なコントロール。

カラーピッカーコントロールの3つの異なる方法

カラーピッカーコントロールの4つの異なる方法

重大な変更

アセンブリ定義ファイルの変更

一部の asmdef ファイルが変更され、Unity 2018.4.13 f1 以降のみがサポートされるようになりました。 以前のバージョンの Unity で MRTK 2.5 に更新すると、コンパイルエラーが表示されます。 これを修正するには Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef 、プロジェクトウィンドウでに移動し、インスペクターで不足している参照を削除します。 とを使用して、これらの手順 Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef を繰り返し Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef ます。 注 Unity 2019 にアップグレードするときに、これら3つの asmdef ファイルを元のもの (つまり、変更されていない) に置き換えることで、変更を元に戻す必要があります。

IMixedRealityPointerMediator

このインターフェイスは、新しい関数を含むように更新されました。

void SetPointerPreferences(IPointerPreferences pointerPreferences);

DefaultPointerMediator をサブクラス化しないカスタムポインターがある場合は、この新しい関数を実装する必要があります。 この問題が追加された理由の背景については、 この問題 を参照してください。 これは、Ipointer 設定を使用するコンストラクターの存在に基づいて暗黙的に実行されるのではなく、ポインターの設定が明示的に媒介に渡されるようにするために追加されました。

Rest/デバイスポータル API

UseSSL静的プロパティはからに移動されました Rest DevicePortal

以前に作成したのは...

Rest.UseSSL = true

今すぐ実行...

DevicePortal.UseSSL = true

Link.xml

アプリケーションが以前に mrtk の NuGet ディストリビューションを使用していた場合、 link.xml ファイルは Foundation パッケージから削除されています。 コード保持ルールを復元するには、Unity でプロジェクトを1回開くと、によって既定のファイルが作成され link.xml Assets/MixedRealityToolkit.Generated ます。 このファイル (および link.xml.meta ) は、ソース管理に追加することをお勧めします。

変換の制約の変更

TargetTransform プロパティは、制約システムによって使用されていなかったため、不使用とマークされています。 制約ロジックは、Initialize メソッドと Apply メソッドに渡される変換に基づいています。 このプロパティに依存する派生ユーザーの制約は、制約コンポーネントの変換を格納して同じ動作を実現することで、TargetTransform を実装にキャッシュできます。

格納されている初期のワールド worldPoseOnManipulationStart 型のデータ型が MixedRealityPose から MixedRealityTransform に変更されました。これには、操作対象のオブジェクトのローカルスケール値が含まれます。 この変更により、初期スケール値を個別にキャッシュする必要がなくなりました。

IMixedRealityDictationSystem の新しいプロパティ

AudioClipIMixedRealityDictationSystem インターフェイスに新しいプロパティが追加されました。 プロパティは、 AudioClip 現在のディクテーションセッションに関連付けられているオーディオクリップへのアクセスを有効にします。 ユーザーは、インターフェイスを実装するスクリプトでプロパティを実装する必要があります。

サービスファサードの停止

2.5 でサービスファサードがオフになっています。 この機能は、MRTK のプロファイルを簡単に構成できるようにするために追加されました (MRTK の各サービスを表す、擬似の疑似シーンオブジェクトを作成することによって)。 長期的には、偽のゲームオブジェクトを作成しないようにして、それらを同期させておく必要があります (データの同期と "真実の原因" の問題は、拡張性が高く、適切に動作しないことがわかっています)。

2.5 では、プロジェクトのアップグレードがスムーズに行われるように、サービスファサードハンドラーが保持されます。プロジェクトに存在するすべてのファサードは、2.5 で開かれているシーンが自動的に固定されるように、サービスファサードハンドラーによって削除されます。

サービスファサード機能に関連付けられている残りのコードは、今後のリリースで削除される予定です。

入力シミュレーションサービスへのモーションコントローラーの追加

モーションコントローラーのシミュレーションが、既存のハンドシミュレーションと共にエディターの再生モードで提供されるようになりました。 この変更を有効にするために、現在の関数/フィールド/プロパティの多くが古い形式に設定され、 InputSimulationService.cs MixedRealityInputSimulationProfile.cs 最も重要な変更が加えられました。 関連するコードのロジックと動作はほとんど同じではありませんが、古い関数の大部分は、"手作業" への参照を、より汎用的な "コントローラー" に置き換える (たとえば、から) に関連付けられています。 DefaultHandSimulationMode DefaultControllerSimulationMode 新しい名前を取得するだけでなく、特定の新しい関数の戻り値の型が、名前/動作の変更に合わせて更新されます (たとえば GetControllerDevice 、ではなく、元の戻り値に基づいています GetHandDevice BaseController SimulatedHand )。

IInputSimulationService に新しいプロパティとが追加されました MotionControllerDataLeft MotionControllerDataRightMixedRealityInputSimulationProfile には、特定のモーションコントローラーボタンのキーボードマップ用の新しいフィールドが追加されました。

既知の問題

CameraCache がシャットダウン時に新しいカメラを作成する

場合によっては (Unity エディターで LeapMotion プロバイダーを使用する場合など)、CameraCache がシャットダウン時に MainCamera を再作成することがあります。 詳細については、 この問題 を参照してください。

FileNotFoundException をパッケージマネージャー使用してサンプルをインポートした場合の

プロジェクトパスの長さによっては、unity パッケージマネージャー経由で例をインポートすると、unity コンソールで FileNotFoundException メッセージが生成される場合があります。 この原因は、"不足" ファイルへのパスが MAX_PATH (256 文字) を超えていることです。 解決するには、プロジェクトパスの長さを短くしてください。

Spatializer が指定されませんでした。 アプリケーションは、空間サウンドをサポートしません。

Audio spatializer が構成されていない場合、"No spatializer が指定されました" という警告が表示されます。 これは、XR パッケージがインストールされていない場合に発生する可能性があります。 Unity には spatializers パッケージが含まれているためです。

解決するには、次のことを確認してください。

  • ウィンドウ > パッケージ マネージャー XR パッケージが 1 つ以上インストールされている

  • Mixed Reality Toolkit > ユーティリティ > Unity を構成Project Audio Spatializer の選択を行う

    Audio Spatializer を選択する

NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていない (SceneTransitionService.Ini)

場合によっては、 を開いて、SceneTransitionService クラスの Initialize メソッドで EyeTrackingDemo-00-RootScene NullReferenceException が発生することがあります。 このエラーは、Scene Transition Service の構成プロファイルが設定されていない場合に発生します。 解決するには、次の手順を使用してください。

  • 階層内 MixedRealityToolkit の オブジェクトに移動します
  • [Inspector]/(インスペクター)ウィンドウで、 Extensions
  • 展開されていない場合は、展開します Scene Transition Service
  • の値を Configuration Profile MRTKExamplesHubSceneTransitionServiceProfile に設定します

シーン切り替えの修正

Oculus Quest

現在、スタンドアロン プラットフォーム を対象とする場合に、Oculus XR プラグインを で使用 する場合に既知の問題があります。 Oculus バグ トラッカー/フォーラム/リリース ノートで更新プログラムを確認してください。

バグは、次の 3 つのエラー のセットで示されます。

Oculus XR プラグイン エラー

UnityUI と TextMeshPro

新しいバージョンの TextMeshPro (1.5.0 以降または 2.1.1 以降) には既知の問題があります。ドロップダウンと太字のフォント文字間隔の既定のフォント サイズが変更されています。

TMP イメージ

これを回避するには、以前のバージョンの TextMeshPro にダウングレードします。 詳細については 、問題#8556 を参照してください。