夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK v2.4がリリースされました。 変更点をチェックしてみた。

HoloLensやWindowsMixedRealityイマーシブヘッドセットをUnityで開発するうえで便利なツール集であるMixedRealityToolkitの最新バージョンであるv2.4が昨夜リリースされました。

いくつか新機能などの変更点があるようなのでチェックしてみました。

変更点はMRKTのドキュメントにまとめられています。本記事ではここから一部画像を引用しています。

microsoft.github.io

〇ウルトラリープがサポートされました。

ウルトラリープはハンドトラッキングセンサーである『LeapMotion』の流れを汲んだUltrahaptics社のハンドトラッキングセンサーデバイスです。(LeapMotionは2019年5月Ultrahaptics社に買収されています。)

これまでLeapMotionをHoloLens 1stに積載してHoloLens 1stでHandTrackingを使用できるようにした開発者や、LeapMotionとLookingglassを組み合わせたMRTKの作品などありましたが今回からMRTKでも正式にサポートされました。

上部の[MixedRealitytoolkit]/[utility]/[LeapMotion]から機能が使用できるようです。

f:id:Holomoto-Sumire:20200528084442j:plain

〇Migration window(移動ウィンドウ)

f:id:Holomoto-Sumire:20200528082414p:plain

古いバージョンの非推奨のコンポーネントを最新版にアップグレードするなどMRTKの変更はある際に[Migration window]を用いることで既存のコードを維持したりすることができます。

〇MRTK フォルダのレイアウトの変更

 個人的に嬉しいアップデートです。

 MixedRealityToolkitには

・MixedRealityToolkit

・MixedRealityToolkit.Examples

・MixedRealityToolkit.Extensions

・MixedRealityToolkit.Providers

・MixedRealityToolkit.SDK

・MixedRealityToolkit.Services

・MixedRealityToolkit.Tests

・MixedRealityToolkit.Tools

と8つのフォルダで構成されていました。

今回のバージョンからデフォルトでMRTKという名の一つのフォルダの中にそれぞれ配置されるようになりました。

f:id:Holomoto-Sumire:20200528085345j:plain

MixedRealityToolkit.Generatedのみこれまで通りAseets直下に生成されるようです。このフォルダでは開発者が作成したMixedRealityToolkitのprovider等が生成されます。

ちなみにこれまではAssets直下にフォルダが8つ生成されるので手動で一つのフォルダにまとめる必要がありました(面倒くさい)

f:id:Holomoto-Sumire:20200528090741j:plain

〇MRTK ツールボックス

MRTK ツールボックスは、MRTK UX Prefab コンポーネントを簡単に検出し、スポーンすることを可能にする Unity エディタ ウィンドウ ユーティリティです。ウィンドウの上部にある検索バーを使用して、ビュー内のアイテムをフィルター処理できます。ツールボックス ウィンドウは、現在のシーンに MRTK のインボックス プレハブを生成するように設計されています。

上部タブから[MixedRealityToolKit]/[ToolBox]を選ぶことで新しいウィンドウが開きます。

f:id:Holomoto-Sumire:20200528092235j:plain

f:id:Holomoto-Sumire:20200528092415j:plain

今度の土日に調査してみます。

〇Tap to Place

オブジェクトを選択することでオブジェクトが頭に沿って移動できるようになり、もう一度選択することでSpatialMesh上に配置する機能です。

旧HoloToolkit(MRTKv1)では使用する機会が多い機能でしたので、HoloLens 2の登場によってユーザーのとれるInputが増えた中でどのように使用できるか楽しみです。

(逆に今までv2ではなかったのですね…)

f:id:Holomoto-Sumire:20200528085533j:plain

〇新しい HoloLens 2 スタイルトグル ボタン - チェックボックス、スイッチ、ラジオ

f:id:Holomoto-Sumire:20200528092807g:plain

新しいスタイルのUIボタンが追加されたようです。

既存のUIボタンに関しては以前調べています。

redhologerbera.hatenablog.com

〇ボタン設定ヘルパーに Pressable Buttonsを追加

UIボタンのアイコンとテキストを簡単に変更できるようになりました。

アイコンは、四角形、スプライト、および TextMesh Pro の SDF フォント テクスチャが使用できるようです。

〇ハンドメニューの改善

ハンドメニューは多くの用途に適応されています。オブジェクトの操作や他のコンテンツとやり取りしたりしながら偶発的に誤ったアクティベーションを行うこと(誤タッチ)を防ぐために、新しい「Gaze Activation」オプションが[HandConstraintPalmUp.cs]に追加されました。

