【実機なしでも出来る】HoloLens 2 のチュートリアル 初級レベルの MRTK チュートリアル やってみました

はじめに

MRTKチュートリアルを行ったので情報をまとめました。

間違っている部分があればご指摘いただければ幸いです。

開発環境

  • Windows 10 Enterprise
  • Unity 2019.4.1f1
  • MRTK 2.5.3

1~2章 はじめに&プロジェクトの初期化と最初のアプリケーションの配置

この章ではプロジェクトを始めるための準備+プロジェクト作成を行います。
チュートリアル通りに進めていれば特に引っかかる部分はありませんでした。

3章 プロジェクトの初期化と最初のアプリケーションの配置

プロファイルの設定を行います。
プロファイルは入れ子ツリーで構成要素を保持しており、defaultプロファイルは編集することができません。
なので設定を変えたい場合は一番上の階層のプロファイルから順番に新しいプロファイルを作成しなければいけません。

例: 3-5 空間認識メッシュの可視性を変更する

詳細 Mixed Reality Toolkit プロファイル設定ガイド

4章 シーンへのオブジェクトの配置

オブジェクトの配置、整列を行います。
整列にはGridObjectCollectionを使用します。

GridObjectCollection

子オブジェクトを3D空間に整列する機能を持っています。
MR用アプリではUIを3D空間に配置する必要があるため、このコンポーネントがよく使用されます。
詳細 Object Collection (オブジェクト コレクション)

5章 ソルバーを使用した動的なコンテンツの作成

ソルバーを使用して視点誘導、オブジェクトの操作を実装します。
視点誘導にはDirectionalIndicator、オブジェクトの操作にはTapToPlaceを使用します。

詳細 Solver

DirectionalIndicator

追跡対象に設定したオブジェクトの方向を向くようにGameObjectの回転と位置を自動で調整してくれます。
ViewOffsetプロパティで追跡対象オブジェクトと視点がどれくらい離れたら誘導を表示するのかを設定することができます。
詳細 DirectionalIndicator

TapToPlace

オブジェクトを3D空間にそって操作できるようになります。
On Placing Started() はオブジェクトが選択されたときに登録された関数を呼び出します。
SurfaceNormalOffsetプロパティはオブジェクトを3D空間上に配置する場合の、地表とオブジェクトの距離を設定することができます。
詳細 Tap To Place

6章 ユーザー インターフェイスの作成

3D空間上で固定されたボタン、ユーザーに追従するメニュー、ヒントを作成します。

ボタンにはGridObjectCollectionとInteractableを使用します。

Interactable

オブジェクトに対する様々な入力に対してイベントを設定できます。
OnClick() はポインターでクリックされたときに登録している関数を実行します。
詳細 Interactable

追従するメニューの作成にはRadialViewを使用します

RadialView

追跡対象に設定したオブジェクトに追従します。
詳細 Solver

ヒントにはToolTipSpawnerとTooltipPrefabを使用します。

ToolTipSpawner

タップまたはフォーカスで設定したPrefabを作成します。
詳細 ToolTip ToolTipSpawner

7章 3D オブジェクトの操作

3Dオブジェクトの操作、3D領域の操作を行います。
3Dオブジェクトの操作にはNearInteractionGrabbable、Object Manipulatorを使用します。

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

9章 音声コマンドの使用

音声入力でメニューが使用できるようにします。
MixedRealityToolkitを使用して音声コマンドを作成し、SpeechInputHandlerでイベントを設定します。
詳細 Speech

まとめ

初級チュートリアルを行うことでMRTKの基本的な操作を学ぶことができました。
これから他のチュートリアルも進めていき、知識をより深めていきます。

参考

MRTK チュートリアルの概要 – Mixed Reality

What is the Mixed Reality Toolkit | Mixed Reality Toolkit Documentatio…

https://hololabinc.github.io