たるこすの日記

たるこすの日記

リアルからバーチャルへ、バーチャルからリアルへ

HoloLens と Leap Motion で HoloLens 2 をシミュレーションする

LeapMotionInputForMRTK

こんにちは、たるこすです。

LeapMotionInputForMRTK という、HoloLens(第一世代)と Leap Motion を使って HoloLens 2 のハンドインプットのシミュレーションができるものを作りました。
これにより、HoloLens 2 が無くても、HoloLens 2 のハンドトラッキングを利用したアプリの動作確認をすることができます。

www.youtube.com

コード、そして Leap Motion を HoloLens に取り付けるマウンタの3Dモデルは GitHub で公開しています。

github.com

なぜ作ったか?

2019年4月に MixedRealityToolkit-Unity (以下、MRTK) v2 RC1 が公開されました。

github.com

MRTK v2 は HoloLens 2 を含む、いくつかのデバイスをサポートしています。

MRTK v1 は HoloLens(第一世代)用のツールキットで、Head Gaze (頭の向き)がカーソルとなる入力方式でした。 MRTK v2 は、HoloLens 2 のハンド入力をサポートしているので、指先でボタンを押したり、手でものをつかんだりする UI が用意されています。

MRTK v2 の勉強を始めようと思ったのですが、2019年6月時点ではまだ HoloLens 2 を手に入れることができません。
HoloLens 2 がないと、ハンド入力の挙動確認がかなり難しいです。
(Unity Editor でマウスやキー入力でシミュレートすることは一応可能です)

そこで、HoloLens + Leap Motion でハンド入力の挙動確認をするために作りました。

仕組み

アプリケーションは Unity Editor 上で実行し、Holographic Remoting を使って HoloLens で表示しています。

MRTK v2 の概要については、@Ash_Yin の資料が詳しいです。

drive.google.com

この資料の P.37 で説明されている、MRTK.Providers 部分を拡張し、Leap Motion 用のスクリプトを追加しました。

詳しくは、コードを読んでいただくのがいいと思います。 github.com

VR Headset で利用する

自分は HoloLens で利用することしか考えていなかったのですが、de:code 2019 の Unity Technologies さんのブースで、 WinMR Immersive Headset + Leap Motion で LeapMotionInputForMRTK を使うデモが展示されていました!

twitter.com

体験したところ、視野角が広く映像がキレイで、現実は見えないですが表示する映像としては HoloLens 2 により近い見た目でした。
HoloLens + Leap Motion の場合は、Holographic Remoting を使うためにどうしても見た目の質が下がってしまいます。

おわりに

HoloLens 2 が待ちきれない! という方はぜひお試しください