MRが楽しい

MRやVRについて学習したことを書き残す

MRTK 2.7 のインポートと HoloLens2 向け基本設定の手順

本日は MRTK の使い方枠です。
MRTK 2.7 のインポートと HoloLens2 向け基本設定の手順を記事にします。
f:id:bluebirdofoz:20210701023234j:plain

MRTKとは

MRTK-Unity は Unity でのクロスプラットフォームのMRアプリ開発を支援するための機能セットを提供する Microsoft 主導のプロジェクトです。

・空間的な相互作用と UI に対するクロスプラットフォーム入力システムと構成要素を提供します。
・エディタ内シミュレーションを介したプロトタイピングを可能にし、プロジェクトの変更をすぐに確認できます。
・開発者がコアコンポーネントを交換できるようにする拡張可能なフレームワークとして設計されています。
・幅広いプラットフォームのサポートを含みます。

プラットフォームサポートデバイス
OpenXR (Unity 2020.3)Microsoft HoloLens 2
Windows Mixed Reality ヘッドセット
Windows Mixed RealityMicrosoft HoloLens
Microsoft HoloLens 2
Windows Mixed Reality ヘッドセット
Oculus (Unity 2019.3 or newer)Oculus Quest
OpenVRWindows Mixed Reality ヘッドセット
HTC Vive
Oculus Rift
Ultraleap Hand TrackingUltraleap Leap Motion controller
MobileiOS
Android

github.com

MRTKのダウンロード

MRTK には以下の3つの取得方法があります。
・Unity Package
・Unity Package Manager
・Mixed Reality Feature Tool

今回は Release ページから Unity Package ファイルを直接取得する手順を紹介します。
github.com
f:id:bluebirdofoz:20210701023258j:plain

MRTK のパッケージリンクをクリックしてダウンロードします。
2021/07/01 現在、最新のバージョンは v 2.7.2 です。
f:id:bluebirdofoz:20210701023346j:plain

各パッケージについて

MRTK には以下の5つのパッケージが存在します。
・Foundation:基本パッケージ
・Examples:MRTKの利用サンプルシーンを含むパッケージ
・Tools:便利なツール機能を含むパッケージ
・Extensions:試験中の拡張機能を含むパッケージ
・TestUtilities:テスト用機能を含むパッケージ

必須となるのは Foundation のみです。
その他のパッケージは全てオプションとなります。

プロジェクトの新規作成

Unityプロジェクトの作成

v2.7.2 における MRTK の推奨 Unity バージョンは 2019.4 になります。
Unity を起動して[新しいプロジェクトの作成]を行います。
f:id:bluebirdofoz:20210701023402j:plain

ビルドターゲットの変更

HoloLens2 向けのアプリケーションを作成する場合はビルドプラットフォームを UWP に変更します。
メニューから[File -> Build Settings]を選択し、[Build Settings]ダイアログを開きます。
f:id:bluebirdofoz:20210701023416j:plain

[Platform]で[Universal Windows Platform]を選択し、[Switch Platform]を実行します。
f:id:bluebirdofoz:20210701023428j:plain

パッケージのインポート

利用する Unity Package のインポートを行います。
今回は Microsoft.MixedReality.Toolkit.Unity.Foundation のみインポートします。
f:id:bluebirdofoz:20210701023439j:plain

Foundation パッケージはインポート完了時に[MRTK Project Configurator]ダイアログが表示されます。
表示されない、または閉じてしまった場合は[Mixed Reality -> Toolkit -> Utilities - Configure Project for MRTK]から開くことができます。
f:id:bluebirdofoz:20210701023452j:plain

なお、オプションパッケージを利用する場合も必ず Foundation からインポートを行います。

プロジェクトの基本設定

最初に XR パイプラインに[Legacy XR]または[XR SDK]のどちらを利用するか選択します。
今回は最新の[XR SDK]を選択します。
f:id:bluebirdofoz:20210701023504j:plain

