夜風のMixedReality

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

InteractablesExamples ~MixedRealityToolkit v2 Examplesを触ってみる。 その①~

 MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。

 Examplesを理解すればMRTKの機能の使い方を学習することやノンコーディングでのアプリ開発が可能になります。  

 今回はUX/Interactables/InteractablesExamplesを見ています。

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

〇デモシーンの概要

 InteractablesExamplesはボタン、UIのコントロールなどのインタラクティブをフィードバックとともに構築するための基本的なコンポーネントを含んだサンプルです。

〇GrabHandle(Interactables/NearInteractionExamples/GrabHandle)

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

 [GrabHandle]は取ってのような形のオブジェクトです。

 カーソルが合うと色が変化し、[Grab]の動作を行うことでTextとオブジェクトの色と形が変化します。

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

 GrabHandleはHierarchyのInteractables/NearInteractionExamplesにあります。 GrabHandleという親オブジェクトの子オブジェクトとしてメッシュが格納されています。

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

 GrabHandleのInspectorを開くと[Interactable]がアタッチされています。

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

●Interactable

 ・General/InputActions

 Interactableをアタッチしたオブジェクトに対して認識するアクションを指定します。ここでは[Select]が指定されていています。

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

これは[MixedRealityToolkit]のproviderの[Input]の[InputActions]で指定したアクションに対応しています。

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

 ・Profiles

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

 ProfilesはInteractableをアタッチしたオブジェクトにアクションが行われた場合のイベントを指定します。

 [Target]にはイベントを行うオブジェクト、[Theme]には実行するイベントの内容を指定したThemeと呼ばれるファイルを指定します。

 ・Near Interaction Grabbable

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

 Near Interaction GrabbableをオブジェクトにアタッチすることでHoloLens 2のHandTrackingを使用してオブジェクトに対するGrabを認識することができます。

〇MixedReality Theme

 MixedReality ThemeはMixedRealityToolkitの機能として利用できるThemeです。

 Unityの[ProjectWindow]で[Create/MixedRealityToolkit/Theme]から作成できます。

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

 作成したThemeのInspectorから[States]を設定します。

 [GrabHandle]では[DefaultInteractableStates]が設定されています。

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

 [Theme Runtime]で実行するイベントの種類を選択します。ここではColorを変化させるため[InteractableColorChildrenTheme]がされています。

 

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

 ターゲットとなるMaterialのShaderとそのpropertyを指定します。 ここではMRTK StandardShaderの[_Color]が設定されています。

 

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

 最後にColorの変化を指定します。

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

 ここでは[Default][Focus][Pressed][Disabled]の4種のステータスが設定されています。 それぞれ

 ・Default・・・デフォルトの状態

 ・Focus・・・カーソルがオブジェクトに当たっている(フォーカスがあっている)場合

 ・Pressed・・・オブジェクトが選択されている状態

 ・Disabled・・・カーソルを見失った場合

 の状態を指定できます。

redhologerbera.hatenablog.com