mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0
  • 指南
  • API 文档
  • 指南
  • 功能概述
  • 示例场景
  • 眼动跟踪示例场景

    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

    眼动跟踪示例 Eye tracking examples

    本主题描述了如何通过构建MRTK眼动跟踪示例(Assets/MRTK/Examples/Demos/EyeTracking)来快速上手MRTK中的眼动跟踪。 这些示例让您体验我们的一种新的神奇输入功能:眼动跟踪! 演示包括各种用例,从基于眼睛的隐式激活到如何用语音和手输入无缝地结合您正在查看的信息。 这使得用户能够快速、毫不费力地选择和移动全息内容,只要看一个目标,说 'Select' 或做一个手势。 演示还包括一个用于在 slate上定向滚动、平移和缩放文本和图像的示例。 最后,提供了一个在2D slate上记录和可视化用户视觉注意力的示例。 在下面的部分中,你将会发现更多关于MRTK眼动跟踪示例包(Assets/MRTK/Examples/Demos/EyeTracking)中每个不同样本的详细信息:

    List of eye tracking scenes

    下面的部分是对单个眼动跟踪演示场景的快速概述。 MRTK眼动跟踪演示场景被额外加载,我们将在下面解释如何设置。

    眼动跟踪演示示例的概述

    Eye-Supported Target Selection

    支持眼动的目标选择

    本教程演示了访问眼睛凝视数据以选择目标的便利性。 它包括一个微妙而强大的反馈的例子,以提供给用户目标被聚焦的反馈的信心,而不是压倒性的。 此外,还有一个简单的智能通知示例,在读取后自动消失。

    总结:快速和毫不费力的目标选择使用眼睛,声音和手的组合输入。

    Eye-Supported Navigation

    支持眼动的导航

    想象一下,你正在远处的显示器或电子阅读器上阅读一些信息,当你读到显示文本的末尾时,文本会自动向上滚动以显示更多内容。 或者神奇地直接飞向你正在看的地方? 以下是本教程中展示的一些关于眼动支持的导航的示例。 另外,还有一个3D全息图无需手势进行旋转的例子,让它们根据你当前的眼睛聚焦的焦点自动旋转。

    总结:滚动,平移,缩放,3D旋转 使用眼动,声音和手输入组合。

    Eye-Supported Positioning

    支持眼动的放置

    本教程展示了一个名为Put-That-There的输入场景,可以追溯到1980年代早期麻省理工学院媒体实验室的眼睛、手和声音输入。 这个想法很简单:利用你的眼睛快速选择和放置目标。 只要看一张全息图,说 'put this',看你想放它的地方,说 'there!' 为了更精确地定位你的全息图,你可以使用额外的输入从你的手,声音或控制器。

    总结:用眼睛、声音和手输入(拖放)来放置全息图。眼睛支持滑块使用眼睛+手。

    Visualization of visual attention

    视觉注意力的可视化

    基于用户所看到的位置的数据是一个非常强大的工具,用于评估设计的可用性,并识别高效工作流程中的问题。 本教程将讨论不同的眼动可视化以及它们如何满足不同的需求。 我们提供了记录和加载眼球跟踪数据的基本示例,以及如何可视化它们的示例。

    总结:在slate上的二维注意力图(heatmap)。记录和回放眼动数据。

    建立MRTK眼动跟踪样本

    先决条件

    注意,使用设备上的眼球追踪样本需要一个HoloLens 2 以及一个应用程序示例包,构建时带有"Gaze Input(凝视输入)"功能(在包的AppXManifest上)。

    为了在设备上使用这些眼动跟踪样本,请务必跟随 这些步骤 在Visual Studio中构建应用程序之前。

    1. 加载 EyeTrackingDemo-00-RootScene.unity

    EyeTrackingDemo-00-RootScene是包含所有核心MRTK组件的基础(root)场景。 这是您首先需要加载的场景,您将从这里运行眼动跟踪演示。 它提供了一个图形化的场景菜单,可以让你轻松地在不同的眼动跟踪样例之间切换,这些样例将会被额外加载。

    Scene menu in eye tracking sample

    根场景包括一些核心组件,它们将在额外加载的场景中持久存在,比如MRTK配置的配置文件和场景摄像机。 MixedRealityBasicSceneSetup(见下面的截图)包含一个脚本,它将在启动时自动加载所引用的场景。 默认情况下,这是 EyeTrackingDemo-02-TargetSelection。

    Example for the OnLoadStartScene script

    2. 添加场景到build menu

    要在运行时加载附加场景,必须将这些场景添加到_Build Settings -> Scenes in Build_ 菜单。 重要的是,根场景作为列表中的第一个场景显示:

    Build Settings scene menu for eye tracking samples

    3. 在Unity编辑器中播放眼动跟踪示例

    在添加眼动跟踪场景到Build Settings和加载 EyeTrackingDemo-00-RootScene 之后,有最后一件事你可能想要检查:附加到 MixedRealityBasicSceneSetup GameObject的 'OnLoadStartScene' 脚本是启用的吗?这是为了让根场景知道首先加载哪个演示场景。 Example for the OnLoad_StartScene script

    让我们开始!点击 "Play" ! 您应该会看到一些宝石出现,场景菜单在顶部。

    Sample screenshot from the ET target select scene

    你还应该注意到在游戏视图的中心有一个半透明的小圆圈。 它可以作为你的 模拟眼睛注视 的指示器(光标): 只需按下鼠标右键并移动鼠标就可以改变其位置。 当光标悬停在宝石上时,你会注意到它会吸附到当前看到的宝石的中心。 这是测试当 "观察" 目标时是否按预期触发事件的好方法。 请注意,通过鼠标控制的 模拟眼睛注视 是对我们快速而无意的眼球运动的一个相当糟糕的补充。 但是,在将设计部署到HoloLens 2设备之前测试基本功能是很好的。 回到我们的眼动跟踪样本场景:宝石只要被观察就会旋转,并且可以被"观察"它和…

    • 按 Enter (模拟说"select")
    • 对着麦克风说"select"
    • 当按 Space 显示模拟的手输入时,点击鼠标左键模拟按压

    我们在眼动支持的目标选择教程中详细描述了如何实现这些交互。

    当将光标移到场景的顶部菜单栏时,您会注意到当前悬浮的项目将会微妙地突出显示。 您可以通过使用上面描述的提交方法之一(例如,按 Enter )来选择当前突出显示的项。 通过这种方式,您可以在不同的眼动跟踪示例场景之间切换。

    4. 如何测试具体的子场景

    在处理特定场景时,您可能不希望每次都遍历场景菜单。 相反,当按下 Play 按钮时,你可能想要直接从你当前正在工作的场景开始。 没问题!以下是你可以做的:

    1. 加载 root 场景

    2. 在 root 场景中,禁用 'OnLoadStartScene' 脚本 3.将下面描述的一个眼动跟踪测试场景(或者其他场景) 拖放到 你的 Hierarchy 视图中,如下面的截图所示。

      Example for additive scene

    3. 按下 Play

    请注意,像这样加载子场景是不持久的: 这意味着,如果您将应用程序部署到HoloLens 2设备,它将只加载根场景(假设它出现在Build Settings的顶部)。 另外,当您与他人共享项目时,子场景不会自动加载。


    现在您已经知道了如何让MRTK眼动跟踪示例场景工作,让我们继续深入了解如何用眼睛选择全息图:支持眼动的目标选择。


    返回 "MixedRealityToolkit中的眼动跟踪"

    • Improve this Doc
    In This Article
    • 眼动跟踪演示示例的概述
      • Eye-Supported Target Selection
      • Eye-Supported Navigation
      • Eye-Supported Positioning
      • Visualization of visual attention
    • 建立MRTK眼动跟踪样本
      • 先决条件
      • 1. 加载 EyeTrackingDemo-00-RootScene.unity
      • 2. 添加场景到build menu
      • 3. 在Unity编辑器中播放眼动跟踪示例
      • 4. 如何测试具体的子场景
    Back to top Generated by DocFX