夜風のMixedReality

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

HoloLensでアプリ内で日本語のキーボードを完成させる。Osaka HoloLens Hackathon 2022三日目

本日はOsaka HoloLens Hackathon 2022三日目の記事です。

11日からOsaka HoloLens Hackathon2022が開催されています。

筆者は指文字のアイデアで参加しています。

〇キーボードを完成させる。

昨日は日本語のキーボードの機能を作成しました。

今回はキーボードのUXを改善してより使いやすくします。

〇SolverHandlerとFollow

最初にキーボードがユーザーの目の前に常に配置されるようにします。

この実現のためにはユーザーの頭を追跡する必要があります。

MRTKでは[SolverHandler]コンポーネントでユーザーのインプットをトレースしています。

docs.microsoft.com

ソルバーはアタッチしたオブジェクトの方向や距離を計算する手法を実装するコンポーネントです。

[HandMenu]などで使用されています。

キーボードの親オブジェクトに[SolverHandler]コンポーネントをアタッチします。

[Tracked Target Type]を[Head]に設定します。

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

これで頭に対しての移動や方向を計算するようになります。

次に計算した情報をもとにオブジェクトを動かします。動かしたい方法によっていくつか種類がありますが今回は[Follow]コンポーネントを使用していきます。

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

[Follow]コンポーネントはその名の通りオブジェクトをあるオブジェクトに追従させるコンポーネントです。

今回は[Lifetime]をに設定していますが、これによって3秒後に[Follow]コンポーネントの機能を無効か(コンポーネントをディアクティブ)します。

今回はキーボードを起動して、ユーザーに追従してそれ以降は操作しやすいように[Follow]コンポーネントを無効化しキーボードの移動を停止しています。

[Distance]は任意の値を入力し、追従させる際のオフセットを指定できます。

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

〇キーボードの移動

 ここまではキーボードが自然にユーザーの手元に来るように移動を実装しました。ここからはキーボードをユーザー自身がキー操作しやすい場所に移動させることができるようにします。

 UnityプリミティブのCubeをキーボードの子オブジェクトとして配置します。

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

Cubeに[NearInteractionGrabable]コンポーネントと[ObjectManuplater]コンポーネントをアタッチします。

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

 これによりCubeをつかみ移動が可能になります。

 また[HostTransform]に親オブジェクトであるキーボードのオブジェクトをアタッチします。 これによってCubeをつかんで移動させた際にCubeだけではなくキーボード自体が移動可能になりました。

 以上でキーボードのUXを改良してキーボードを完成させることができました。

 ここで作成したキーボードはHoloLens Hackathon終了後GitHubで公開します。