視線入力

視線 入力は、ユーザーが見ている場所に基づいて世界と対話する入力の形式です。 視線入力は 2 つの異なるフレーバーに存在します

頭の視線入力

この種類の視線入力は、ヘッド/カメラが見ている方向に基づいて行います。 頭の視線入力は、目の視線入力をサポートしていないシステム、またはハードウェアが目の視線入力をサポートする可能性があるが、適切なアクセス許可とセットアップのセットが実行されていない場合にアクティブになります。

通常、頭の視線入力は、ホログラフィック フレームの中央に配置し、エア タップ ジェスチャを実行することで、オブジェクトを見て、HoloLens 1 スタイルの相互作用に関連付けます。

目の視線入力

この種の視線入力は、ユーザーの目が見ている場所に基づいて行います。 視線入力は、視線追跡をサポートするシステムにのみ存在します。 視線入力 の使い方の 詳細については、視線追跡に関するドキュメントを参照してください。

GazeProvider

視線入力機能 (頭と目の両方) は 、GazeProvider によって提供されます。 このプロバイダーは、入力システム プロファイル の [ポインター ] セクションで構成できます。

視線入力構成エントリポイント

他の入力ソースと同様に、視線入力プロバイダーは、ポインターを使用してシーン内のオブジェクトと対話します (ポインターについては、このドキュメントを参照してください)。 視線入力プロバイダーの場合、そのポインターは を介して実装され InternalGazePointer 、プロファイルを介して構成されません。

IMixedRealityGazeProviderIMixedRealityEyeGazeProviderを実装する別のクラスを参照するために Gaze Provider Type を変更することで、株式の GazeProvider を代替実装に置き換える可能性があります。 一般に、GazeProvider の再実装は簡単では"ない" ので、株式の GazeProvider を使用 (バグを見つけ出す際に問題を報告する) を使用します。

プラットフォームによって提供される別の視線入力の姿勢

既定では、MRTK GazeProvider はカメラのフレームの中心を視線入力の原点として使用します。 一部のプラットフォームは、Windows Mixed Reality上HoloLens 2、別の方法で定義された視線入力の姿勢を提供します。 これは、視線入力設定 Use Head Gaze Override の 設定を使用して管理されます。 有効にすると、代替の視線入力のオーバーライドが使用されます。 無効にすると、既定のフレーム 中心の原点が使用されます。 具体的には、ターゲットHoloLens 2頭を使用するユーザーの快適性を考慮するために、視線入力角度が数度上がっています。

使用

現在の視線入力ターゲットを取得する方法

このサンプルでは、ユーザーの視線入力の対象となる現在のゲーム オブジェクトを取得する方法を示します。

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

現在の視線入力の方向と原点を取得する方法

このサンプルでは、ユーザーの視線入力の方向と原点 (方向が向く点) を表す Vector3 を取得する方法を示します。

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}