今回はMRTKのトラブル枠です。(一応記事内でシューティングもしていきますが、根本的解決はいまだできていません。)
MixedReality Toolkit(MRTK)ではv2以降LeapMotionを使用することができます。
今回は22年5月現在の最新バージョンでLeapMotionが使用できないトラブルが起こりましたので記事にします。
〇トラブル概要
MRTK v2.7.3においてUltraLeap UnityPlugin 5.x系を使用する際にMRTKでIntegrateする際にネームスペースエラーが発生する。
MRTK v2.7.3では以下の表のようにLeapMotionUnityPlugin v4.x系がサポートされています。
しかし、4.x系は筆者環境で最新のLeapMotion Tracking ソフトウェアでは認識されなかったため5.x系を使用する必要がありました。
過去のTrackingソフトウェアが入手できればよかったのですが、ざっと見たところ見つけることができませんでした。
〇再現手順
①Unity2021.3.2f1(LTS)でプロジェクトを作成します。
②MixedReality Feature Toolsを使用して環境構築を行います。
③以下のパッケージを導入します。
・MixedRealityToolkit Examples 2.73
・MixedRealityToolkit Extentions 2.73
・MixedRealityToolkit Foundation 2.73
・MixedRealityToolkit Tools 2.73
・MixedRealityToolkit OpenXR Plugin 2.73
本日時点ではMRTKの最新リリースはv2.7.3になります。
このままパッケージを導入します。
④Unityを開いた際に表示されるMRTKのダイアログでUnity OpenXR Pluginを選択します。
次にLeapMotionのプラグインを導入します。
⑤UltraLeapのGitHubからUnityのプラグインをダウンロードします。
今回はUnity Plugin 5.3.0を使用しました。
このバージョンを使用した理由としてはMRTKへの対応の記載がリリースノートにあったためです。
⑥PluginのTracking.unitypackageをUnityプロジェクトへインポートします。
⑦Unity上部のワールドタブからMixedRealityToolkit→Utilites→LeapMotion→Integrate LeapMotion Unity Modulesを選択します。
この時点で冒頭で紹介したエラーが表示されます。
MRTKのパッケージ側でエラーが表示されておりLeap.Unityなどのネームスペースが見つからないという内容です。
Library\PackageCache\com.microsoft.mixedreality.toolkit.foundation@3bad99c89252\Providers\LeapMotion\LeapMotionArticulatedHand.cs(10,12): error CS0234: The type or namespace name 'Unity' does not exist in the namespace 'Leap' (are you missing an assembly reference?)
〇想定される原因
LeapMotionでは4.x系と5.x系で階層など多くの変更が行われています。
この変更にMRTKのLeapMotionの機能が対応していないため参照エラーが生じているものと思われます。
逆にこの参照を新しいバージョンに対応させることでエラーが解消されそうです。
MRTKではv2.7.4で対応すると告知されていますが、現在リリースされていません。
GitHubからリリースに上がっていない最新のバージョンを使用することでこの問題が解消する可能性があるため後日トライしていきます。