Unity でのヘッドを見つめますHead-gaze in Unity

アプリが混合現実で作成するホログラムをユーザーが対象にする主な方法は、宝石です。Gaze is a primary way for users to target the holograms your app creates in Mixed Reality.

ヘッド見つめを実装するImplementing head-gaze

概念的には、ヘッド・宝石は、ヘッドセットがあるユーザーのヘッドから、接続している前方方向に、射線がどのように衝突しているかを判断することによって実装されます。Conceptually, head-gaze is implemented by projecting a ray from the user's head where the headset is, in the forward direction they are facing and determining what that ray collides with. Unity では、ユーザーの head 位置と方向は、Unity のメインカメラ(具体的にはunityengine) を介して公開されます。transformUnityengine. Camera. mainを変換します。transform. position.In Unity, the user's head position and direction are exposed through the Unity Main Camera, specifically UnityEngine.Camera.main.transform.forward and UnityEngine.Camera.main.transform.position.

RayCastを呼び出すと、衝突が発生した3d ポイントや、その他の競合しがを使用している他のオブジェクトを含む、衝突に関する情報を含むRaycastHit構造が生成されます。Calling Physics.RayCast results in a RaycastHit structure which contains information about the collision including the 3D point where collision occurred and the other GameObject the head-gaze ray collided with.

例: ヘッドを見つめて実装するExample: Implement head-gaze

void Update()
{
       RaycastHit hitInfo;
       if (Physics.Raycast(
               Camera.main.transform.position,
               Camera.main.transform.forward,
               out hitInfo,
               20.0f,
               Physics.DefaultRaycastLayers))
       {
           // If the Raycast has succeeded and hit a hologram
           // hitInfo's point represents the position being gazed at
           // hitInfo's collider GameObject represents the hologram being gazed at
       }
}

ベスト プラクティスBest practices

上記の例では、更新ループで1つの raycast を実行して、ユーザーのヘッドポイントの対象を見つける方法を示していますが、オブジェクトに関心を持つ可能性のあるオブジェクトではなく、ヘッドを監視する1つのオブジェクトでこれを行うことをお勧めします。t は gazed していません。While the example above demonstrates how to do a single raycast in an update loop to find the target the user's head points at, it is recommended to do this in a single object managing head-gaze instead of doing this in any object that is potentially interested in the object being gazed at. これにより、各フレームに1つのヘッドを raycast するだけで、アプリの処理を保存できます。This lets your app save processing by doing just one head-gaze raycast each frame.

ヘッドを視覚化するVisualizing head-gaze

マウスポインターを使用してコンテンツをターゲットにして操作するデスクトップと同様に、ユーザーの顔を示すカーソルを実装する必要があります。Just like on the desktop where you use a mouse pointer to target and interact with content, you should implement a cursor that represents the user's head-gaze. これにより、ユーザーが操作しようとしている内容に自信を持っています。This gives the user confidence in what they're about to interact with.

Mixed Reality Toolkit v2 でのヘッドを見つめますHead-gaze in the Mixed Reality Toolkit v2

MRTK v2 の入力マネージャーから、ヘッドを使用してアクセスできます。You can access head-gaze from the Input Manager in MRTK v2.

関連項目See also