夜風のMixedReality

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

MixedReality Toolkit Examplesを読み解く HandCoachExample その①

本日はMRTK Examples調査枠です。

HoloLensの開発ツールであるMRTKにはMRTKの機能をまとめたデモ集Examplesが提供されています。

MRTKに実装されている機能や実装などを学ぶことができます。

今回はHandCoachExampleを見ていきます。

〇HandCoachExample

MRTK v.2.4ではHandCoachExampleはMRTK/Examples/Experimental/HandCoachExample/Scenesにあります。

2020年9月現在HandCoachExamplesはExperimenatal(実験的機能)として実装されています。

〇シーン概要

シーンには8つのオブジェクトとそれに対応する手のオブジェクトが配置されています。

f:id:Holomoto-Sumire:20200922094632j:plain

HandCoachExampleではHoloLensの操作に慣れていないユーザーに対してジェスチャーを伝える機能のデモシーンです。

シーンを実行すると8つそれぞれのオブジェクトの操作方法に関して手のオブジェクトとアニメーションで視覚的に教えてくれます。

〇Near Select

f:id:Holomoto-Sumire:20200922211835g:plain

Near Selectはオブジェクトに触るtouchの動作を覚えることができます。

〇AirTap

f:id:Holomoto-Sumire:20200922212051g:plain

ハンドオブジェクトがAirTapのアニメーションを行います。

ユーザーは手のオブジェクトに重ねるように手を向けて動作を真似することでジェスチャーを覚えることができます。

〇Move

f:id:Holomoto-Sumire:20200922212110g:plain

オブジェクトを動かすジェスチャーを伝えるアニメーションです。

コップのオブジェクトをつかんで動かすようにアニメーションが動きます。

〇Rotate

f:id:Holomoto-Sumire:20200922212238g:plain

BoundingBoxがアタッチされているオブジェクトを回転させるアニメーションです。

オブジェクトのBoundingBoxのハンドルをつかみ、動かしています。

〇Scale

f:id:Holomoto-Sumire:20200922212437g:plain

BoundingBoxがアタッチされているオブジェクトを拡大するアニメーションです。

BoundingBoxのハンドルをつかんで拡大する動きを教えます。

〇Scroll

f:id:Holomoto-Sumire:20200922212543g:plain

HoloLens 2のジェスチャーで初心者にとってオブジェクトとの距離感をつかむことが難易度が高いため、筆者の個人的に一番使用したいCoachです。

オブジェクトを押さない程度に触れ、上下にスワイプします。

〇HandFlip

f:id:Holomoto-Sumire:20200922212835g:plain

手のひらを反すアニメーションを行います。

これはHandMenu等を説明する場合有効的です。

〇PlamUp

f:id:Holomoto-Sumire:20200922212935g:plain

HandFlipと似ていますが、手のひらを反す動作がありません。

PlayGroundの鳥のデモなど手のひらを使う動作を覚えることができます。

〇HandCoach

HandCoachExampleの[SceneContent]の子オブジェクトには上記の各捜査対象のオブジェクトの子オブジェクトとして[StaticHandCoachRoot_R]があり、このオブジェクトが手のモデルになります。

f:id:Holomoto-Sumire:20200922213215j:plain

f:id:Holomoto-Sumire:20200922213731j:plain

[StaticHandCoachRoot_R]オブジェクトには子オブジェクトとして[InteractionHint_R]、さらに子オブジェクトとして[HandRig_R]、さらに深い階層に骨に当たる[MainR_JNT]とメッシュに当たる[MeshR]があります。

f:id:Holomoto-Sumire:20200922213952j:plain

[MeshR]には[Teaching_Hand2]というマテリアルがアタッチされており、このマテリアルが手の見た目の設定に相当します。

f:id:Holomoto-Sumire:20200922214346j:plain

また、[Teaching_Hand2]マテリアルには[Teaching_Hand2]という独自のShaderがアタッチされています。

このShaderに関しても次回以降調査してみます。

[HandRig_R]にアニメーターが設定されています。

f:id:Holomoto-Sumire:20200922214607j:plain

このアニメーターには[HandCoach_R_Animator]がアタッチされており、ここに各操作のアニメーションが格納されています。

f:id:Holomoto-Sumire:20200922214737j:plain

親オブジェクトの[InteractionHint_R]オブジェクトには[HandInteractionHint]コンポーネントがアタッチされており、この[AnimationState]で再生する動きを選択しています。

f:id:Holomoto-Sumire:20200922214924j:plain

以上がHandCoachExampleの第一回でした。

HandTrackingは一度理解できれば現実のものと対話するように操作できますが、初めてHoloLensを体験するユーザーにとっては難しいものもあります。

このような機能は初心者のユーザーを想定して何らかの仕組みで現れるようにすることでよりストレスなくHoloLensの体験ができるでしょう。