Microsoft本社でMRTKを開発されているYoonさんが、手のひらに追従するメニューをTwitterで公開されていました。
With #MRTK 's Hand Constraint Solver by @tcmicka, you can easily build hand-based UI for quick actions. Build and test in #Unity editor with MRTK hand input simulation. https://t.co/p9oucwX97y #HoloLens2 #MRTKTips #MixedRealityToolkit #HoloLens #MixedReality #Unity #Unity3d pic.twitter.com/hnVmOwW9SQ
— Yoon Park (박동윤) (@cre8ivepark) September 26, 2019
現行HoloLens(以下HL1)では、メニューをBody Trackingで追従させたり、空中で固定させたりしましたが、時々置き場に困ることがありました。HoloLens 2(以下HL2)では好きな時にメニューの表示・非表示ができるようになるということでとても便利そうですね!
このTwitterのデモは、MRTKのv2.1でサンプルシーンとして公開されていますので、さっそく動かしてみましょう。
しかし、現状ではHL2は発売されておらず、HL1では手のひらを認識する機能はありませんので、Unity EditorもしくはHL2エミュレータでしか動かすことができません。
MRTKv2.1をExampleも含めてUnityにインポートしたら、
Assets > MixedRealityToolkit.Examples > Demos > HandTracking > Scenes > HandMenuExamples
シーンを開きます。
Editor上で手の動きを再現するのはなかなか大変ですが、手順を追ってやってみましょう。
なお、MRTKv2.1で、Editor上での操作が一部変更になりました。
まず、Runしたら、キーボードのTを押します。すると、左手がシーンに表示されます。もう一度Tを押すと、左手が消えます。
左手が表示されている状態で、左Shiftキーを押しっぱなしにしながらマウスを動かします。すると、手が移動できます。
その状態で、マウスのスクロールホイールを動かすと、手を前後させることができます。
手を回転させるには、同じく左Shiftキーを押しっぱなしにしたまま、左Ctrlキーも押しっぱなしにします。その状態でマウスホイールを動かします。
手のひらが上を向いた時点で、メニューが表示されますので、ShiftキーとCrtlキーを離します。
メニューが表示されたので、今度は右手でメニューのボタンを押してみます。キーボードのYを押すと右手が表示されます。
右手が表示されている状態で、スペースキーを押しっぱなしにしながらマウスを動かすと、右手を移動することができます。
左手同様、マウスホイールで前後に移動できます。
(GameビューをMaximizeで最大化すると操作しやすいです)
うまく操作してボタンに触れば、音が鳴ります。
操作のまとめ
・ハンドの表示・非表示:T/Y(左手/右手)キー
・ハンドの移動
左手 左Shift+マウス(+ホイールで前後)
右手 Space+マウス(+ホイールで前後)
・ハンドの回転
左手 左Shift+左Ctrl+マウス(+ホイールで回転)
右手 Space+左Ctrl+マウス(+ホイールで回転)
ということで、Editor上での確認方法でしたが、やはり複雑な手の動きをマウスとキーボードで表現するのは大変なので、早くHL2実機の発売が待たれますね。
次回は手のひらメニューで使われているスクリプトを見てみたいと思います。