MicrosoftのMRTK(v2.2.0)をiPhone Xsで試してみた
Microsoftの MRTK とは
Microsoftが開発してる“Mixed Reality Toolkit”。
もともとはHololensとかWindowsMRでの利用を目的としてるんだけど、v2からはiOSやAndroidでも使えるようになっているそうなので、さっそく試してみた。
- UnityPackageのダウンロード
- Unity側のARFoundationの設定
- UnityPackageをインポートする
- MRTKのコンフィグ設定
- サンプルプログラムを操作
- カメラシステムの設定
- Xcodeビルド
MRTKについての詳細は下記をご覧いただくのが一番良いです。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrtk-getting-started
ちなみに動作イメージはこちら
MicrosoftのMRツールキット v2.2.0をiPhoneXsで試してみた
【開発環境】
Mac(OS 10.15.2)
Unity 2019.1.14f1
iPhoneXs(13.3)
※一度Unity 2019.2.7f1で実行しようとしたところ、ビルド中にフリーズしたり、プロジェクトの再起動ができなかったりと不具合が多かったので、2019.2.7f1のバージョンでは作成しないことをオススメします。
まずは新規Projectを取得し、プラットフォームをiOSにSwitchしておきます。
UnityPackageのダウンロード
必要なUnityPackageを下記ページからダウンロードしておきます。
https://github.com/microsoft/MixedRealityToolkit-Unity/releases/tag/v2.2.0
・Microsoft.MixedReality.Toolkit.Providers.UnityAR.2.2.0.unitypackage
・Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage
・Microsoft.MixedReality.Toolkit.Unity.Examples.2.2.0.unitypackage
Unity側のARFoundationの設定
まずは、UnityでiOS、Android開発を行うために必要なARFoudation関係を入れます。
[Window][PackageManager]と進んでいき、下記パッケージをインストールしましょう。
・ARFoundation(2.1.4)
・ARKit XR Plugin(2.1.2)
・ARCore XR Plugin(2.1.2)
UnityPackageをインポートする
(ARFoundation前にインポートしても問題なしです)
続いてGitHubからダウンロードした3つのパッケージをプロジェクトにインポートします。
いきなりエラーが…!
ここは焦らず、対処しましょう。
エラーの内容を確認すると「SpatialTracking」が存在しません。という旨のエラーの文ですので、
その「SpatialTracking」を手動で設定します。
まずは下記の箇所の設定ファイルをInspectorで確認します。
/Assets/MixedRealityToolkit.Staging/UnityAR/Microsoft.MixedReality.Toolkit.Providers.UnityAR
アセンブリ定義「Assembly Definition References」の項目が3項目ありますが、ここにSpatialTrackingを追加します。
「UnityEngine.SpatialTracking」は、下記にあります。
/Packages/com.unity.xr.legacyinputhelpers/Runtime/TrackedPoseDriver/
階層を追って探すのは面倒なので、「Spatial」とPackages内を検索すればすぐ出てきます。
「Assembly Definition References」に「SpatialTracking」をアタッチし、Applyします。
ここまでくればエラーが消えます。
Apply後、設定に少し時間がかかります。
MRTKのコンフィグ設定
完了すると、MRTKのコンフィグウィンドウが表示されます。
諸々必要な設定を行ってくれますので、そのままApplyします。
この設定後、XRSettingsのVirtualRealtySupportedがONになってしまうので、手動で解除します。
これで初期設定は完了です
サンプルプログラムを操作
いくつかのサンプルの中で一番サンプルとして見せやすい「HandInteractionExalple」を試してみましょう。
Assets/MixedRealityToolkit.Examples/Demos/HandTracking/Scenes/
HandInteractionExamples.Sceneを開きます。
シーンを開くと、TextMeshProのインポートウィンドウが開きます。
上のボタンでインポートしましょう。
(インポートしない場合については、試していないのですが、取り急ぎインポートして動いているので、素直にインポートしても大丈夫だと思います。)
※Examleの方はインポートしなくても良いです。
カメラシステムの設定
デフォルトではHololens2などの設定がされているので、iOS、Android用のカメラ設定に変更しましょう。
Hieralchyの「MixedRealityToolkit」を選択し、Inspectorから設定をカスタマイズします。
「Copy&Customize」を選択し、新規のProfileを作成し、Cloneします。
MixedRealityToolkitのCameraを選択し、「CameraSystemType」の下を今作成したProfileに変更します。
(僕の設定の仕方がよくなかったのか、「Copy&Customize」選択時に開くウィンドウで作成したProfileだと表示されなかったので、この欄の右側のCloneボタンからもう一度Profileを作成しました。)
新規作成したProfileを選択すると、「CameraSettingProvider」がアクティブ状態になり、設定変更が可能になります。
「Add Camera Setting Provider」を選択して、新規のカメラ設定を追加します。
デフォルトでは、「Windows MixedReality Toolkit Camera Settings」になっているので、
「Unity AR Foundation Camera Settings」に変更します。
ウィンドウを開いて、Typeを「Windows.MixedReality.Toolkit.Experimental.UnityAR」に変更し、「UnityARCameraSettings」を選択します。
Xcodeビルド
あとは、Xcodeに書き出すだけ。
書き出しの前に、2点だけ修正しておくことがあります。(これやっておかないとXcodeからアプリに書き出すときにエラーがでます。
・PlayerSettings → OtherSettings → Strip EngineCode のチェックを外しておく
・ProjectSetting → XR → ARKit の ARKitのRequirement を作成しておく
これで書き出すと、サンプルプロジェクトをiPhoneで動作させることができます。
参考サイト