本日は MRTK の小ネタ枠です。
手のひらの横にオブジェクトを表示させる MRTK の HandConstraintPalmUp で誤認識を減らす方法を記事にします。
ハンドメニューの誤検出を減らす
MRTK の HandConstraintPalmUp には誤検出を減らすため、以下の2つの判定が用意されています。
- 手のひらを開いているか
- 手に視線を向けているか
サンプルシーン
以下の通り、HandConstraintPalmUp コンポーネントを使って手のひらを検出するとその位置にボタンUIを表示するシーンを作成しました。
手のひらを開いているか
HandConstraintPalmUp コンポーネントの[RequireFlatHand]にチェックを入れることで判定が有効になります。
本判定を有効にしていると手のひらを開いたときのみ、手のひらの検出が行われます。
手に視線を向けているか
HandConstraintPalmUp コンポーネントの[UseGazeActivation]にチェックを入れることで判定が有効になります。
本判定を有効にしていると手首に視線を向けているときのみ、手のひらの検出が行われます。
手首へ視線が向いているかどうかは手首の Windows マークがアニメーションしていることで分かります。
なお、視線の検出には[GazeInput]の Capabilities 設定が必要です。
[GazeInput]を許可していない場合は、頭部の方向が視線として扱われます。
この場合は概ね HoloLens2 のホログラムの視野内に手のひらがあるときに視線が向けられていると判定されるようです。