MRが楽しい

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

Magic Leap 2の開発環境構築手順 その6(MRTK を用いたプロジェクトの構成)

Magic Leap 2 のプロジェクト作成手順をまとめます。
本記事は MRTK を用いたプロジェクトの構成を行います。

MRTKとは

MRTK(MixedRealityToolkit) は Unity でのクロスプラットフォームのMRアプリ開発を支援するための機能セットを提供する Microsoft 社のプロジェクトです。
詳細は以下のページを参照ください。
github.com

MagicLeap2用MRTKのダウンロード

アプリケーションの開発に MRTK を利用したい場合は MagicLeap2 用 MRTK が提供されているのでパッケージを The Lab 2.0 から取得します。
The Lab 2.0 を起動して[Package Manager]をクリックします。

[Package Manger]画面の[All]タブを開き、[Unity Packages]項目にある[Unity MRTK]の Install アイコンをクリックします。

インストールアクションが追加されるので[Apply Changes]をクリックしてインストールを実行します。

MagicLeap2 用 MRTK がダウンロードできました。

MRTK利用のためのプロジェクト準備

MRTK を利用するにあたり幾つかのプロジェクト設定やアセットのインポートを行います。

ハンドトラッキングの設定

メニューから[Edit -> Project Settings..]を開き、[Player]タブの[Android]欄から[Other Settings]パネルを開きます。

[Configuration -> Active Input Handling]の項目を[Both]に変更します。

TMPEsentialResourcesのインポート

メニューから[Windows -> TextMeshPro -> Import TMP Essential Resources]を選択して[Import]します。

スクリプト変更時処理

メニューから[Edit -> Preferences..]を開きます。
[General -> Script Changes While Playing]の項目で[Stop Playing and Recompile]か[Recompile and Continue Playing]を選択します。

URPの設定

プロジェクトに URP の設定をインストールして URP アセットの設定を行います。
Unity プロジェクトの作成を前回記事の手順通りに実施していれば適切な URP 設定が行われています。

カスタムマニフェストの設定

[Edit -> Project Settings]を開き、[Player]タブの[Android]欄を開きます。
[Publishing Settings]パネル内の[Build -> Custom Main Manifest]にチェックを入れてカスタムマニフェストを有効化します。

[MagicLeap -> Manifest Settings]タブを開き、適切な権限設定を行います。
今回はハンドトラッキングを加えた以下の3つの権限をチェックしました。
・CONTROLLER_POSE
・HEAD_POSE
・HAND_TRACKING

MRTK本体のインポート

MRTK の本ライブラリをプロジェクトにインポートします。

MRTKの推奨インポート手順

MRTK は Mixed Reality Feature Tool を使ったインポートが推奨されています。
こちらの手順は以下の公式マニュアルを参照ください。
docs.microsoft.com

本記事では手順の簡易化のため、unitypackage を使って MRTK をインポートする手順を記述します。

unitypackageを使ったMRTKのインポート

以下のページから最新の MRTK パッケージをダウンロードします。
github.com

Asset 欄からパッケージをダウンロードします。
Foundation.X.X.X.unitypackage と Examples.X.X.X.unitypackage が必須パッケージになります。そのほかのパッケージは必要に応じて追加してください。

初めに Foundation.X.X.X.unitypackage を Unity プロジェクトを開いた状態で実行するか Assets フォルダにドラッグして[import]します。

API のアップデート要求ダイアログが表示されます。
[Yes, for these and other files that might be found later]を選択してアップデートを実行します。

インポートが完了するとダイアログが表示されます。案内に従って初期設定を行います。



次に Examples.X.X.X.unitypackage を Unity プロジェクトを開いた状態で実行するか Assets フォルダにドラッグして[import]します。

これで MRTK のインポートは完了です。

MRTKのカスタマイズ

インポートした MRTK について幾つかの変更を行う必要があります。

URPの対応

今回は URP プロジェクト上で MRTK を利用するので MRTK 内のシェーダーを URP に対応させる必要があります。
メニューから[Mixed Reality -> Toolkit -> Utilities -> Upgrade MRTK Standard Shader for Universal Render Pipeline]を実行します。

Androidの対応

MRTK 内のシェーダを Android プラットフォームに対応させる必要があります。
以下のフォルダにある MixedRealityStandard.shader を開いて直接編集します。

Assets/MRTK/StandardAssets/Shaders/MixedRealityStandard.shader

シェーダの編集箇所は以下の通りです。

1.775行目、fixed facing : VFACE を bool facing : SV_IsFrontFace に変更する。

2. 956行目と959行目、* facing を * (facing ? 1.0 : -1.0) に変更する。

Magic Leap 2用MRTKのインポート

The Lab 2.0 のインストール項で[Unity MRTK]パッケージのダウンロードを実施していれば、以下のフォルダに mrtk-ml2-X.XX.X-vX.unitypackage ファイルが保存されています。
これを Unity プロジェクトを開いた状態で実行するか Assets フォルダにドラッグして MRTK をインポートします。

%USERPROFILE%/MagicLeap/tools/unity/mrtk/<Version>/mrtk-ml2-X.XX.X-vX.unitypackage


フォルダが見当たらない場合

上記のフォルダが見当たらない場合は The Lab 2.0 を起動し、[Package Manager]のページを開きます。
[Unity MRTK]の項目を開き、[Open Folder]ボタンをクリックするとダウンロード先のフォルダが確認できます。

これで Magic Leap 2用MRTKのインポートは完了です。

次は MRTK を用いたサンプルシーンの作成とビルドを行います。
bluebirdofoz.hatenablog.com