次の方法で共有


Unity スクリプト内の視線追跡データへのアクセス - MRTK2

この記事では、MRTK シーンで視線追跡を設定する方法について理解していることを前提としています ( 視線追跡を使用するための基本的な MRTK セットアップに関するページを参照してください)。 MonoBehaviour スクリプトで視線追跡データにアクセスするのは簡単です。 CoreServices.InputSystem.EyeGazeProvider を使用するだけです。

IMixedRealityEyeGazeProvider

MRTK の視線追跡構成は、 IMixedRealityEyeGazeProvider インターフェイスを介して構成されます。 CoreServices.InputSystem.EyeGazeProvider を使用すると、実行時にツールキットに登録される既定の視線入力プロバイダーの実装が提供されます。 EyeGazeProviderの便利なプロパティを次に示します。

  • IsEyeTrackingEnabled: ユーザーが視線入力に視線追跡を使用することを選択した場合は True。

  • IsEyeCalibrationValid: ユーザーの視線追跡の調整が有効かどうかを示します。 値がまだ視線追跡システムからデータを受信していない場合は、'null' を返します。 ユーザーが視線追跡の調整をスキップしたため、無効である可能性があります。

  • IsEyeTrackingEnabledAndValid: 現在の視線追跡データが現在視線入力に使用されているかどうかを示します。

  • IsEyeTrackingDataValid: 視線追跡データが使用可能な場合は True。 タイムアウトを超えた (ただし、ユーザーの点滅に対して堅牢である必要がある) か、ハードウェアまたはアクセス許可の追跡が不足しているため、使用できない可能性があります。 ユーザーが視線調整されているかどうかを検出する方法と、適切な通知を表示する方法について説明する、不足している目の 調整通知のサンプル をご覧ください。

  • GazeOrigin: 視線の原点。 'IsEyeGazeValid' が false の場合、 の視線入力元が返されることに注意してください。

  • GazeDirection: 視線の方向。 'IsEyeGazeValid' が false の場合、 の視線入力方向が返されます。

  • HitInfoHitPositionHitNormal など: 現在ターゲットを注視している情報。 ここでも、 IsEyeGazeValid が false の場合、これはユーザーの の視線入力に基づいています。

CoreServices.InputSystem.EyeGazeProvider の使用例

FollowEyeGaze.csの例を次に示します。

  • ユーザーが見ているホログラムのポイントを取得します。
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • ユーザーが現在探している場所から一定の距離にあるビジュアル アセットを表示します。
// If no target is hit, show the object at a default distance along the gaze ray.
gameObject.transform.position =
CoreServices.InputSystem.EyeGazeProvider.GazeOrigin +
CoreServices.InputSystem.EyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;

関連項目