本日はMRTK3枠です。
実は筆者はMRTK3の中でMixedRealityGraphicsToolsの開発に参加しているくらいMRGTに関しては詳しいつもりでいるのですが、MRTK3のほかのパッケージは最初に一度触った以来全く触ってきていなかったため今回MRTK3の導入とセットアップを紹介します。
〇MRTK3の内容
MRTK3はMicrosoftによって提供されているMixedRealityデバイス向けの開発SDKです。
23年1月にMRTKチームの解散が発表されていますが、MRTK3自体はOSSの形で開発が行われていることもあり有志が引き継ぐような形で開発が行われているものと思われます。
23年2月現在パブリックプレビュー段階ではありますが、MRTKチームは解散前の22年末に2月に正式リリースを告知していたため最終の詰めの段階にはなっているものと思われます。
MRTK3の特徴としてOpenXRとUnityのXRInteractionToolkitに準じて提供されており 加えて機能ごとにパッケージが提供されているため、依存関係がMRTK2に比べ大きく改善されておりOVRIntegrationやPicoSDKなどMicrosoft系以外のSDKとの親和性が上がり、機能ごとにMRTKを使用することができるようになりました。
〇環境
・Unity 2021.3.5f1
・UniversalRenderPipeline(URP)
・MixedRealityFeatureTools
・Windows 11PC
〇導入
MRTK3を導入する方法はいくつかありますが、MRTK3は前述のとおりMRTKv2に比べ機能ごとの全体としてのパッケージ数が増えているためMixedRealityFeatureToolsを使用して一括で導入していきます。
①MixedRealityFeatureToolsを起動しUnityプロジェクトのパスを指定します。
このパスはUnityプロジェクトのAssetsフォルダが含まれるパスを指定します。
②パッケージを選択します。 今回は次のパッケージを選択しました。
〇MRTK3
・MRTK Graphics Tools
・MRTKInput
・MRTK Standard Assets
・MRTK UX Components
〇Platform Support
・MixedReality OpenXR Plugin
③MixedRealityFeatureToolsの指示に従って次へ進めます。
MixedRealityFeatureToolsでは選択したパッケージの依存関係として必要なパッケージを自動的に追加でインポートすることができます。
これによってUnityPackageにMRTK3が導入されます。
〇プロジェクトの構成
①Unityを開くと次のようなダイアログが表示されます。
これはUnityのInput System(入力系)がデフォルトであたらしいものが使用されていますが、MRTK3を使用するためにはBothの設定を行う必要があります。
Yesを選択することでUnityが再起動しますが、自動的にInputSystemが修正されます。
②MRTK3が導入されると上部ワールドメニューにMixedRealityのタブが表示されます。
③Project Settingsを開きサイドのメニューからMRTK3を選択します。
④Assign MRTK Defaultを選択します。
これによってMRTKProfileが設定されます。
これは各プラットフォームごとに設定する必要があり、例えばMicrosoft HoloLensにデプロイする場合はPC(スタンドアローン)とUWPの2つで行う必要があります。
以上でMRTKのプロジェクトの設定が完了しました。
〇シーンの構成
ここからはシーンを構成していきます。
①すでにシーンにあるカメラを削除します。
②MRTK XR Rigをシーンに配置します。
MRTK XR RigはPackages/MRTK Input /Assets/Prefabsにあります。
③MRTKInputSimulatorをPackagesから配置します。
MRTKInputSimulatorはPackages/MRTK Input/Simulation/Prefabsにあります。
このプレファブはUnityエディタ上でカメラの移動やハンドトラッキングなどのイベントの入力をシュミュレーションすることができます。
以上でMRTK3プロジェクトのセットアップが完了しました。
MRTKv2に比べ慣れはあるものの若干スマートなセットアップになったのではないでしょうか?
現在開発しているOsaka MR Hackathon2023ではMRTK3を使用したアプリケーションを開発しているのでこの期間でMRTK3にも触れていきたいです。