(参考)Magic Leap 2からMiRZAへのアプリケーション移植
WARNING
本情報は2026年4月付の調査レポートです。 Magic Leap 2向けのアプリケーションをMiRZAに移植する方法をご案内いたします。 ※本情報は参考としていただき、開発・実装についての責任は負いかねます。
1. 概要
本資料はMagic Leap 2向けアプリからMiRZAへの移植について調査した結果をまとめたものです。 各アプリの移行可能性については以下の通りです。
- CGを表示するだけのアプリ:移行可能
- ML2特有機能を利用したアプリ:一部移行可能(後述)
- Magic Leap社が公開しているサンプルアプリ(2.5.0)を基準に調査
- https://github.com/magicleap/MagicLeapUnityExamples/
- MRTK3を利用したアプリ:MiRZAに機能があり実現可能なものは移行可能
2. MLSDKについて
Magic Leapの開発にはMLSDKを利用しています。本調査ではMLSDK2を対象とします。
MLSDKの歴史
- 0.24.0系 (Unity 2020.3)
- 初代ML1向け。ARFoundationは使わない独自システム
- 1.x系 (Unity 2022.2+)
- 初版リリースは2022年10月
- 最終リリースは2023年8月
- このバージョンからML2向け。ARFoundationのXR Pluginとして実装
- 2.x系 (2.4.0からUnity 2022.3+対象)
- 初版リリースは2024年1月
- このバージョンからOpenXR Pluginとして実装されている
- GitHubで公開されている2.5.0は2024年10月リリース
![]() | ![]() |
| MLSDK 1.x系 | MLSDK 2.x系 |
3. 調査環境
本調査の実行環境を示します。 なお、ML2の手持ちコントローラを使った操作は、Headwornのスマホコントローラで代用しました。
- Unity 2022.3.62f2
- MLSDK 2.6.0 (2024.12.14にリリースされた最新版)
- Spaces SDK 1.0.4 (2026.4.7現在最新版)
- GitHubで公開されているサンプル (2.5.0)
4. 機能別移植評価
サンプルアプリ2.5.0の各機能について、MiRZAへの移植可否を調査した結果を以下に示します。 評価記号は以下の通りです。
- ◎: ほぼそのまま移植可能
- 〇: 小規模修正で移植可能(数時間程度)
- △: 一部のみ移植可能
- ×: 移植不可
| サンプル名 | 内容 | 標準/MLSDK独自 | 移行可能? | 標準/Spaces独自 | 備考 |
|---|---|---|---|---|---|
| HelloCube | 赤いCubeを表示するだけ。uGUIのCanvasで構築されたシーン切替用UIあり | 標準 | ◎ | 標準 | UIはXRInteractionToolkitで構築されているため移行可能。実際に動作確認実施。 |
| Control | コントローラの状態表示(位置・ボタン状態など) | 独自 MagicLeapController | × | n/a | 対応するコントローラがMiRZAにはない。 |
| EyeTracking | 視線トラッキング | 独自 MagicLeapEyeTrackerFeature | × | n/a | |
| FacialExpression | 表情トラッキング | 独自 MagicLeapFacialExpressionFeature | × | n/a | ML2の表情トラッキングは現状、目のみ(口は非対応)。 |
| GlobalDimmer | ディミング(グラ スを暗くする) | 独自 MagicLeapRenderingExtensionsFeature | × | n/a | |
| Hands | 両手の認識位置にモデル表示、ピンチジェスチャ検出、ピンチした位置にCubeを生成 | 標準 InputSystem / Hand Interaction Profile / XR Hands | 〇 | 標準 InputSystem / Hand Interaction Profile / XR Hands | InputActionAssetsの差し替えで移行可能。ただしスマホコントローラとの同居は不可。実際に動作確認実施。 |
| MarkerTracking | マーカートラッキング(QR, Aruco, April, EAN13, UPCA, CODE128) | 独自 MagicLeapMarkerUnderstandingFeature | △ | 独自 SpacesQrCodeManager | Spaces SDKはQRコード認識のみ対応。 |
| Meshing | 空間構造の認識とメッシュ化 | 一部独自 ARMeshManager / MagicLeapMeshingFeature | 〇 | 標準 ARMeshManager | MagicLeapMeshingFeature経由のAPIは未対応(メッシュ品質設定など)。実際に動作確認実施。 |
| Occlusion | CGが手・コントローラ・空間構造に隠れる表現 | 独自 MagicLeapPhysicalOcclusionFeature | × | n/a | MiRZAでは透明メッシュ表示により空間構造のOcclusionを表現できる可能性あり。 |
| PixelSensors | 各種カメラ画像のキャプチャ(RGB、SLAM、Depth、EyeTracking) | 独自 MagicLeapPixelSensorFeature | △ | 標準 ARCameraManager | MiRZAではRGBカメラのみキャプチャ可能。 |
| Planes | 平面検出 | 一部独自 ARPlaneManager / MagicLeapPlanesFeature | 〇 | 標準 ARPlaneManager | MagicLeapPlanesFeature経由の情報取得は未対応 。PlaneClassificationは動作しない。実際に動作確認実施。 |
| SegmentedDimmer | 部分的なディミング(CGの背景を部分的に暗くすることでCGを見やすくする) | 独自 MagicLeapRenderingExtensionsFeature | × | n/a | |
| SpatialAnchors | ローカルアンカーとLocalizationMapのサンプル | 独自 MagicLeapSpatialAnchorsFeature / MagicLeapLocalizationMapFeature | △ | 標準 ARAnchorManager | ローカルアンカーのみ可能。LocalizationMapは不可。MiRZAにはSpaceの概念(SLAMマップをOSに保存する機能)がない。 |
5. 移行手順
公式ドキュメントに従って作ったシンプルなML2向けプロジェクトをSpaces SDKで動くようにした手順を示します。
5.1. 動作確認した移行手順
動作確認済みの手順は以下の通りです。
- ML2用Unityプロジェクトを開く
- Assets、Packages、ProjectSettingsディレクトリのみ存在する状態でUnityプロジェクトを開く
- Libraryディレクトリなどの一時ファイル保存に利用するディレクトリは、Unityプロジェクトを開く前にすべて削除しておく
- MLSDK関連のライブラリ・ファイル・Prefabの削除
- Package Managerからプロジェクト内にimportされているMagicLeap SDK、Magic Leap Setup Toolsを削除する
- InputSystemの切替時(再起動時)にスクリプトエラーが出るので、Ignoreを押してそのまま進める
- Assets/Samples/Magic Leap SDKディレクトリを削除
- MLSDKを削除することによって出るスクリプトエラーを消すのが目的
- シーン中のML Rigを削除。一時的にシーン内にMain Cameraがない状態にしておく
- MLSDKが導入するカスタムAndroidManifest.xmlを削除する ← ポイント
- Project Settings→Publishing Settings→Custom Main Manifestのチェックを外す
- Assets/Plugins/ディレクトリを削除
- Package Managerからプロジェクト内にimportされているMagicLeap SDK、Magic Leap Setup Toolsを削除する
- Spaces SDKの導入
- Package Managerからcom.qualcomm.snapdragon.spaces-1.0.4.tgzを導入する
- InputSystemの切替でUnityエディタの再起動がかかる
- Spaces SDKのConfiguration ToolでHeadwornアプリのセットアップを進める
- 今回はコントローラは使わないので、セットアップ後、シーン内のXR Rig以下にあるLeft Controller、Right Controllerを削除しておく
- Project Settings→XR Plug-in Management→Project Validationでfix allする
- Package Managerからcom.qualcomm.snapdragon.spaces-1.0.4.tgzを導入する

