mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0
  • 指南
  • API 文档
  • 指南
  • 功能概述
  • 输入系统 Input System
  • 编辑器内输入模拟 In-Editor Input Simulation

    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

    输入模拟服务 (Input Simulation Service)

    输入模拟服务模拟在Unity编辑器中可能不可用的设备和平台的行为。示例包括:

    • HoloLens or VR 设备头部跟踪
    • HoloLens 手势
    • HoloLens 2 全关节手势跟踪
    • HoloLens 2 眼动跟踪

    用户可以使用常规的键盘和鼠标组合在运行时控制模拟设备。这种方法无需先部署到设备即可在Unity编辑器中测试交互。

    Warning

    使用Unity的XR Holographic Emulation > Emulation Mode = "Simulate in Editor"时,此功能不起作用。Unity的in-editor simulation将使控制权脱离MRTK的输入模拟。为了使用MRTK输入模拟服务,您需要将XR Holographic Emulation设置为Emulation Mode = "None"

    启用输入模拟服务

    默认情况下,MRTK启用输入模拟。

    输入模拟是一个可选的混合现实服务.可以将其作为data provider添加到Input System profile.

    • Type 必须是 Microsoft.MixedReality.Toolkit.Input > InputSimulationService.
    • 默认情况下, Platform(s) 包括所有的 Editor 平台,因为该服务使用键盘和鼠标输入。

    Input simulation tools window

    从 Mixed Reality Toolkit > Utilities > Input Simulation 菜单启用输入模拟工具窗口(Input simulation tools window)。通过此窗口可以访问play模式期间的输入模拟状态。

    Viewport Buttons

    可以在 Indicators Prefab 的input simulation profile 中指定用于控制基本手部布局的编辑器内按钮的预制体。这是一个可选实用程序,可以在input simulation tools window.中访问相同的功能。

    Note

    默认情况下,viewport 指示器是禁用的,因为它们有时有时会干扰Unity UI的交互。参见问题#6106。要启用,请将InputSimulationIndicators预制添加到 Indicators Prefab 。

    手部图标(Hand icons)显示模拟手部的状态:

    • Untracked hand icon 手没有追踪。单击以启用该手.
    • Tracked hand icon 已追踪到手,但不受用户控制。单击以隐藏手.
    • Controlled hand icon 用户可以跟踪和控制手部。单击以隐藏手.
    • Reset hand icon单击以将手重置到默认位置.

    Camera Control

    头部运动可以由输入模拟服务模拟。

    旋转相机

    1. 将鼠标悬停在编辑器视口窗口上.

      如果摁按钮无效,则可能需要单击窗口以为其提供输入焦点

    2. 按住 Mouse Look Button (默认:鼠标右键).

    3. 在视口窗口中移动鼠标以旋转相机.

    4. 使用鼠标滚轮使相机沿观看方向滚动.

    可以通过在input simulation profile中更改 Mouse Look Speed 设置来配置相机旋转速度。

    或者,使用 Look Horizontal/Look Vertical 轴旋转相机(默认:游戏控制器的右摇杆)。

    移动相机

    使用 Move Horizontal / Move Vertical 轴移动相机(默认值:WASD键或游戏控制器的左摇杆)。

    相机的位置和旋转角度也可以在工具窗口中明确设置。可以使用 Reset 按钮将相机重置为其默认设置。

    手部模拟

    输入模拟支持模拟的手部设备。这些虚拟手可以与支持常规手设部备的任何对象进行交互,例如按钮或可抓握的对象。

    手部模拟模式

    在 input simulation tools window 中,Hand Simulation Mode 设置在两个不同的输入模型之间切换。还可以在input simulation profile 中设置默认模式。

    • Articulated Hands: 模拟具有关节位置数据的全关节手部设备

      模拟HoloLens 2交互模型。

      在此模式下,可以模拟基于手的精确定位或使用触摸进行的交互。

    • Gestures: 模拟带有air tap和基本手势的简化手模型.

      模拟 HoloLens 交互模型.

      使用凝视中心控制聚焦。Air Tap 手势用于与按钮交互。

    控制手部运动

    按住 左/右手控制键(默认值:左手为Shift ,右手为Space)来控制任一只手。按下操作键时,手将出现在视口中。释放操纵键,在短暂的 Hand Hide Timeout 后,手便消失了。

    可以在input simulation tools window中永久打开手,也可以通过按 左/右手开关键(默认值:T表示左,Y表示右)来永久打开手。再次按切换键即可隐藏手。

    鼠标移动将使手在视图平面中移动。可以使用 mouse wheel(鼠标滚轮) 将手移到相机远处或附近。

    要使用鼠标旋转手,请同时按住 左/右手控制键 (左Shift或空格) 和 手旋转按钮(默认值:cntrl按钮),然后移动鼠标以旋转手。可以通过在input simulation profile中更改 Mouse Hand Rotation Speed 设置手的旋转速度。

    还可以在input simulation tools window中更改所有手的放置,包括将手重置为默认值。

    其他配置设置

    • Hand Depth Multiplier 控制鼠标滚轮深度移动的灵敏度。较大的数字将加快手部移动。
    • Default Hand Distance 是手到相机的初始距离。单击 Reset 按钮的手也会将手放在此距离处。
    • Hand Jitter Amount 为手添加随机运动。此功能可用于模拟设备上不准确的手部跟踪,并确保在嘈杂的输入下交互效果良好。

    手势

    也可以模拟诸如捏,抓,戳等手势。

    1. 使用 左/右手控制键(左Shift或空格)启用手控制。

      或者,使用开关键(T或Y)来切换手的开/关。

    2. 进行操作时,按住鼠标按钮以执行手势。

    使用 Left/Middle/Right Mouse Hand Gesture 设置,可以映射每个鼠标按钮以将手形转换为不同的手势。Default Hand Gesture(默认手势)是没有按下任何按钮时的手形。

    Note

    Pinch 手势是此时唯一执行"Select"操作的手势。

    单手操作

    1. 按 左/右手控制键(左Shift或空格)
    2. 指向物体
    3. 按住鼠标按钮进行捏
    4. 用鼠标移动对象
    5. 释放鼠标按钮以停止交互

    双手操作

    若要同时用两只手操作对象,建议使用持续手模式。

    1. 按下开关键(T / Y)打开双手
    2. 一次操纵一只手:
      1. 按住 Space 来控制右手
      2. 将手移到要抓住物体的位置
      3. 按下鼠标按钮以激活 Pinch 手势。在持续模式下,当您释放鼠标按钮时,手势将保持活动状态。
    3. 用另一只手重复该过程,在另一个位置抓住相同的对象
    4. 现在两只手都抓住相同的对象,您可以移动两只手来执行双手操作。

    GGV 交互

    1. 在Input Simulation Profile中将 Hand Simulation Mode 切换为 Gestures ,从而启用GGV模拟
    2. 旋转相机,将凝视光标指向可交互的对象(鼠标右键)
    3. 按住 Space 来控制右手
    4. 点击并按住 鼠标左键 进行交互
    5. 再次旋转相机以操作对象

    眼动追踪

    Eye tracking simulation 可以通过选中Input Simulation Profile中的 Simulate Eye Position 选项来启用。这不应与GGV类型交互一起使用(因此请确保将 Hand Simulation Mode 设置为 Articulated)。

    • Improve this Doc
    In This Article
    • 启用输入模拟服务
    • Input simulation tools window
    • Viewport Buttons
    • Camera Control
      • 旋转相机
      • 移动相机
    • 手部模拟
      • 手部模拟模式
      • 控制手部运动
      • 其他配置设置
      • 手势
      • 单手操作
      • 双手操作
      • GGV 交互
      • 眼动追踪
    Back to top Generated by DocFX