XR Controller (Action-based)
Input System から XR Interaction ステートに送られる選択などのアクションを使用して、追跡される入力コントローラーデバイスの特徴値を解釈します。加えて、追跡対象デバイスの現在のポーズ値をゲームオブジェクトのトランスフォームに適用します。
この動作を行うには、Edit > Project Settings > Player の Active Input Handling 設定で Input System を有効にして、入力値の読み取りを可能にする必要があります。それぞれの入力アクションでも、アクションの現在値の読み取りを有効にする必要があります。Input Action Asset の入力アクションに対する外部からの参照は、デフォルトでは有効になっていません。
Select Action、Activate Action、UI Press Action の各プロパティには、それぞれ Select Action Value、Activate Action Value、UI Press Action Value という対応するプロパティがあります。これらのアクションの アクションタイプ は、前者が普通は Button
タイプのアクションで、後者は任意の Value
タイプのアクションです。このコンポーネントはフレームごとに Select Action の実行状況を読み取り、Select インタラクションステートがアクティブかどうかを把握するとともに、Select Action Value から float
値を取得します。Select Action Value が設定されていない場合は、float
値は代わりに Select Action から読み取られます。このプロセスは Activate アクションと UI Press アクションでも同様です。
[!ノート] 2 種類の Input Action (入力アクション) があることで、開発者は例えば Select Action と
<XRController>{LeftHand}/gripPressed
のバインディングパスを設定し、Select Value Action と<XRController>{LeftHand}/grip
のバインディングを設定することができます。コントロールが押されるときのしきい値は、Select Action に使用されるgripPressed
のプラットフォームによって決定され、軸の値はgrip
から読み取ることができます。しきい値を自身で制御する場合は、両方のアクションを単一の Value タイプの Select Action に統合し、想定される Axis コントロールタイプとgrip
のバインディングパスを設定します。また、Press インタラクションを追加して、Press Point を調節することができます。
アセットをインポートしてこのコンポーネントの設定を効率化する手順については、Starter Assets サンプルを参照してください。このサンプルには、このコンポーネントの設定を助ける入力アクションとプリセットのデフォルトセットが含まれています。
プロパティ | 説明 |
---|---|
Update Tracking Type | コントローラーがトラッキング入力をサンプリングするフレーム内の時間。 |
Update | Update Tracking Type を Update に設定すると、MonoBehaviour Update ステップの間でのみトラッキング入力をサンプリングします。 |
Before Render | Update Tracking Type を Before Render に設定すると、レンダリング直前のステップの間でのみトラッキング入力をサンプリングします。 |
Update And Before Render | Update Tracking Type を Update And Before Render に設定すると、フレーム内における上記のどちらのタイミングでもトラッキング入力をサンプリングします。 |
Enable Input Tracking | 対象のコントローラーで入力ポーズトラッキングを有効にするかどうか。有効にすると、Unity はフレームごとにコントローラーデバイスの現在のトラッキングポーズ入力を読み取ります。 現在の入力を読み取るのではなく、記録したポーズ入力を再生するなどの方法で、手動でコントローラーのステートを設定する場合は、このオプションを無効にすることができます。 |
Position Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | このゲームオブジェクトに対する位置トラッキングに使用する Input System アクション。Vector3Control コントロールである必要があります。 |
Rotation Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | このゲームオブジェクトに対する回転トラッキングに使用する Input System アクション。QuaternionControl コントロールである必要があります。 |
Tracking State Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | このゲームオブジェクトの位置と回転が更新されるときに、トラッキングステートを取得する Input System アクション。位置や回転が設定されていない場合は、追跡対象デバイスのトラッキングステートにフォールバックして位置または回転アクションを進めます。IntegerControl コントロールである必要があります。 |
Enable Input Actions | 対象のコントローラーで XR Interaction イベントの入力を有効にするかどうか。有効にすると、Unity はフレームごとにコントローラーデバイスの現在の入力を読み取ります。 現在の入力を読み取るのではなく、記録した入力を再生するなどの方法で、手動でコントローラーのステートを設定する場合は、このオプションを無効にすることができます。 |
Select Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | インタラクタブルの選択に使用する Input System アクション。ボタンのようなインタラクションか ButtonControl コントロールを伴うアクションである必要があります。 |
Select Action Value | 任意で設定し、設定なしの場合は Select Action を使用します。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | 異なる場合は、Select Action の float 値を読み取る Input System アクション。AxisControl または Vector2Control コントロールである必要があります。 |
Activate Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | 選択されているインタラクタブルのアクティベートに使用する Input System アクション。ボタンのようなインタラクションか ButtonControl コントロールを伴うアクションである必要があります。 |
Activate Action Value | 任意で設定し、設定なしの場合は Activate Action を使用します。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | 異なる場合は、Activate Action の float 値を読み取る Input System アクション。AxisControl または Vector2Control コントロールである必要があります。 |
UI Press Action | 任意で設定し、Enable Interaction with UI GameObjects が有効な場合に XR Ray Interactor によって使用されます。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | Canvas UI インタラクションに使用する Input System アクション。ボタンのようなインタラクションか ButtonControl コントロールを伴うアクションである必要があります。 |
UI Press Action Value | 任意で設定し、設定なしの場合は UI Press Action を使用します。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | 異なる場合は、UI Press Action の float 値を読み取る Input System アクション。AxisControl または Vector2Control コントロールである必要があります。 |
Haptic Device Action | |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | 触覚インパルスを送信するデバイスの特定に使用する Input System アクション。アクションを推進しているアクティブなコントロールに関係するあらゆるコントロールタイプ。 |
Rotate Anchor Action | 任意で設定し、Anchor Control が有効な場合に XR Ray Interactor によって使用されます。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | インタラクターのアタッチポイントの回転に使用する Input System アクション。Vector2Control コントロールである必要があります。回転の入力として X 軸を使用します。 |
Translate Anchor Action | 任意で設定し、Anchor Control が有効な場合に XR Ray Interactor によって使用されます。 |
Use Reference | 付随するフィールドを使用して外部的に定義されるアクションへの参照を有効にします。 |
Reference | インタラクターのアタッチポイントをインタラクターに近付けたり、反対に遠ざけたりするために使用される Input System アクション。Vector2Control コントロールである必要があります。移動の入力として Y 軸を使用します。 |
Model Prefab | このコントローラー用に示され、この動作によって自動でインスタンス化されるコントローラーモデルのプレハブ。 この動作は、開始時に自動でプレハブのインスタンスを modelParent (下記参照) の子としてインスタンス化します。ただし、model (下記参照) がすでに設定されている場合は、この値は無視されます。 |
Model Parent | この動作でモデルプレハブがインスタンス化されるときに、その親として使用されるトランスフォーム。 自動でインスタンス化され、未設定であれば Awake に設定されます。この設定によって以前のオブジェクトが自動で除去されることはありません。 |
Model | シーン内に存在するコントローラーモデルのインスタンス。modelPrefab (上記参照) を使用するのではなく、既存のオブジェクトに設定することができます。設定する場合は、この動作の子ゲームオブジェクトを参照します。そうすると、コントローラーのポーズで更新されるようになります。 |
Animate Model | インタラクションイベントに応じてモデルをアニメーション化するかどうか。有効にすると、選択時または選択解除時に名前付きのアニメーショントリガーがアクティブになります。 |