夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

YubimoziHoloLensのUX  HoloLensのハンドメニューをユーザーに分かりやすく使わせる。

本日はHoloLensの表現枠です。

現在3月中のリリースに向けてYubimoziHoloLensアプリを開発しています。

このアプリではハンドメニューを用いてキーボードの表示、設定などを行うためアプリ内でユーザーにハンドメニューの存在を伝える必要があります。

今回はHoloLensアプリでハンドメニューを使用している際に効果的にユーザーにハンドメニューでの操作を使わせるような仕組みを実装します。

〇HandMenu

ハンドメニューはMRTKで提供されているUIコンポーネントです。

f:id:Holomoto-Sumire:20220315215948p:plain

ハンドメニューを使用することでアプリ内でユーザーの手に沿ってメニューが表示されます。

f:id:Holomoto-Sumire:20220315220234p:plain

MixedRealityコンテンツではユーザーの物理現実情報にのっとってアプリケーションが実施されます。

これは例えば狭い部屋などでアプリを起動した場合UIが壁にめり込んでしまい、ユーザーから操作できないなどの現象が起こりうるということになります。

ハンドメニューを使用することでユーザーがどのような物理現実世界にいても必ずユーザーが操作できる場所にメニューを配置することができます。

〇ユーザーに分かりやすく使わせる。

 一般的な配置型UIと異なりハンドメニューはユーザーの手の平を見ない限り表示されることがないため、特にHoloLens初めてのユーザーにとっては最初が非常にわかりにくいUIとなっています。

 今回はアプリ起動時に「手のひらを見てください」とテキストが表示されハンドメニューが起動すると表示が消える仕組みを実装します。

 「左手のひらを見てください。」というTextMeshProのオブジェクトを配置しました。

 f:id:Holomoto-Sumire:20220315220928p:plain

 このテキストがハンドメニューが表示された場合非表示になるように設定します。

 この設定はハンドメニューオブジェクトのインスペクターウィンドウからHandConstraintPalmUpコンポーネントのOnHandActivete()のイベントに関数を追加し、テキストを設定、SetActiveをFalseにします。

 f:id:Holomoto-Sumire:20220315221222p:plain

 HandConstraintPalmUpコンポーネントは手の向きを検知して、メニューの表示を行うマネージャーを担っています。

 OnHandActivete()イベントでは手の平が検知された際に発火されるイベントになります。ここにテキストを非表示するように設定することでユーザーが無事にハンドメニューを開くことができたらテキストが消えるように設定されました。

 本日はHoloLensのハンドメニューを使用するうえでのUXに関しての記事でした。

〇参考

docs.microsoft.com