mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0
  • 指南
  • API 文档
  • 指南
  • 功能概述
  • 输入系统 Input System
  • 眼动跟踪 Eyes
  • 入门

    Show / Hide Table of Contents
    • MRTK入门
      • 发布说明
      • MRTK包内容
      • 从早期版本更新
      • 从HTK更新
      • 生成和部署MRTK
      • NuGet包
      • MRTK配置对话框
      • 开始使用 MRTK和XR SDK
      • 性能
      • 全息图稳定
      • 在大型项目中使用MRTK
    • 架构
      • 概述
      • 框架和运行时
      • 输入系统
        • 术语
        • 核心系统
        • Controllers, pointers, and focus
      • 系统,扩展服务和 data providers
    • 功能概述
      • 边界系统 Boundary System
        • 边界系统概述
        • 配置边界可视化
      • 相机系统 Camera System
        • 相机系统概述
        • Camera Settings Providers
          • Windows 混合现实相机设置
          • Unity AR相机设置[实验性]
          • 创建camera settings provider
      • 跨平台支持
        • 为iOS和Android配置MRTK
      • 检测平台能力
      • 诊断系统 Diagnostics System
        • 诊断系统概述
        • 配置诊断系统
        • 使用可视化分析器
      • 扩展服务 Extension Services
        • 扩展服务创建向导
        • 场景过渡服务概述
      • 输入系统 Input System
        • 输入概览
        • 输入动作 Input Actions
        • 输入事件 Input Events
        • Input Providers
          • Input Providers 概述
          • 创建一个 input data provider
        • 控制器 Controllers
        • 眼动跟踪 Eyes
          • 概述
          • 入门
          • 通过代码访问数据
          • 验证跟踪校准 Validate Tracking Calibration
        • 凝视 Gaze
        • 手势 Gestures
        • 手部 Hands
        • 如何添加近距离交互 Near Interaction
        • 编辑器内输入模拟 In-Editor Input Simulation
        • 指针 Pointers
        • 语音输入 Voice Input
          • 语音转录 Dictation
          • 语音(命令和控制) Speech
      • 多场景系统 Multi Scene System
        • 多场景系统概述
        • 场景类型 Scene Types
        • 内容场景加载 Content Scene Loading
        • 监测内容加载 Monitoring Content Loading
        • 光照场景操作 Lighting Scene Operations
      • 打包 Packaging
        • MRTK包 MRTK Packages
        • MRTK模块化 MRTK Modularization
      • 配置文件 Profiles
        • 配置文件概述
        • 配置指南 Configuration Guide
      • 渲染 Rendering
        • 材质实例概述 Material Instance Overview
        • Shaders
          • MRTK标准着色器 MRTK Standard Shader
      • 服务 Services
        • 什么是混合现实特性
        • 什么是 MixedRealityServiceRegistry 和IMixedRealityServiceRegistrar
        • 扩展服务 Extension services
      • 空间感知系统 Spatial Awareness System
        • 空间感知概述
        • Spatial Observers
          • 为设备配置 Observers
          • 为Editor配置 Observers
          • 通过代码控制 Observers
          • 创建自定义 Observer
      • 传送系统概述 Teleport System Overview
      • 工具
        • Dependency Window
        • Extension Service Creation Wizard
        • Holographic Remoting
        • Input Animation Recording
          • Input Animation File Format Specification
        • Optimize Window
        • Runtime tools
          • Controller Mapping tool
      • UX 构建模块
        • 工具箱窗口 Toolbox Window
        • 按钮 Button
        • 边界框 Bounding Box
        • 对象操纵器 Object Manipulator
        • Manipulation Handler [废弃]
        • Slate
        • 系统键盘 System Keyboard
        • 可交互的 Interactable
        • Solvers
          • 点击放置 Tap to Place
        • 对象集合 Object Collection
        • 提示工具条 Tooltips
        • 滑动条 Slider
        • 手部菜单 Hand Menu
        • 近处菜单 Near Menu
        • 应用程序栏 App Bar
        • 指尖可视化 Fingertip Visualization
        • 进度指示器 Progress Indicator
        • 对话框 Dialog [实验性]
        • 手势教学 Hand Coach [实验性]
        • 可滚动对象集合 Scrolling Object Collection [实验性]
        • 脉冲着色器 Pulse Shader [实验性]
        • 停靠控件 Dock Control [实验性]
        • HoloLens键盘助手 [实验性]
      • 示例场景
        • 示例中心
        • 手势交互示例场景
        • 眼动跟踪示例场景
    • Contributing
      • Contributing Overview
      • Coding Guidelines
      • Writing and Running Tests
      • Writing Documentation
      • Pull Requests
      • Experimental Features
      • Breaking Changes
      • How to use DocFX
    • Planning
      • Roadmap
    • Notice
    • Authors

    开始使用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
    In This Article
    • 眼动跟踪要求清单
      • 关于 GazeInput 功能的说明
    • 逐步设置眼动跟踪
      • 设置场景
      • 设置眼动跟踪所需的 MRTK 配置文件
      • 创建一个 "eye gaze data provider"
      • 在Unity编辑器中模拟眼动跟踪
      • 在 gaze provider 中启用 eye-based gaze
      • 访问眼睛凝视数据
      • 在HoloLens 2 上测试您的Unity应用
        • 眼睛校准
        • 眼动跟踪许可
    Back to top Generated by DocFX