本日は MRTKv2 の調査枠です。
MRTKv2 の Guides ドキュメントを少しずつ読み進めていきます。
MRTKv2のGuidesドキュメント
以下のドキュメントを読み進めていきます。
microsoft.github.io
以下のページでは有志による本ドキュメントの日本語翻訳が行われています。
投稿時点でこちらで未翻訳、または著者が興味のある部分について記事にしていきます。
hololabinc.github.io
本記事では以下のページを読み進めます。
microsoft.github.io
Unityスクリプトで視線追跡データにアクセスする
本セクションはMRTKシーンでアイトラッキングを設定する手順を実行したことを前提としています
microsoft.github.io
MonoBehaviour スクリプトから視線追跡データへ簡単にアクセスできます。
MixedRealityToolkit.InputSystem.EyeGazeProvider を使用するだけです。
MixedRealityToolkit.InputSystem.EyeGazeProvider
MixedRealityToolkit.InputSystem.EyeGazeProviderはいくつかの有用な変数を提供します。
アイトラッキング入力用のキーなものは次のとおりです。
IsEyeCalibrationValid
ユーザーのアイトラッキングキャリブレーションが有効かどうかを示します。
値がアイトラッキングシステムからデータをまだ受信していない場合、「null」を返します。
ユーザーがアイトラッキングのキャリブレーションをスキップすると、無効になります。
IsEyeGazeValid
現在の視線追跡データが有効かどうかを示します。
タイムアウトを超えたために無効になる場合があります。
(ただし、瞬きするユーザーに対して安定する必要があります)
ユーザーの目がキャリブレーションされているかどうかを検出し、適切な通知を表示する方法を説明するには、ミッシングアイキャリブレーション通知サンプルをご覧ください。
microsoft.github.io
GazeOrigin
視線の原点を示します。
IsEyeGazeValid が false の場合、これは頭部を基準にした視線の原点を返すことに注意してください。
GazeDirection
視線の方向を示します。
IsEyeGazeValid が false の場合、これは頭部を基準にした視線方向を返します。
HitInfo、HitPosition、HitNormalなど
現在ターゲットを注視していることに関する情報を示します。
IsEyeGazeValidが false である場合、これはユーザーの頭部を基準にした視線に基づいて行われます。
MixedRealityToolkit.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;