HoloLens 2 では、ユーザーが見ているサーフェス メッシュにターゲットを描画したいと考えています。視線を表すベクトル ポインターを取得するにはどうすればよいですか? カーソルは、このレイ ポインターがサーフェス メッシュと衝突する場所をすでに検出していると思いますが、視線のレイは使用しません。ありがとうございました。
3 に答える
アイトラッキングには次のようにアクセスします
appx マニフェストに Capability として「gazeInput」を追加します
アイトラッキング API を呼び出す前に、呼び出してユーザーに承認を求める
EyesPose.RequestAccessAsync()
ゲイズレイを取る
if(Windows.Perception.People.EyesPose.IsSupported)
{
var gaze = Windows.UI.Input.Spatial.SpatialPointerPose.TryGetAtTimestamp(coordinateSystem, DateTime.Now).Eyes.Gaze;
if(gaze != null)
{
var dir = gaze.Direction;
var org = gaze.Origin;
}
}
MRTK v2 を使用している場合は、呼び出し元MixedRealityToolkit.InputSystem.GazeProvider
またはMixedRealityToolkit.InputSystem.EyeGazeProvider
コードから確認する必要があります。特に視線を探している場合は、視線データを求める前にIsEyeGazeValid
プロパティを確認する必要があります。また、エディターで必要な場合は、GazeProvider で [視線を優先する] をオンにし、入力シミュレーション プロファイルで視線シミュレーションをオンにしていることを確認してください。
そうではなく、ヘッド ゲイズが必要な場合は、HitPositionおよび関連するプロパティが必要な情報を提供する必要があります。
MRTK v2 でのアイ トラッキングに関する追加情報については、ドキュメントを参照してください。
HoloLens 1 と HoloToolKit では、これを使用しました - Worldposition:
Vector3 hitPosition = GazeManager.Instance.HitPosition;
LocalPosition の場合:
Vector3 hitPosition = transform.InverseTransformPoint(GazeManager.Instance.HitPosition);
新しい MRTK V2 には Gazemanager のようなものがありますか? カメラには、レイキャストを含むスクリプトが必要です...
編集: 待って、あなたの目の座標を探していますか (HoloLens 2 には視線追跡が含まれていると読んだため)?