メインコンテンツまでスキップ
バージョン: 1.0.3

(参考)HoloLensからMiRZAへのアプリケーション移植

WARNING

本情報は2025年5月20日付の調査レポートです。 HoloLens向けのアプリケーションをMiRZAに移植する方法をご案内いたします。 ※本情報は参考としていただき、開発・実装についての責任は負いかねます。

1. MiRZAへの移植方針

HoloLensアプリをMiRZAへ移植する際の基本的な方針は以下の通りです。

  • MRTKで作成されたプロジェクトにSpacesを適用します。
  • MRTKを最大限に活用し、既存の機能を極力そのまま利用します。
  • MRTKで実現が難しい機能については、Spacesやその他のアセットで対応します。

基本的にはMRTK (Mixed Reality Toolkit) で作成されたアプリケーションであれば、MiRZAのマイク・カメラを利用する機能や、MiRZAで実現できない機能(アイトラッキング・センサー情報)を除き、Unityで開発されているMRTK対応アプリは1〜3日程度で簡易的なMiRZAへの移植が可能と考えられます。

補足事項

  • マイクやカメラを利用する機能の移植は、それぞれ1〜2週間程度で見積もりが可能です。
  • フレーズ認識については、選択するアセットによって対応規模が変わるため、4週間〜で見積もることを推奨します。
  • HoloLens固有の特殊な処理については、別途代替処理の検討が必要です。
  • Windows用のコードやライブラリ(DLL)を利用している場合は、Android用にコードの変更やライブラリ(aar)の置き換えを検討する必要があります。

2. HoloLensアプリ(MRTK3)とMiRZAアプリ(Spaces)の機能対応表および移植難易度

MiRZAへの移植時の難易度を「低~高」「不可」で分類しています。基本的な機能については、「低~中」で移植が可能と考えられます。 ※アプリの実装状況によって変わります。 (参考:SpacesSDK Ver1.0.2、MRTK3 2024-08-29版)

3. MRTK3のUnityプロジェクトをMiRZA用に変更する方法

開発者ドキュメントページを参考に、プロジェクトを変更します。

  • MRTK3 - 概要
  • MRTK3 - Mixed Reality Feature Tool
  • MRTK3 - Unityプロジェクトのセットアップ
  • MRTK3 - MRTK3のサンプル
  • MRTK3 - ハンドトラッキング

本サイトのMRTK項目に記載がない内容については、以下で補足します。

3.1. Project Settingsの設定変更

3.1.1. MRTK3の設定

HandTrackingSubsystemの設定を変更します。 以下の2つにチェックを付けます。

  • Subsystem for Unity XR Hands API
  • Subsystem for Hand Synthesis

参考:Subsystem for OpenXR Hand APIの場合、初回起動時にlibMicrosoftOpenXRPlugin.soでエラーが発生することがあります。対処方法についてはP11を参照してください。

3.1.2. OpenXR Feature Groupの設定

  • Snapdragon SpacesとSnapdragon Spaces (Experimental) にチェックを入れます。
  • Hand TrackingとMotion Controller Modelのチェックを外します。
  • Meta Quest Supportのチェックを外します。

3.2. SinglePassに対応していないShaderの変更

一部のShaderがSingle Passに対応していない場合があります。Single Passに対応していないと、片目だけに映像が表示されることがあります。 例えば、Meshingのサンプルで使われる「Graphics Tools/Wireframe」は非対応です。 代わりに、Spaces SDKのMeshingサンプルで使われている「Unlit/Mesh Visualization」等に変更してください。

3.3. オブジェクトの位置の調整

アプリ起動時の位置がメインカメラの原点(0,0,0)となります。Unity Editorで動作確認を行う場合、カメラの初期位置を変更する必要があります。見やすい位置にオブジェクトの位置を調整してください。 HoloLensでは通常1.6m上にカメラが表示されますが、MiRZAではCamera OffsetやXROriginのCamera Y Offsetに値を設定しても無視されます。 MRTK XR RigのCamera Offsetを変更することも可能です(任意)。

3.4. ARMeshManagerの変更 (Meshing時のみ)

ARMeshManagerを使用している場合は、一部のパラメータを変更する必要があります。

3.5. MRTKのハンドトラッキング設定

  • Project SettingsのMRTK3設定にて、MRTK HandsSubsystemを「Subsystem for Unity XR Hands API」にします。