😺

UnityでMRTK2とMRTK3を利用する場合の違いについて

に公開

Unityにおける MRTK2 と MRTK3 の違いと選び方

MRTK2 vs MRTK3 概要比較

項目 MRTK2 MRTK3
対応Unityバージョン 2019.4〜2021.3 2021.3〜2023以降
基盤 独自フレームワーク Unity XR Interaction Toolkit (XRI)
OpenXR対応 後付けで部分対応 初期から完全対応
柔軟性 柔軟だが複雑 モジュール式で扱いやすい
学習コスト ドキュメントが豊富 構成に慣れる必要あり
パフォーマンス 安定動作 軽量化・最適化済み
将来性 保守フェーズ 継続的に開発中(推奨)

実装の違い(例:Cubeを手で持ち上げる)

MRTK2 の例

必要なコンポーネント(Inspectorから追加):

  • NearInteractionGrabbable
  • ManipulationHandler
  • BoxCollider
  • Rigidbody

使い方:

  • UnityのInspector上でCubeに上記コンポーネントを追加するだけで、手で持ち上げ可能になります。

特徴:

  • シンプルなUIベースの設定
  • HoloLens 2に最適化

MRTK3 の例

必要なコンポーネント:

  • XR Grab Interactable
  • BoxCollider
  • Rigidbody

サンプルコード:

using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;

[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(XRGrabInteractable))]
public class CubeSetup : MonoBehaviour
{
    void Start()
    {
        var grab = GetComponent<XRGrabInteractable>();
        grab.throwOnDetach = false;
    }
}

開発スタイルの違い

観点 MRTK2 MRTK3
UIからの設定 ◎ 簡単に可能 ○ やや学習が必要
スクリプトによる拡張 ○ 標準的 ◎ 柔軟で拡張性高い
Meta Quest対応 △ 一部制限あり ◎ OpenXRで安定
HoloLens最適化 ◎ 実績多数 ○ 互換あり
今後の拡張性 △ 停止傾向 ◎ 継続開発中

MRTK3 の最小セットアップ手順(例)
Unity Hubでプロジェクトを作成
Mixed Reality Feature Tool を使って MRTK3 を導入

「Default XR Scene Template」を選択してサンプルシーンを追加
Cube に以下のコンポーネントを追加:
Rigidbody
BoxCollider
XR Grab Interactable
XR Origin, XR Hands, XR Device Simulator などをシーンに配置

既存のUnityプロジェクト利用状況別のMRTK推奨version

利用状況 推奨
既存のHoloLensプロジェクトがある MRTK2
Meta Questや複数デバイスに対応したい MRTK3
UnityのXR標準に乗りたい MRTK3
情報量や安定性を重視したい MRTK2

参考リンク
MRTK2 公式ドキュメント(旧)
MRTK3 公式ドキュメント
XR Interaction Toolkit Docs

ヘッドウォータース

Discussion