LeapMotion使ってみた

最近「〇〇してみた」という入門編の記事ばかりですね。継続力が無くてつらい。。

ということで、表題の通り、超有名なモーションセンサー、LeapMotionを購入して届いたので使ってみました。

LeapMotionは発売は結構古いにもかかわらず、ソフトウエアのアップデートで継続的に機能が強化され、指の動きを取得するセンサーとしてデファクトスタンダードになっている製品です。最近はLooking Glassにバンドルされていたりでまた利用者が増えたようです。

購入したきっかけは、たるこすさんのツイートでした。

ちょっと前にHoloLens 2のチュートリアルをやった時に、指の動き(ジェスチャー)をEditorやエミュレーターで再現するのは相当無理がある、と感じていた矢先のことでした。初代HoloLensは実質AirTapしか無かったのでマウスでもなんとかなりましたが、2はジェスチャーの種類も増加したのでマウスではかなりの無理があります。

ということで、たるこすさんがLeapMotionと初代HoloLensで、MRTK v2を使ってジェスチャーを認識する仕組みをソースコード付きで公開されたのを見て衝撃を受けました。天才的ですね。。

さっそくLeapMotionをアマゾンで購入しました。(Oculus Questのkonozama事件の被害者なのでAmazonは使いたくなかったのですが、結局最安値ですぐ届くので使っちゃうんですよね。。)

届いたので、ドライバを入れてセットアップし、たるこすさんのGitHubの説明通りにしたところ、動きました。

ただやはり、初代HoloLensの視野角に対して手が大きすぎるような感じを受けるので、早くHoloLens 2で試したいですね。

さて、動きはしたものの、どういう仕組みで動いているのかは全く理解していません。MRTK v2もチュートリアルを齧っただけでその構造はほとんど理解できていませんし、LeapMotionも届いたばかりでさっぱりです。ということで、まずはLeapMotionの仕組みを知るためにチュートリアルをやってみました。

UnityでLeap Motionを使う | Advanced Technology Lab.

ところが、LeapMotionのSDKはどんどん改良されるらしく、最新のSDKとは異なっていてうまくいきませんでした。結局、SDKに入っているサンプルのScneneを見ながら作ってみました。以下は「Leap_Motion_Core_Assets_ 4.4.0.unitypackage」を使った場合の手順です。(ドライバなどは入っており、サンプルシーンが動く状態なのが前提)

まずは新規Sceneを作成し、Assets>LeapMotion>Core>Prefabs>LeapHandController をシーンに配置します。ところが、LeapHandControllerにアタッチされている何かのスクリプトが最初からMissingになっています。(僕のインポートの方法がおかしかったのかもしれませんが。。)
なので、シーンに配置後にUnPack Prefabを選択してPrefabと切り離し、MissingになっているものをRemoveしました。

そして、HandModelsという空オブジェクトを作り、その中に手のモデル、
LoPoly Rigged Hand Left
LoPoly Rigged Hand Right
RigidRoundHand_L
RigidRoundHand_R
を配置しました。

先ほど配置したLeapHandControllerの「Hand Model Manager」コンポーネントのModel PoolのSizeを2にして、Group_NameをそれぞれGraphics_Hands、Physical_Handsにします。この名称はサンプルシーンを参考にしたのですが、正式な命名規則はまだ理解できていません。

先ほどシーンに配置した手のモデルをインスペクタにドラッグ&ドロップします。

Is Enabled、Can Duplicateにチェックを入れます。

この状態で再生すれば、手のモデルが表示されるのが確認できると思います。

ということで、手の動きを認識して、それに合わせて手のモデルを表示する過程で直接参照されているスクリプトは、LeapHandControllerにアタッチされているLeapServiceProvider.csと、HandModelManager.csの2つだけとなります。だんだん構造がわかってきました。

その後、Planeを配置して、RidgidBobyを持ったボールを配置して、ボールが飛んでいかないように壁をCubeで作ったらば、ボール遊びができる状態になりました。

ということで、本当に最低限のしくみは分かったので、ここから更に理解を深めていきたいと思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク