Show / Hide Table of Contents

    开始使用MRTK中的眼动跟踪

    本页面介绍如何设置UnityMRTK场景以在应用程序中使用眼动跟踪。 以下假设您是从新场景开始的。 或者,您可以检查出已经配置好的MRTK眼动跟踪示例和大量可以直接建立的最佳示例。

    眼动跟踪要求清单

    为了使眼动跟踪正常工作,必须满足以下要求。 如果您是首次在HoloLens 2上进行眼动跟踪,以及如何在MRTK中设置眼动跟踪,请不要担心! 我们将在下面详细介绍如何解决它们中的每个问题。

    1.必须在输入系统中添加一个 'Eye Gaze Data Provider' 。这可以从平台提供眼动跟踪数据。 2.必须在应用程序清单中启用 'GazeInput' 功能。 此功能可以在Unity 2019中设置,但可以在Unity 2018及更早版本中设置,此功能仅在Visual Studio和MRTK生成工具中可用 3.必须为当前用户校准HoloLens,请检查我们的样本来检测用户是否进行了眼睛校准。

    关于 GazeInput 功能的说明

    MRTK提供的构建工具(即 Mixed Reality Toolkit -> Utilities -> Build Window) 可以自动为您启用GazeInput功能。为了做到这一点, 您需要确保在'Appx Build Options'选项卡上选中了 'Gaze Input Capability' :

    MRTK Build Tools

    在Unity 2019 之前,使用Unity 的build window时,需要在Unity构建后手动添加功能,如下所示

    1. 打开您已编译的Visual Studio项目,然后在您的解决方案中打开 'Package.appxmanifest' 。
    2. 确保选中 Capabilities 下的 'GazeInput' 复选框。如果看不到 'GazeInput' 功能,请检查您的系统是否符合使用MRTK的先决条件 (特别是Windows SDK版本)。

    请注意: 如果您要构建到新的构建文件夹中,则只需执行此操作。 这意味着,如果您已经建立了您的Unity项目并在先设置了appxmanifest,并且现在又针对相同的文件夹,则无需重新应用您的更改。

    逐步设置眼动跟踪

    设置场景

    只需在菜单栏中单击 'Mixed Reality Toolkit -> Configure…' 即可设置 MixedRealityToolkit 。

    MRTK

    设置眼动跟踪所需的 MRTK 配置文件

    设置MRTK场景后,将要求您选择MRTK的配置文件。 您只需选择 DefaultMixedRealityToolkitConfigurationProfile ,然后选择 'Copy & Customize' 选项即可。

    MRTK

    创建一个 "eye gaze data provider"

    • 单击您的MRTK配置文件中的 'Input' 选项卡.
    • 要编辑默认的 ( 'DefaultMixedRealityInputSystemProfile' ), 请单击旁边的 'Clone' 按钮. 出现 'Clone Profile' 菜单. 只需在该菜单底部的 'Clone' 按钮即可.
    • 双击新的 input profile,展开_'Input Data Providers'_ ,然后选择_'+ Add Data Provider'_ .
    • 创建一个新的 data provider:
      • 在 Type 下选择 'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' -> 'WindowsMixedRealityEyeGazeDataProvider'
      • 对于 Platform(s) 选择 'Windows Universal'.

    MRTK

    在Unity编辑器中模拟眼动跟踪

    您可以在Unity编辑器中模拟眼动跟踪输入,以确保在将应用程序部署到您的HoloLens 2 之前正确触发了事件。

    只需使用相机的位置作为眼睛注视原点,并使用相机的前向方向作为眼睛注视方向来模拟眼睛注视信号。

    虽然这对初次测试非常有用,但请注意,这对于快速移动眼睛不是一个很好的模仿。

    为此,最好确保在HoloLens 2上进行基于眼动交互的频繁测试。

    1. 启用眼动跟踪模拟:

      • 单击MRTK配置文件中的 'Input' 选项卡.
      • 导航到 'Input Data Providers' -> 'Input Simulation Service'.
      • 克隆 'DefaultMixedRealityInputSimpulationProfile' 以对其进行更改.
      • 选中 'Simulate Eye Position' 复选框.

      MRTK

    2. 禁用默认的 head gaze cursor: 一般而言,建议避免显示eye gaze cursor ,或者如果必须使用,请把它设置得 非常 精妙。

    我们建议隐藏默认情况下附加到 MRTK gaze pointer 配置文件的默认head gaze cursor。 - 导航到您的MRTK配置文件 -> 'Input' -> 'Pointers' - 克隆 _'DefaultMixedRealityInputPointerProfile'_以对其进行更改. - 在 'Pointer Settings' 的顶部, 应为 'GazeCursor' 分配一个不可见的cursor预制体. 您可以通过从MRTK Foundation中选择 'EyeGazeCursor' prefab来执行此操作。

    在 gaze provider 中启用 eye-based gaze

    在HoloLens v1中,头部凝视被用作主要指向技术。

    头部凝视仍然通过MRTK中 附加在你 相机 上的 GazeProvider 可用,你可以选中 input pointer profile中 gaze settings 的 'IsEyeTrackingEnabled' 复选框来启用眼部凝视

    Note

    开发人员可以通过更改 'GazeProvider' 的 'IsEyeTrackingEnabled' 属性来在代码中基于眼睛的凝视和基于头部的凝视之间进行切换。

    Important

    如果未满足任何眼动跟踪要求,则该应用程序将自动回退至基于头的凝视。

    访问眼睛凝视数据

    现在,已设置您的场景以使用眼动跟踪,让我们来看看如何在您的脚本中访问它: 通过EyeGazeProvider访问眼动跟踪数据 和眼动支持的目标选择.

    在HoloLens 2 上测试您的Unity应用

    使用眼动跟踪构建您的应用程序应该类似于您将如何编译其他HoloLens 2 MRTK应用程序。请确保您已启用关于 GazeInput 功能的说明 部分中的 'Gaze Input' 功能

    眼睛校准

    最后,请不要忘记对您的HoloLens 2进行眼睛校准。 如果用户未校准,则眼动跟踪系统将不会返回任何输入。 向上翻转面镜之后再向下翻,是最容易进行校准的方法。 此时应该出现系统通知,欢迎您作为新用户使用并要求您进行眼睛校准。 或者,您可以在系统设置中找到眼图校准:Settings > System > Calibration > Run eye calibration。

    眼动跟踪许可

    首次启动您的 HoloLens 2 应用程序时,应该弹出一个提示,要求用户允许使用眼动跟踪。 如果未显示,则通常表示未设置 'GazeInput' 功能的指示。

    权限提示一次出现后,不会再次自动显示。 如果您 "denied eye tracking permission" ,则可以在Settings -> Privacy -> Apps 中重置此设置。


    这应该使您从使用MRTK Unity应用程序中的眼动跟踪开始。 不要忘记浏览我们的MRTK眼动跟踪教程和示例,它演示了如何使用眼动跟踪输入,并方便地提供了可以在您的项目中重复使用的脚本。


    返回 "MixedRealityToolkit中的眼动跟踪"

    • Improve this Doc
    Back to top Generated by DocFX