LoginSignup
2
0

More than 3 years have passed since last update.

【Unity(C#),MagicLeap】MLTK使ってハンドトラッキングでオブジェクトを操作

Last updated at Posted at 2020-12-04

Magic Leap Advent Calendar 2020

この記事は、Magic Leap Advent Calendar 2020 の5日目です。

Magic Leap Challenge

2020年9月に「Magic Leap Challenge」というハッカソンに参加させていただきました。
デバイスを1週間貸りて、家で開発を行うリモートハッカソンです。

私は料理アプリのMRバージョンを検証として作成しました。
作品:MRクッキング

その際にUIを掴んで動かす実装について方法がわからず苦戦しました。
最終的にオレオレ実装でゴリ押ししました。

下記GIFが実際に実装したものです。

MLTK_Demo2.gif

位置を変えたい場合は摘まんで動かす
向きを変えたい場合は押す という実装で乗り切りました。

なぜ苦戦したかというと理由はシンプルで
指のボーンの情報に回転座標が含まれていないからです。
1週間という短い実装期間で座標からよしなにするのは無理でした。

しかし、ハッカソンの懇親会で「MLTK使えばできるらしいよ」という
神の助言を頂いたので、今回はそのMLTKを使ってみた という内容になっています。

MLTK(Magic Leap Toolkit)

MLTKはGithubからパッケージでインポートしました。
【参考リンク】:magicleap/Magic-Leap-Toolkit-Unity

バージョンの違い次第で動かないことがあるようです。

私の試した環境のバージョン情報を置いときます。

Unity 2019.3.10f1
MLTK ? 記載なし
MLSDK v0.24.1

デモ

実際に試してみたものが下記です。特にコーディングは必要ありませんでした。神。

HandInput

HandInputというコンポーネントが用意されており、シーン上に配置する必要があります。

Palm Collisionsというパラメータをオンにすると
手を開いた状態でも手に当たり判定を付けることができます。

DirectManipulation

DirectManipulationはインタラクションさせたいオブジェクトにアタッチする必要があります。

RigidbodyColliderも必要です。

パラメーターは大量にありますが、言葉の通りで特に理解が難しいものはありませんでした。

DirectManipulationSS1.PNG

コールバックも用意されています。
DirectManipulationSS2.PNG

SoundOnCollision

SoundOnCollisionをインタラクションさせたいオブジェクトにアタッチすると
オブジェクトと手が衝突した際に音が鳴ります。

おわりに

他にも超便利機能が山盛りなようなようです。
もっと早く使っとけばよかったです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0