UnityでLeap Motionを使う
大目的
Leap Motionを使用して(あるいは別の手段で)、手でコマを動かせる、オンラインに対応した仮想ボードゲームのテーブルを作成する。
目標
UnityにLeap Motionを組み込み、動かしてみる。
サブ目標
ChatGPTを使って、開発を効率的に行う。
工程
1.工程を調べる
ネットで調べたところ、個人ブログがヒット。chatgptでざっくり知識を得て、裏取りと詳細の調査を行った。
[参考](https://atl-space.recruit.co.jp/2018/01/unity_leap-motion/)
2.Unityでプロジェクトを作成
[参考](https://tech.pjin.jp/blog/2022/08/31/unity-3daction-01)
Unity自体はインストール済みだったので、新規プロジェクトを作成。
[Leap MotionのUnityプラグインドキュメント](https://developer.leapmotion.com/unity)に、
という記述があった。Unityのバージョンがその想定を下回っていたため、2021.3 LTS にアップグレード。(Unity 2021.3.19f1)
インストールしたところ、以下のような画面が。
Unity Hubって何?
jenvみたいなものか? 今回は必要なさそうなのでスルー。create empty projectを選択。新規にディレクトリを作成。と思ったけど、解説サイトも使っているので使ってみる。
Unity HubとUnity 2021.3.19f1を紐づけしたい。でも、どのファイルを紐づけすれば良いのか分からない。
[locate existing installation]を選択し、参照先にunity.exeを選択。
New projectを選択。3Dを選択。Create projectで新規プロジェクト作成。(プロジェクト名はLearnLeapMotionにした)
見覚えのある画面までたどり着いた。
3.Leap Motion SDKをインポート
https://developer.leapmotion.com/unity#setup-unity-packages
まずUltraleap GeminiをWindowsにインストール。
アカウント作成の必要があった。作ったらすぐに[Ultraleap_Tracking_Installer_5.7.2+2022.09.15.exe]がダウンロードされたのでインストールを実行。
Unityパッケージをダウンロード。
GitHubに飛ばされたのでプラグインを選択。ダウンロードされる。
ダウンロードしたzipをUnityPluginsに移動。(プラグイン置き場のためにフォルダを作成した。プロジェクト外)
(ChatGPTAより)ssetsウィンドウ内で右クリックし、Import Package -> Custom Packageを選択してSDKを選択。(対象がzipファイルじゃなかったので解凍)
…しようとしたけどファイルが4つある。どれだ?
公式ドキュメントにTracking.unitypackageと記載有り。
公式ドキュメントでは特に指定が無いため、全てにチェックが付いた状態でインポート。
4.手を召喚
このプロジェクトのゴールはLeap Motionで手のオブジェクトを動かすところまでなので、SampleSceneを使用する。
[この記事](https://tks2.co.jp/2020/01/22/unity-leapmotion/)にも同様の記述がある。
[公式ドキュメント](https://docs.ultraleap.com/unity-api/The-Prefabs/xr-provider-manager.html)
HandObjects上で右クリックし、XR Leap Provider Managerを追加。
手のオブジェクトを追加する。
[参考](https://docs.ultraleap.com/unity-api/The-Prefabs/hand-prefab.html)
手のオブジェクトが追加出来た。ChatGPTでは別の方法を提案されていたが、公式ドキュメントに準拠。プレハブ下のGhostHandsをHierarchyにドラッグ。
召喚できた。が、何故かカメラオブジェクトと一緒に動いてしまう。
5.カメラオブジェクトと手が一緒に動いてしまう問題対処
カメラ消して出したら解決。原因は分からず仕舞い。
6.手を動かす
精度に大分不安があるけど一応成功。
まとめ
組み込みには成功。問題点は精度。次回は解決策を探る。
この記事が気に入ったらサポートをしてみませんか?