本日はOsaka HoloLens Hackathon 2022三日目の記事です。
11日からOsaka HoloLens Hackathon2022が開催されています。
筆者は指文字のアイデアで参加しています。
〇キーボードを完成させる。
昨日は日本語のキーボードの機能を作成しました。
今回はキーボードのUXを改善してより使いやすくします。
〇SolverHandlerとFollow
最初にキーボードがユーザーの目の前に常に配置されるようにします。
この実現のためにはユーザーの頭を追跡する必要があります。
MRTKでは[SolverHandler]コンポーネントでユーザーのインプットをトレースしています。
ソルバーはアタッチしたオブジェクトの方向や距離を計算する手法を実装するコンポーネントです。
[HandMenu]などで使用されています。
キーボードの親オブジェクトに[SolverHandler]コンポーネントをアタッチします。
[Tracked Target Type]を[Head]に設定します。
これで頭に対しての移動や方向を計算するようになります。
次に計算した情報をもとにオブジェクトを動かします。動かしたい方法によっていくつか種類がありますが今回は[Follow]コンポーネントを使用していきます。
[Follow]コンポーネントはその名の通りオブジェクトをあるオブジェクトに追従させるコンポーネントです。
今回は[Lifetime]を3に設定していますが、これによって3秒後に[Follow]コンポーネントの機能を無効か(コンポーネントをディアクティブ)します。
今回はキーボードを起動して、ユーザーに追従してそれ以降は操作しやすいように[Follow]コンポーネントを無効化しキーボードの移動を停止しています。
[Distance]は任意の値を入力し、追従させる際のオフセットを指定できます。
〇キーボードの移動
ここまではキーボードが自然にユーザーの手元に来るように移動を実装しました。ここからはキーボードをユーザー自身がキー操作しやすい場所に移動させることができるようにします。
UnityプリミティブのCubeをキーボードの子オブジェクトとして配置します。
Cubeに[NearInteractionGrabable]コンポーネントと[ObjectManuplater]コンポーネントをアタッチします。
これによりCubeをつかみ移動が可能になります。
また[HostTransform]に親オブジェクトであるキーボードのオブジェクトをアタッチします。 これによってCubeをつかんで移動させた際にCubeだけではなくキーボード自体が移動可能になりました。
以上でキーボードのUXを改良してキーボードを完成させることができました。
ここで作成したキーボードはHoloLens Hackathon終了後GitHubで公開します。