このオプションを使用すると、ユーザーが手を見るまでメニューが誤って表示されることがなくなるようです。

〇ダイアログ (実験的機能)

ダイアログ UI は HoloLens 2 シェル スタイルの新しいデザインの更新プログラムを使用して HoloToolkit から移植されました。

〇ドック(実験的機能)

このコントロールを使用すると、あらかじめ決められた位置の中または外にオブジェクトを移動し、パレット、シェルフ、およびナビゲーション バーを作成できます。

〇ユニティ プロファイラー マーカー

入力システムとデータ・プロバイダにUnity Profilerマーカーが追加されました。これらのマーカーは、MRTK入力システムのどこに時間が費やされているかについての詳細な情報を提供し、アプリケーションの最適化に役立てることができます。 マーカーの形式は「[MRTK] ClassWithoutNamespace.Method」です。

〇MixedRealityKeyboard for UnityUI、TextMeshProでテキスト入力フィールドを動作させるためのヘルパー(実験的機能)

Unity UIのテキスト入力フィールドに追加して、フィールドがクリックされたときにHoloLens 2とWindows Mixed Reality Keyboardが表示されるようにするための、[UI_KeyboardInputField]と[TMP_KeyboardInputField]という2つのヘルパーコンポーネントを導入されたようです。

〇グリッド オブジェクト コレクションの配置オプション

GridObjectCollectionは本ブログでも以前サンプルを見たオブジェクトのレイアウトを自動的に行ってくれる機能です

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

このレイアウト方法にグリッド内の要素を中央に配置するか、左/右軸に沿って配置するか(行と列のレイアウトを行う場合は上/下軸)を選択できるようになったようです。

〇グリッド オブジェクト コレクションのアンカーの変更

オブジェクトの中心軸に沿ってアンカーを配置することで、Unityのレイアウトグループの動作に合わせてグリッドオブジェクトコレクションの動作を変更され。旧来のグリッドオブジェクトコレクションの動作は、AnchorAlongAxisフィールドで切り替えることがで着るようになったようです。

〇調整された入力シミュレーションカメラ制御

 Unityのエディタでシミュレーションを使用したカメラ制御の速度が遅くなり、よりスムーズな体験ができるようになり、フレームレートから解放されたようです。右Ctrlキーの代わりに右Shiftキーで高速カメラコントロールが有効になりました。

ハンズフリーGGV入力シミュレーション

Unityのエディタ内シミュレーションサービス内で、手を表示しなくてもオブジェクトと対話できるようにしました。視線カーソルが対話可能なオブジェクトの上に来るようにカメラを回転させ、マウスの左ボタンをクリックしてオブジェクトと対話します。(これは便利!)

〇ボタン構成ヘルパー

f:id:Holomoto-Sumire:20200528094303p:plain

Button Config ヘルパーはMRTKボタンのカスタマイズを容易にするエディタ機能です。次の動作がこれまでよりもはるかに簡単にできるようになりました。

・ボタンのラベルテキストを更新する

・ボタンクリックイベントリスナーの追加

・ボタンアイコンの変更

〇MRTK 設定ダイアログでのオーディオ空間化器の選択

 MRTKの設定ダイアログでaudio spatializerを指定できるようになりました。Microsoft Spatializerなどの新しいスペーシャライザをインストールすると、簡単に選択できるように再プロンプトが表示されます。

Microsoft Spatializerに関しては以前少し触れています。

redhologerbera.hatenablog.com

〇オブジェクト マニピュレータが SDK に段階的に追加されました

以前実験的機能の一つであったObjectManipulatorはSDKに移行し、実験的な機能ではなくなりました。

このコントロールは、現在非推奨となっている既存のManipulationHandlerクラスを置き換えるものです。ObjectManipulator には、より柔軟な制約システムが追加され、物理学に正しく反応するようになりました。

〇境界コントロールの改善

Bounds controlのテストカバレッジを大幅に拡大し、バウンズコントロールが設定変更時にビジュアルを再作成しなくなりました。また、実行時に任意のプロパティを再設定できるようになりました。また、プロパティ[ DrawTetherWhenManipulating] と [HandlesIgnoreCollider]がハンドルタイプごとに設定可能になりました。

今回ドキュメントでオープンにされた新機能は以上です。フォルダの統一化やアイコンのツールなど今後触ってまとめます。

最近はMRTK PulseShaderに苦戦していますが、乗り切ってほかの機能等も細かく見ていきたいです。