夜風のMixedReality

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

HoloLens 2アプリでタッチ操作を実装する。

本日はHoloLensの基礎的な部分に関する記事です。

筆者の中で挑戦したい表現があり、それに向けてまずは基礎的な部分を載せていきます。

〇HoloLens 2のHandTrackingとジェスチャ

HoloLens 2ではユーザーの手を認識してアプリケーション側に反映させる[HandTracking]を使用できます。

f:id:Holomoto-Sumire:20210319233659g:plainf:id:Holomoto-Sumire:20210301193154p:plain

この精度は類似のTrackingデバイスに比べかなり高く、左右55点のポイントが取得可能です。

HoloLens 2ではこのHandTrackingを使用したアプリ内での操作が可能ですが、開発ツールである[MixedRealityToolkit]では主に次のジェスチャが提供されています。

・Grab(握る)

・Touch(触る)

・Press(押す)

・Scroll

今回はこの中でオブジェクトへのタッチを実装します。

〇タッチ

今回はオブジェクトに触ると色が変わるという簡単な処理を実装します。

①MRTKを導入したシーンに[Cube]を配置します。

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

②[Cube]に[NearInteractionTouchable]コンポーネントをアタッチします。

これはtouchの動作を検出しイベントを発行するクラスになります。

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

次にイベントを受信し別のイベントを発火させるコンポーネントを実装します。

③[Cube]に[Interactable]コンポーネントをアタッチします。

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

このコンポーネントはアクションに対してのリアクションを設定します。

④[Events]の[Receivers]のタブを開き、[EventReceiverType]を[InteractableOnTouchReceiver]を指定します。

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

前述のとおり[Interactable]コンポーネントはアクションに対してのリアクションを返します。この設定でタッチのアクションに対してのリアクションを指定できるようになります。

⑤[OnTouch()]、[OnTouchEnd]のイベントが使用できるようになります。

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

これはそれぞれタッチした際、タッチを終えた際発火するイベントになります。

今回はtouchした際に白く、タッチを終えた際に赤くなるようにマテリアルを設定しました。

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

実記で見ていきます。

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

上記のように実機でタッチの操作の実装を確認できました。