スナップ
はじめに
この機能の目的は、物理的に正しく見えるように仮想のオブジェクトを自然にキャッチすることです。この機能は、キャッチするオブジェクトに最もよく合うように手と指の回転を調整します。これらのポーズは、つまむ、つかむなどの選択するジェスチャーに関連付けられています。
ユーザーがオブジェクトに接触しながら選択するジェスチャーを実行すると、仮想の手が設定された通りにスナップします。
説明
XR Hand Interactable Snap Pose Provider
XR Hand Interactable Snap Pose Provider
コンポーネントをHierarchyのXR Grab Interactable
オブジェクトの下に追加することで、インタラクティブなスナップポーズを提供することができます。
XR Hand Interactable Snap Pose Provider
の下に、1つまたは複数の異なるスケールのXR Hand Interactable Snap Pose
を作成することができます。
Snap Pose Provider
は、その時のユーザーの手の大きさに基づいて、すべてのスナップポーズを補間することができます。インタラクション可能なものが掴まれたときに、その時の手の大きさで補間されたポーズが自動的にオブジェクトに適用されます。
ハンドスケールは0.5f
〜1.6f
の間でクランプされています。
XR Hand Interactable Snap Pose
スナップポーズでは、手をスナップさせるオブジェクトの正確な位置を定義することができます。
手のTransform
や手の関節のRotation
を編集することで、開発者は特定の手の大きさのポーズを設定できます。
手の大きさは均一である必要があり、スナップポーズのTransform
のScale
のx
の値を参照します。
スナップポーズのデータはゲームオブジェクト自体にシリアライズされます。
- [Export pose]ボタンをクリックすると、ポーズをアセットとしてエクスポートします。そのため、このポーズは他の手のポーズを設定するためのコピーとして再利用できます。
- [Import pose]ボタンをクリックすると、手のポーズデータがゲームオブジェクトに適用され、同様にシリアライズされます。
スナップの設定方法
- XR Hand Interactable Snap Pose Providerオブジェクトをインタラクト可能なオブジェクトの子として追加します。Snap Pose ProviderのHandednessを選択します。Snap Pose Providerを2つ、それぞれの手用に1つずつ作成し、両手のスナップを実行します。インタラクト可能なオブジェクトがつかまれたときに、スナップされていない指がある場合は、それらの指のマスクフィールドをrequiredからfreeに変更します。
片方の手のProviderとポーズを設定したら、Providerを複製し、利き手を変更し、ポーズを反転し、Tranform
を調整して、もう一方の手のミラー化されたSnap Pose Providerをすばやく取得します。
- XR Hand Interactable Snap Pose Providerオブジェクトの下にXR Hand Interactable Snap Poseオブジェクトを追加します。
- 変形ツールでスナップポーズのポーズとスケールを設定し、ジョイントの編集ボタンをクリックして手のジョイントを編集します。
各軸に均一なスケールを使用してください。XR Hand Interactable Snap Pose Providerは、スナップポーズを並べ替えるためにScale
のx
値のみを使用します。
Poses
リストにスナップポーズを追加します。
- XR Hand Interactable Snap Poseを
Scale
を変えて繰り返し追加します。 - XR Hand Interactable Snap Pose Providerコンポーネントの
Scale
スライダーを使って大きさを変更し、ポーズ補間を見直します。