基本的なインタラクション設定
基本的なシーンの設定が完了すると、ユーザーは自分の手を視覚化できるようになりますが、周囲の仮想のオブジェクトなどを操作することはまだ出来ません。
これを有効にするには、以下で説明するハンドトラッキングのインタラクションの基本的な設定を行います。
シーンのアーキテクチャ
可視化
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リグをセットアップすることを、おすすめします。
XR Hand Controller (非推奨)
XR Hand Controller
コンポーネントは、XR インタラクション ツールキット パッケージのXR Action Base Controller
のカスタム実装です。
XR Hand Controller
は、基盤となるハンドトラッキングのサブシステムに直接マップされた新しいInput System
からの入力アクションの処理を担当します。
このXR Action Base Controller
のカスタム実装は、追加のグラブアクションとコントローラーの利き手を定義します。これは、インタラクションのフィルター処理に役立ちます。
このコンポーネントは、近接インタラクションが2つの直接インタラクタ (つまむインタラクション用、つかむインタラクション用) に分割されたため、非推奨になりました。新しいセットアップの詳細については、Core AssetsのXRリグを参照してください。