夜風のMixedReality

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

JoystickExample ~MixedRealityToolkitExamplesを触ってみる~ その① Joystickの構成

本日はHoloLensの表現枠です。

HoloLensの開発ツールであるMixedRealityToolkitの最新バージョン2.5ではいくつかの新しい機能が追加されました。

今回はその中の一つ[Joystick]を使用します。

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

〇MRTKv2.5とは?

MRTKは2020年10月にバージョン2.5がリリースされました。

リリースノートは以下になります。

microsoft.github.io

〇デモシーン

デモシーンは[Assets/MRTK/Examples/Experimental/Joystick]内にあります。

[Experimental(実験的)]というのはMRTKのバージョンアップに際しその名の通り実験的に導入した機能を指します。[Joystick]も最新バージョンである2.5で導入されました。

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

実機でデモシーンを動かしてみます。

youtu.be

Joystickを握って(もしくはつまんで)操作することでStickが傾き、その方向に入力が行われます。

デモでは3つのJoystickを用いて[Move],[Rotate],[Scale]の三つの動作を行うことができます。

〇シーン構成

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

シーンには大きく動かす対象となる[MarsCuriosityRover]オブジェクトと床となる[FloorPlane]、動かすためのJoystickがある[ToggleFeaturesPanel]が配置されています。

[ToggleFeaturesPanel]オブジェクト内に[JoystickContainer]オブジェクトがありこの中にJoysctickのプレファブとなる[JoystickPrefab]が存在します。

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

〇Joystickの構成

[JoystickPrefab]は親となる[JoystickPrefab]オブジェクト、

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

コライダーが付いており実際に動いている[Grabber]オブジェクト

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

シリンダーと球で構成される見た目上のスティック[Joystick]オブジェクト

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

土台となる[Base]オブジェクト

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

結果を数値で表示する[DebugText]で構成されています。

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

〇Joystickの機能

[JoystickPrefab]には[JoystickController]コンポーネントがアタッチされており、これがJoystickの操作の基本となります。

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

[JoystickController]コンポーネントの[TargetObject]には動かす対象を指定します。 ここでは床とオブジェクトの親オブジェクトである[FloorContainer]オブジェクトを指定しています。

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

[DebugText]には対象の動きをモニターするテキストを指定します。ここでは[DebugText]を指定しています。

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

[Joystick Visual]には見た目上の稼働するスティックを指定します。

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

[Grabber Visual]には[Grabber]オブジェクトがアタッチされており、実際に稼働するコライダーを指定しています。

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

パラメーターにはスティックの動きやすさ、Valueの大きさなどを指定しています。

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

[Mode]では[Move],[Rotete],[Slacle]の三つが選択でき、[TargetObject]をどのように動かすかを設定できます。

〇Joystickを使う

この[JoystickPrefab]はAssets/MRTK/SDK/Experimental/Joystick内にプレファブとして存在します。 自身のシーンで導入する際はここからD&Dでシーンに加えます。

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

詳しい処理内容や使い方は次回以降見ていきます。