MRが楽しい

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

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

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

前回記事

以下の前回記事からの続きです。
bluebirdofoz.hatenablog.com

MRTKとは

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

MRTKを利用したプロジェクト準備

初めに MRTK をプロジェクトにインポートしてプロジェクトの基本構築を行います。
MRTK を使った基本プロジェクトの環境構築手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

MagicLeap2 向け MRTK のパッケージを利用するには Foundation パッケージのみが必須パッケージになります。
OpenXR plugin についても不要です。


MRTKのURPの対応

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


MRTKStandardShaderのAndroidの対応

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

Assets/MRTK/Shaders/MixedRealityStandard.shader

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

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

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

MagicLeap2向けMRTKのインポート

MagicLeap2 向けのコンポーネントやプロファイルを MRTK に追加するためのパッケージをインポートします。
アプリケーションの開発に MRTK を利用したい場合はこれを Magic Leap Hub から取得します。
Magic Leap Hub を起動して[Package Manager]をクリックします。

[Package Manger]画面の[All]タブを開き、[Unity Packages]項目にある[Unity MRTK]をインストールします。

[OpenFolder]でダウンロードフォルダを確認すると、mrtk-ml2-X.XX.X-vX.unitypackage ファイルが保存されています。

unitypackage を Unity プロジェクトを開いた状態で実行するか Assets フォルダにドラッグしてインポートします。
これで MagicLeap2 向け MRTK のインポートは完了です。

エラー対応

2023/5/17現在、Unity MRTK のバージョン 1.6.0-v1 インポート時に筆者環境では以下のエラーが発生しました。

Assets\MRTK-Magic Leap 2\Providers\MagicLeap\Scripts\MagicLeapHandJointProvider.cs(16,7): error CS0246: The type or namespace name 'Mono' could not be found (are you missing a using directive or an assembly reference?)
Assets\MRTK-Magic Leap 2\Samples\UI\Scripts\UserInterface.cs(17,7): error CS0246: The type or namespace name 'Mono' could not be found (are you missing a using directive or an assembly reference?)

共に該当行をコメントアウトまたは削除することでエラーを回避できます。

パッケージ内のサンプルシーンを試す

MagicLeap2 用 MRTK のパッケージには幾つかのサンプルシーンが含まれています。
以下のフォルダからシーンを選択します。

Assets/MRTK-Magic Leap 2/Samples/

例えば HandInteractions/Scenes/HandInteractionExamplesMagicLeap.unity で以下のハンドインタラクションのサンプルシーンが試せます。