UnityでUrtraleapを動かそうと思ったら地獄を見た話

次どんなアプリを作ろうかなと思ったとき、今ちょうどオンデマンド動画作るのに使ってる3Dキャラがいるので、それを使って何かしたいと思ったんです。
そうなると、やっぱり指差しとか手で何かを示すようなジェスチャーが欲しいなと思い。そしてちょうど手元にはUrtraLeapがある。
ならば、自作モーションだな!と思って手を出したら地獄を見ました。

【UltraLeap × Unity】 UnityでUltraLeapを操作できるようにするまでの手順 #LeapMotion - Qiita
こちらのページを参考にさせていただきました。意外とできるのかなって思ったら私は全然でした。

(結局10時間くらいやって、なんとかうごいたけれど、結局ハンドトラッキングの反応も良くなくて微妙な感じだった…)


🌀 試行錯誤の経緯

  • とりあえず公式のサイト通りに必要なものを入れる

    • UrtraLeapのソフトウェア

    • Unity側のプラグイン

  • サービス自体は単体で動作するのに、Unityから繋がらない。

  • connected=false / Idle [No Apps] のまま変化なし。

  • 設定ファイルやキャッシュを疑って削除 → 余計にサービスが起動できなくなる。

  • サービスのログには「Value is not a hash」といった例外。

最終的にたどり着いたのは、バージョンの不一致 でした。


💡 解決の決め手

  • Ultraleap Tracking Software(サービス側):バージョン 5.20.0.0

  • Unity Plugin(手のスクリプトやSDK):最新版を導入していた(6.最新

この組み合わせだと、どうも通信仕様が噛み合わないようで、Unityから正しく認識できませんでした。
試しに Unityのプラグインを 6.14 にダウングレード したところ、
ようやくサービスが Active [Unity.exe] に切り替わり、正常にトラッキングされました。


🤔 なぜこうなった?

私の使っているのは Ultraleap Controller 1 という古いデバイスです。
ハード側のソフトウェアはすでに 5.20.0.0 で開発終了 していて、これ以上新しくなりません。
ところがUnityのプラグインは今でもアップデートが続いているため、
「プラグインだけ最新、サービス側は旧世代」 というアンバランスな状態が発生しました。

つまり、「ソフトは更新されるのにハードが追いつかない」という、
古いデバイスならではの罠だったのだと思います。


✅ 結論

  • 古いUltraleap ControllerをUnityで使う場合は、プラグインのバージョンを下げること!

  • サービス(Tracking Software)のバージョンと、Unity Pluginの対応を揃えるのが大事。

今回のケースでは
「サービス5.20.0.0 × Unity Plugin 6.14」 で安定動作しました。

いいなと思ったら応援しよう!