HoloLens 2 & MRTKv2.1 で、手のひらメニューを作る(その2)

前回はサンプルシーンの確認と、Editor上でのハンドの操作方法の確認(重要w)をしました。

Microsoft本社でMRTKを開発されているYoonさんが、手のひらに追従するメニューをTwitterで公開されていました。 Wi...

今回は、実際に手のひらメニューを作ってみたいと思いますが、サンプルシーンのオブジェクトがよくできているので、それを真似しただけです。

まず、空のGameObjectを作成して、メニューとなる適当なオブジェクトを子要素とします。今回はCubeを薄くしたものに文字を重ねたものを用意しました。

そして、空のGameObjectの方に、
・HandBounds
・HandConstraintPalmUp
をアタッチします。自動的にSolver Handlerもアタッチされると思います。

HandBoundsは、手の位置を中心とした領域を作ってくれるもので、追従するメニューの基準の位置となります。
HandConstraintPalmUpは、HandConstraintを継承していて、手の位置に対するオブジェクトの制約に加えて、手のひらが見えた時や隠れた時のイベントを制御することができます。

それぞれのインスペクタの設定も非常に直感的になっています。
Solver HandlerでのTracked Target TypeをHand Jointとし、Tracked Hand JointをPalmとします。

Hand Constraint Palm Upでは、表示位置を手のひらそのものではなく、横にずらした位置にメニューを置くことができます。(操作時に手が重ならないことが推奨されています)
Safe ZoneをUlnar Sideにすると、手の小指側にメニューが表示されます。

そして、On Hand Activateイベントには、作成したCubeをドラッグ&ドロップして、SetActiveをtrueにします。
同じくOn Last Hand Lostイベントでは、SetActiveをfalseにします。

こうすると、左手の手のひらにメニューを出した状態で右手を認識させておくと、左手の手のひらが隠れてしまった場合でもメニューが消えないので利便性が高まるようです。

どの位置にメニューを出すかや、消えるタイミングなどはインスペクターで簡単に変更できるのでいろいろ試してみたいと思います。(早く実機を・・)

スポンサーリンク

シェアする

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

フォローする

スポンサーリンク