はじめに
MRTKチュートリアルを行ったので情報をまとめました。
間違っている部分があればご指摘いただければ幸いです。
開発環境
- Windows 10 Enterprise
- Unity 2019.4.1f1
- MRTK 2.5.3
1~2章 はじめに&プロジェクトの初期化と最初のアプリケーションの配置
この章ではプロジェクトを始めるための準備+プロジェクト作成を行います。
チュートリアル通りに進めていれば特に引っかかる部分はありませんでした。
3章 プロジェクトの初期化と最初のアプリケーションの配置
プロファイルの設定を行います。
プロファイルは入れ子ツリーで構成要素を保持しており、defaultプロファイルは編集することができません。
なので設定を変えたい場合は一番上の階層のプロファイルから順番に新しいプロファイルを作成しなければいけません。
例: 3-5 空間認識メッシュの可視性を変更する
root
└ 空間認識
└ メッシュオブザーバー
└ 表示オプション
root
└ 空間認識
空間認識
└ メッシュオブザーバー
メッシュオブザーバー
└ 表示オプション
詳細 Mixed Reality Toolkit プロファイル設定ガイド
4章 シーンへのオブジェクトの配置
オブジェクトの配置、整列を行います。
整列にはGridObjectCollectionを使用します。
GridObjectCollection
子オブジェクトを3D空間に整列する機能を持っています。
MR用アプリではUIを3D空間に配置する必要があるため、このコンポーネントがよく使用されます。
詳細 Object Collection (オブジェクト コレクション)
5章 ソルバーを使用した動的なコンテンツの作成
ソルバーを使用して視点誘導、オブジェクトの操作を実装します。 視点誘導にはDirectionalIndicator、オブジェクトの操作にはTapToPlaceを使用します。チュートリアルのソルバーやってみましたhttps://t.co/Kko2UGPoAR#HoloLens2 #MRTK pic.twitter.com/IqscZeyuS3
— 原口昂弥 (@k_haraguchi55) April 1, 2021
詳細 Solver
DirectionalIndicator
追跡対象に設定したオブジェクトの方向を向くようにGameObjectの回転と位置を自動で調整してくれます。
ViewOffsetプロパティで追跡対象オブジェクトと視点がどれくらい離れたら誘導を表示するのかを設定することができます。
詳細 DirectionalIndicator
TapToPlace
オブジェクトを3D空間にそって操作できるようになります。
On Placing Started() はオブジェクトが選択されたときに登録された関数を呼び出します。
SurfaceNormalOffsetプロパティはオブジェクトを3D空間上に配置する場合の、地表とオブジェクトの距離を設定することができます。
詳細 Tap To Place
#6章 ユーザー インターフェイスの作成
MRTKチュートリアル6章のUIの作成をしましたhttps://t.co/IQeYI0BgfG#HoloLens2 #MRTK pic.twitter.com/YsPaK33h7R
— 原口昂弥 (@k_haraguchi55) April 1, 2021
3D空間上で固定されたボタン、ユーザーに追従するメニュー、ヒントを作成します。
ボタンにはGridObjectCollectionとInteractableを使用します。
Interactable
オブジェクトに対する様々な入力に対してイベントを設定できます。
OnClick() はポインターでクリックされたときに登録している関数を実行します。
詳細 Interactable
追従するメニューの作成にはRadialViewを使用します
RadialView
追跡対象に設定したオブジェクトに追従します。
詳細 Solver
ヒントにはToolTipSpawnerとTooltipPrefabを使用します。
ToolTipSpawner
タップまたはフォーカスで設定したPrefabを作成します。
詳細 ToolTip ToolTipSpawner
##7章 3D オブジェクトの操作
3Dオブジェクトの操作、3D領域の操作を行います。 3Dオブジェクトの操作にはNearInteractionGrabbable、Object Manipulatorを使用します。MRTKチュートリアル7章の組み立てhttps://t.co/IQeYI0BgfG#HoloLens2 #MRTK pic.twitter.com/MTFjskB4fB
— 原口昂弥 (@k_haraguchi55) April 1, 2021
NearInteractionGrabbable
コンポーネントしたオブジェクトを掴めるようにします。
詳細 NearInteractionGrabbable
Object Manipulator
片手または両手を使ったオブジェクトの移動、スケール変更、回転を可能にします。
Two Handed Manipulation Typeプロパティで両手操作の移動、スケール、回転の有効・無効を切り替えることができます。
多関節ハンド入力に反応するようにするにはNearInteractionGrabbableが必要になります。
詳細 Object Manipulator
3D領域の操作にはBoundsControl、NearInteractionGrabbable、Object Manipulatorを使用します。
BoundsControl
対象オブジェクトをボックスで操作できるようにします。
詳細BoundsControl
8章 視線追跡の使用
ラベルに視線が向いている間。フォントサイズを大きくする機能を実装します。 EyeTrackingTargetを使用します。 ### EyeTrackingTarget オブジェクトに視線が向いた時のイベントを設定できます。 On Look At Start () は視線が向いたときに登録している関数を呼び出します。 On Look Away () は視線が外れたときに登録している関数を呼び出します。 詳細 [EyeTrackingTarget](https://hololabinc.github.io/MixedRealityToolkit-Unity/api/Microsoft.MixedReality.Toolkit.Input.EyeTrackingTarget.html)MRTKチュートリアル8章の視線操作を実装しましたhttps://t.co/Mmvz0geN27#HoloLens2 #MRTK pic.twitter.com/tukvNmJGdb
— 原口昂弥 (@k_haraguchi55) April 2, 2021
9章 音声コマンドの使用
音声入力でメニューが使用できるようにします。 MixedRealityToolkitを使用して音声コマンドを作成し、SpeechInputHandlerでイベントを設定します。 ちなみに日本語も使えます。 詳細 [Speech](https://hololabinc.github.io/MixedRealityToolkit-Unity/Documentation.ja/Input/Speech.html)MRTK の音声認識試しました!
— 原口昂弥 (@k_haraguchi55) April 13, 2021
日本語もサポートされていました。
漢字も使用できます。#MRTK #HoloLens2 pic.twitter.com/T2BHWSBViz
まとめ
初級チュートリアルを行うことでMRTKの基本的な操作を学ぶことができました。
これから他のチュートリアルも進めていき、知識をより深めていきます。
参考