ターゲットデバイス向けのプラグインの要求ダイアログが表示されます。
[Show Settings]をクリックして[Project Settings]ダイアログを開きます。
f:id:bluebirdofoz:20210701023519j:plain

HoloLens2 向けのアプリケーションを作成する場合は[UWP]タブを開きます。
[Plug-in Providers]内の[Windows Mixed Reality]にチェックを入れます。
f:id:bluebirdofoz:20210701023530j:plain

目的のビルドターゲットの XR プラグインを指定しているかの確認ダイアログが表示されます。
HoloLens 向けのアプリケーション作成であれば、先ほどの手順通りのチェックをしていれば問題ありません。
f:id:bluebirdofoz:20210701023541j:plain

プロジェクトの基本設定ダイアログが表示されるので[Apply]をクリックします。
ここでは以下の設定が行われます。
・デフォルトの空間認識レイヤーを作成する
・マイクの権限設定を許可にする
f:id:bluebirdofoz:20210701023554j:plain

設定が完了すると、確認ダイアログに切り替わるので[Next]をクリックします。
f:id:bluebirdofoz:20210701023608j:plain

TextMeshPro のインポートダイアログが表示されます。
MRTK では多くの UI に TextMeshPro が利用されているので、ここで[Import TMP Essentials]をクリックしてインポートを行います。
f:id:bluebirdofoz:20210701023624j:plain

これでプロジェクトの基本設定は完了です。
f:id:bluebirdofoz:20210701023635j:plain

シーンの基本構成

次に HoloLens2 向けのアプリケーションのシーンの基本構成を設定します。
メニューから[Mixed Reality -> Toolkit -> Add to Scene and Configure..]を選択します。
f:id:bluebirdofoz:20210701023646j:plain

するとシーンの Hierarchy に以下のゲームオブジェクトが追加されます。
・MixedRealityToolkit
・MixedRealityPlayspace
・MixedRealitySceneContent

Mixed Reality Toolkit:フレームワーク全体の中央構成エントリポイントを提供するツールキットの本体。
MixedRealityPlayspace:ヘッドセットの親オブジェクト。ヘッドセット/コントローラーおよびその他の必要なシステムを管理します。メインカメラはプレイスペースの子オブジェクトとして移動します。
MixedRealitySceneContent:デバイスごとに適切にスケーリングするシーンコンテンツの配置場所。

f:id:bluebirdofoz:20210701023701j:plain

次に HoloLens2 に最適化されたシーン設定とするため、プロファイルを設定します。
MixedRealityToolkit オブジェクトを選択し、Inspector ビューを開きます。
f:id:bluebirdofoz:20210701023715j:plain

プルダウンからいくつかのデフォルト設定のプロファイルを選択できます。
XR パイプラインに[XR SDK]を選択しており、かつ、HoloLens2 に最適化されたシーン設定とする場合[ObsoleteHololens2XRSDKConfigurationProfile]を選択します。
f:id:bluebirdofoz:20210701023726j:plain

[ObsoleteHololens2XRSDKConfigurationProfile]は HoloLens2 向けに最適化されたプロファイルです。
負荷軽減のため、空間メッシュやハンドメッシュが無効化されています。
f:id:bluebirdofoz:20210701023743j:plain

パッケージ名の変更(オプション)

メニューから[Edit -> Project Settings]を開き、[Player -> UWP -> Publishing Settings]の項目を開きます。
[Package name]の項目をデフォルトの[Template3D]から任意のパッケージ名に変更します。
f:id:bluebirdofoz:20210701023754j:plain

パッケージ名の変更はアプリの作成において必須の作業ではありません。
しかし、同名のパッケージ名のアプリが存在するとインストール時にアプリを上書きするなどの問題が発生するので変更することを推奨します。
f:id:bluebirdofoz:20210701023804j:plain

これでMRTK 2.7 のインポートと HoloLens2 向け基本設定は完了です。