MRTK2.4がリリースされました
- 更新
- LeapMotionのサポート
- Migration Window
- MRTKのフォルダ名が短くなった
- ツールボックスでUI/UXコンポーネントの検索と配置が楽に
- Tap to Placeの復活
- Pressable Buttonsのボタン設定の簡易化とButtonConfigHelper
- Holo2スタイルのトグルボタン、チェックボックス、スイッチ、ラジオの追加
- ハンドメニューの改善
- ハンドメニューのサンプルの追加
- ダイアログ (Experimental)
- Dock (Experimental)
- Unity Profiler markers
- Windows API Checker のメソッド追加
- テキスト入力フィールドからキーボードを立ち上げるヘルパー
- Grid Object Collection の機能追加
- ハンズフリーな input simulation
- Audio Spatializer の設定追加
- Object Manipulator のExperimentalがとれてSDKに
- Bounds Control の改善
- 破壊的変更
- 既知の問題
更新
LeapMotionのサポート
Provider層に新たにLeap Motion Data Providerが追加されました! VRアプリでArticulated Hand(多関節ハンド)トラッキングをしたり、エディタでのラピッドプロトタイピングに使うことを想定しているようです。 利用シナリオに応じて、ヘッドセットにLeap Motionをマウントしたり机の上に置いて利用できるよう設定項目も設けられています。
Migration Window
Migration(マイグレーション)というのは、「移行」っていう意味ですね。
BoundingBoxやObjectManipulatorなど、作り直しが入った新しいコンポーネントが登場したこともあり、レガシーなコンポーネントを新しいコンポーネントのものに差し替えたり、MRTKの破壊的変更に対して既存のコードを維持するような仕組みです。
以前のMRTKから移行する際は、こちらのMigrationToolを使って移行することが推奨だそうです。
Mixed Reality Toolkit > Utilities > Migration Window
から起動できます。
現在の移行対象は下記です。
- ManipulationHandlerとBoundingBoxを新しいバージョンのObjectManipulatorとBoundsControlにアップグレード
- 新しい Button Config Helper でカスタムボタンアイコンを正しく動作するように更新
MRTKのフォルダ名が短くなった
フォルダ名が短くなり、MRTKがルートになるようにまとめられました。
ツールボックスでUI/UXコンポーネントの検索と配置が楽に
MRTK Toolbox というUI/UXコンポーネントを簡単に探す機能が追加されました。
探索だけではなくて、いまのシーンにPrefabを置くこともできます。
この機能はFoundaitonではなく、Toolsの方に含まれています。
Tap to Placeの復活
Tap To Place という表面に沿ってオブジェクトを配置する機能が追加されました。 これはHoloLens 1 時代のHolotoolkitにあったもので、お世話になった人も多いのではないでしょうか。
Pressable Buttonsのボタン設定の簡易化とButtonConfigHelper
ボタンのアイコンやテキストが簡単に変更できるようになりました。 Pressable Button は、もともと設定が複雑性すぎるということでフィードバックがちょいちょい上がってたのですが、これが改善されました。
また、これはButtonConfigHelperというコンポーネントを使って実現しています。
Holo2スタイルのトグルボタン、チェックボックス、スイッチ、ラジオの追加
3DスタイルのUIではなく、2DスタイルなUIが追加されました。 3Dのレイアウトは配置が難しいので、プロトタイピングに使うにはとても便利です。
ハンドメニューの改善
ハンドメニューの暴発防止機能ですね。手のひらを返してメニューを出す方法が、前バージョンでありましたが、オブジェクトの操作中など暴発が多いので、手を見ている時にだけメニューが出せるオプションが追加されました。
ハンドメニューのサンプルの追加
従来のハンドメニューを更に拡張し、2つの面白いメニューが追加されました。
World Lock + 掴めるメニュー gifでは一瞬なのですが、ハンドメニューを出したあとに手から切り離すことができます
手を下げると自動でWorld Lock ハンドメニューを出した状態で手を下げると空間にとどまるメニューです。
ダイアログ (Experimental)
ダイアログコンポーネントが追加されました。ダイアログはよく使うパターンなので地味に嬉しい。
Dock (Experimental)
オシャレUIです。フィギュアのようにオブジェクトがおけるので面白いですね!車や大き目なオブジェクトでやるとインパクトがあるかもしれません。(うまく操作できるかはわからない)
Unity Profiler markers
Input System のどこでパフォーマンスを食っているのかがProfilerで可視化されるようになりました。
Windows API Checker のメソッド追加
WindowsApiCheckerに下記のメソッドが追加されました。
- IsMethodAvailable
- IsPropertyAvailable
- IsTypeAvailable
こんか感じで使うみたいです。
#if WINDOWS_UWP private static readonly bool isTryGetViewConfigurationSupported = Windows.Utilities.WindowsApiChecker.IsMethodAvailable( "Windows.Graphics.Holographic", "HolographicDisplay", "TryGetViewConfiguration"); #endif // WINDOWS_UWP
テキスト入力フィールドからキーボードを立ち上げるヘルパー
テキスト入力フィールドはそのままではキーボードが表示されないので、そのサポート機能です。
テキストフィールドにアタッチして使う
- UI_KeyboardInputField
- TMP_KeyboardInputField
が追加されています。
Grid Object Collection の機能追加
グリッド内の要素を中央に配置するか、左/右軸に沿って配置するか(行と列のレイアウトを行う場合は上/下軸)を選択できるようになりました。
オブジェクトの中心軸に沿ってアンカーを配置することで、UnityのLayout Groupの動作に合わせて Grid Object Collectionの動作が変更されました。
ハンズフリーな input simulation
これはめちゃくちゃ嬉しいアップデートです!
Shiftで手を出さなくてもマウスの左ボタンをクリックしてオブジェクトを操作できます!超楽!
Audio Spatializer の設定追加
MRTKの設定ダイアログでAudio Spatializerを指定できるようになりました。Microsoft Spatializerなどの新しいスペーシャライザをインストールすると、簡単に選択できるようにプロンプトが表示されます。
空間音響を使いたい場合は、Microsoft Spatializerをつかった方が標準のものよりパフォーマンスが若干いいそうです。
Object Manipulator のExperimentalがとれてSDKに
ManipulationHandlerの代わりとなるObjectManipulatorのExperimentalが外れました 物理に対応(掴んだまま床や壁にぶつけたり)にしたので、古い方はもういいでしょう。
Bounds Control の改善
Boundsが設定変更ごとに再生成されていたのが修正され、実行時に再設定できるようになったなど変更が大きく入りました。
破壊的変更
Eye Gaze API
IMixedRealityEyeGazeProviderを実装したGazeProviderのUseEyeTrackingのプロパティがIsEyeTrackingEnabledにリネームされました。
Eye Gaze のセットアップ
EyeGazeのセットアップステップが変更されました。 'IsEyeTrackingEnabled' のチェックボックスは、input pointer profileにあります。このチェックボックスを入れると、デフォルトのHeadGazeではなく、EyeGazeが有効になります。
既知の問題
Unity 2019.3でMRTK Configuratorダイアログに「Enable MSBuild for Unity」が表示されない
2019.3でMSBuild for Unityを有効にすると、パッケージの復元が無限ループになる可能性があるという問題があります#7239。
回避策として、NuGet for Unityを使用してMicrosoft.Windows.DotNetWinRTパッケージをインポートすることができます。
Unity 2018.4でアセンブリのバージョンと複数のプリコンパイル済みアセンブリの重複
Unity 2018.4でプラットフォームをスタンドアロンからUWPに切り替えてからスタンドアロンに戻すと、コンソールに以下のようなエラーが出ることがあります。
PrecompiledAssemblyException: Multiple precompiled assemblies with the same name Microsoft.Windows.MixedReality.DotNetWinRT.dll included for the current platform. Only one assembly with the same name is allowed per platform. Assembly paths
Assets\MRTK\Examples\Demos\HandTracking\Scenes\Utilities\InspectorFields\AssemblyInfo.cs(6,12): error CS0579: Duplicate 'AssemblyVersion' attribute
これらのエラーは、MSBuildForUnityでの削除処理に問題があるためです。この問題を解決するには、スタンドアロンで、AssetsのルートにあるDependenciesフォルダを削除し、unityを再起動します。
詳細については、issue 7948を参照してください。
Unity 2019.3で2Dスレートでアプリが表示される
Unity 2019.3を使用している場合、XRサポートを有効にすると、デフォルトのSDK(レガシー)やプラグイン(XR Mangement)が設定されません。その結果、アプリケーションが 2D スレートに制約されます。これを解決するための詳細は、MRTKのビルドとデプロイの記事に記載されています。
Unity 2019.3. ARMのビルドアーキテクチャ
Unity 2019.3では、Visual StudioでビルドアーキテクチャとしてARMを選択するとエラーが発生する既知の問題があります。推奨される回避策は、ARM64用にビルドすることです。それがオプションでない場合は、Edit > Project Settings > Player > Other SettingsでGraphics Jobsを無効にしてください。詳細については、「ビルドとデプロイ」を参照してください。
ランタイムプロファイルのスワップ
MRTKは実行時のプロファイルのスワップを完全にはサポートしていません。この機能は将来のリリースに向けて調査中です。詳細はissue 4289、5465、5466を参照してください。
Unity 2018: .NET Backend と AR Foundation
Unity 2018では、.NETスクリプトバックエンドを使用してUniversal Windows Platformプロジェクトをビルドすると、Unity AR Foundationパッケージが失敗するという問題があります。
この問題を回避するには、次のいずれかの手順を実行してください。