メインコンテンツまでスキップ
バージョン: 0.23.2

スナップ

はじめに

alt text
この機能の目的は、物理的に正しく見えるように仮想のオブジェクトを自然にキャッチすることです。この機能は、キャッチするオブジェクトに最もよく合うように手と指の回転を調整します。これらのポーズは、つまむつかむなどの選択するジェスチャーに関連付けられています。

ユーザーがオブジェクトに接触しながら選択するジェスチャーを実行すると、仮想の手が設定された通りにスナップします。

説明

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は、現在の手のスケールに基づいて、すべてのスナップポーズを補間することができます。インタラクション可能なものが掴まれたときに、現在の手のスケールで補間されたポーズが自動的にオブジェクトに適用されます。

TIP

ハンドスケールは0.5f1.6fの間でクランプされています。 alt text

XR Hand Interactable Snap Pose

Snap Poseでは、手をスナップさせるオブジェクトの正確な位置を定義することができます。

手のTransformや手の関節のRotationを編集することで、開発者は特定のハンドスケールのポーズを設定できます。手のスケールは、Snap PoseのTransformのScaleのxの値によって定義されます。

デフォルトでは、Snap Poseのデータはゲームオブジェクト自体にシリアライズされます。[Export pose]をクリックすることで、ポーズを出力し、リファレンスとして使用することができます。ハンドポーズ参照フィールドが設定されている場合、データは参照ハンドポーズアセットにシリアライズされます。参照ハンドポーズデータをスナップポーズオブジェクトのシリアライズに適用するには、Apply pose inspectorボタンをクリックします。

WARNING

ハンドポーズリファレンスからハンドジョイントを編集すると、ハンドポーズアセットのデータがシリアライズされます。その結果、このハンドポーズアセットを参照しているすべてのスナップポーズが変更されます。
alt text

スナップの設定方法

  1. XR Hand Interactable Snap Pose ProviderオブジェクトをInteractableオブジェクトの子として追加します。スナップポーズプロバイダのHandednessを選択します。スナップポーズプロバイダを2つ、それぞれの手用に1つずつ作成し、両手のスナップを実行します。Interactableがつかまれたときに、スナップされていない指がある場合は、それらの指のmaskフィールドをrequiredからfreeに変更します。
TIP

片方の手のプロバイダーとポーズを設定したら、プロバイダーを複製し、利き手を変更し、ポーズを反転し、トランスフォームを調整して、もう一方の手のミラー化されたスナップポーズプロバイダーをすばやく取得します。

  1. XR Hand Interactable Snap Pose Providerオブジェクトの下にXR Hand Interactable Snap Poseオブジェクトを追加します。
  2. 変形ツールでスナップポーズのポーズとスケールを設定し、ジョイントの編集ボタンをクリックして手のジョイントを編集します。
    alt text
WARNING

各軸に均一なスケールを使用してください。XR Hand Interactable Snap Pose Providerは、スナップポーズを並べ替えるためにScaleのx値のみを使用します。

  1. 提供ポーズリストにスナップポーズを追加します。
    alt text
  2. XR Hand Interactable Snap Poseをスケールを変えて繰り返し追加します。
  3. XR Hand Interactable Snap Pose Providerコンポーネントのスケールスライダを使ってスケールを変更し、ポーズ補間を見直します。
    alt text