基本的なインタラクション設定
基本的なシーンの設定が完了すると、ユーザーは自分の手を視覚化できるようになりますが、周囲の仮想のオブジェクトなどを操作することはまだ出来ません。
これを有効にするには、以下で説明するハンドトラッキングのインタラクションの基本的な設定を行います。
シーンのアーキテクチャ
可視化
XR Hand Tracking Managerを作成すると、左右のフィールドに 2つのプレハブが自動的に設定されます。これらのプレハブは手の可視化のみを目的としています。
手のプレハブのゲームオブジェク トには、ハンドメッシュの可視化とスキニングメッシュの関節位置の更新を担当するHand Rigged VisualizerとHand Driverコンポーネントがあります。
QCHTインタラクションは完全にXRITパッケージに基づいています。
インタラクションのプロファイル
QCHTIはHand Interaction ProfileとMicrosoft Hand Interaction Profileをサポートしています。
インタラクションのプロファイルが選択されていない、または実行時にインタラクションのプロファイルをサポートしていない場合、QCHTIはカスタムHand Tracking Input Deviceにフォールバックし、入力システムデバイスマップにXRコントローラーとして登録されます。
フォールバック時に利用可能なコントロールは次のとおりです。
| Unityのコントロール名 | 型 | エイリアス |
|---|---|---|
| isTracked | Boolean | |
| trackingState | Flag | |
| devicePosition | Vector3 | |
| deviceRotation | Quaternion | |
| pokePosition | Vector3 | |
| pokeRotation | Quaternion | |
| pinchPosition | Vector3 | |
| pinchRotation | Quaternion | |
| graspPosition | Vector3 | |
| graspRotation | Quaternion | |
| pointerPosition | Vector3 | |
| pointerRotation | Quaternion | |
| trigger | Float | select |
| triggerPressed | Boolean | selectPressed, triggerButton |
| grip | Float | squeeze |
| gripPressed | Boolean | squeezePressed, gripButton |
遠くのインタラクションや近くのインタラクションを有効にするには、最初からハンド用のカスタムXRITコントローラーを追加する必要があります。
シーンのHierarchyを右クリックし、QCHT > Hand Tracking Controllersを選択して、Hand Tracking Controllersのゲームオブジェクトをシーンに追加します。

Hand Tracking Controllersの2つのインスタンスが、XR Origin(またはAR Session)の子として自動的に追加されます。

各コントローラーは、XR Ray InteractorとXR Poke Interactor、および2つのXR Direct Interactorコンポーネントを定義済みのセットアップで集約します。これらのコンポーネントは高度に構成可能です。
ただし、入力アクションのマッピングはこれらのコントローラーで事前に設定されていません。
Core Assetsを使用して、デフォルトの入力アクションのマッピングを持つXRリグをセットアップすることを、おすすめします。