夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK でLeapMotion使用時にエラーが発生する問題の解消 解決編

本日はMRTKのトラブルシューティング枠です。

昨日MRTKでLeapMotionを使用する際のエラーに関して紹介しました。

redhologerbera.hatenablog.com

これはMRTKv2.73現在では LeapMotionUnityPlugin v5.x系をサポートしておらず。逆にLeapMotionの最新版のTrackingソフトウェアであるGeminiではLeapMotionUnityPlugin v5.x系がサポートされておりv4.x系は動かすことができません。

今回はこの問題を解消しMRTKv2.73で LeapMotionUnityPlugin v5.xを使用していきます。

〇問題の解消

Package/MixedRealityToolkit.faundation/Providers/LeapMotion/MRTK.LeapMotion.asmdefを開きます。

.asmdefファイルとはスクリプトのコンパイルおよびアセンブリ定義ファイルでC#パッケージのコンパイルに使用されます。

docs.unity3d.com

このファイルは名前の通りLeapMotionのUnityPluginとMRTKとのIntegrationを行った際に実行されるコンパイルを定義しています。

{
    "name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion",
    "references": [
        "Microsoft.MixedReality.Toolkit",
        "LeapMotion",
        "LeapMotion.LeapCSharp"
    ],
    "includePlatforms": [
        "Editor",
        "WindowsStandalone32",
        "WindowsStandalone64"
    ],
    "excludePlatforms": [],
    "allowUnsafeCode": false,
    "overrideReferences": false,
    "precompiledReferences": [],
    "autoReferenced": true,
    "defineConstraints": [],
    "versionDefines": [],
    "noEngineReferences": false
}

ここでは"LeapMotion"、"LeapMotion.LeapCSharp"が定義されています。

LeapMotionは現在UltraLeapと名称を変えており、SDKではLeapMotionUnityPlugin v5.x系でこの名称変更が反映されています。

ここに"Ultraleap.Tracking.Core"を一行加えます。

{
    "name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion",
    "references": [
        "Microsoft.MixedReality.Toolkit",
        "LeapMotion",
        "LeapMotion.LeapCSharp",
        "Ultraleap.Tracking.Core"
    ],
    "includePlatforms": [
        "Editor",
        "WindowsStandalone32",
        "WindowsStandalone64"
    ],
    "excludePlatforms": [],
    "allowUnsafeCode": false,
    "overrideReferences": false,
    "precompiledReferences": [],
    "autoReferenced": true,
    "defineConstraints": [],
    "versionDefines": [],
    "noEngineReferences": false
}

 これによってネームスペースエラーが解消され、正常にMRTKでLeapMotionが使用できるようになります。