入力アクション は、入力を生成する特定の入力ソースからアプリケーション ロジックを分離するために役立つ生入力に対する抽象化です。 たとえば、 Select アクションを定義し、マウスの左ボタン、ゲームパッドのボタン、6 DOF コントローラーのトリガーにマップすると便利です。 その後、生成できるすべての異なる入力を認識する必要なく、アプリケーション ロジックで Select 入力アクション イベントをリッスンさせることができます。
入力アクションの作成
入力アクションは、入力アクション プロファイルで、Mixed Reality Toolkit コンポーネントの入力システム プロファイル内で構成され、アクションの名前と入力の種類 (軸制約) を指定してマップできます。

軸の制約で最もよく使用される値は次のとおりです。
軸の制約 | 説明 |
---|---|
デジタル | ゲームパッドやマウスのバイナリ ボタンなどのオン/オフ入力。 |
単一軸 | ゲームパッドのアナログトリガーのような単一軸アナログ入力。 |
二重軸 | サムスティックのようなデュアル軸アナログ入力。 |
Six Dof | 6つのDUFコントローラーによって作り出されたような平行移動と回転を持つ3Dポーズ。 |
完全な一覧は、 AxisType
にあります。
アクションへの入力のマッピング
入力を と アクションにマップする方法は、入力ソースの種類によって異なります。
コントローラー入力
[入力システム プロファイル] の下にある [コントローラー入力マッピング プロファイル] に移動します。 サポートされているすべてのコントローラーの一覧が表示されます。

構成するコントローラーを選択すると、すべてのコントローラー入力と共にダイアログ ウィンドウが表示され、それぞれに対してアクションを設定できます。

音声入力
音声コマンド プロファイルの [入力システム プロファイル] に、現在定義されている音声コマンドの一覧が表示されます。 そのうちの 1 つをアクションにマップするには、[ アクション ] ドロップダウンで選択するだけです。

ジェスチャ入力
ジェスチャ プロファイルには、入力システム プロファイルの下に、定義されているすべてのジェスチャが含まれています。 各アクションをアクションにマップするには、[ アクション] ドロップダウン で選択します。

入力アクションの処理
警告
現時点では、このセクションで説明するメソッドを使用して、 Digital 型の入力アクションのみを処理できます。 他のアクションの種類の場合は、代わりに対応する入力のイベントを直接処理する必要があります。 たとえば、コントローラー入力にマップされた 6 つの DOF アクションを処理するには、T = MixedRealityPose
でIMixedRealityGestureHandler<T>
を使用する必要があります。
入力アクションを処理する最も簡単な方法は、 InputActionHandler
スクリプトを使用することです。 これにより、Unity イベントを使用して、リッスンするアクションを定義し、アクションの開始イベントと終了イベントに対応できます。

より詳細な制御が必要な場合は、スクリプトに IMixedRealityInputActionHandler
インターフェイスを直接実装できます。 ハンドラー インターフェイスを使用したイベント処理の詳細については、「 入力 イベント」セクションを参照してください。
例
アクションを作成し、コントローラー、音声、ジェスチャの入力にマップし、コマンドでオブジェクトを回転させる方法を示すシーン例については、「 MRTK/Examples/Demos/Input/Scenes/InputActions
」を参照してください。
