注意事项

Unity、OpenXR 和 WebXR 提供了一个多用途工具包,可用于在沉浸式体验中创建多样化的互动。目标是开发沉浸式应用,让用户能够使用现有的学习体验与之互动。您可以设计任何内容,从简单的手势到复杂的基于物理的模拟。

请注意,Unity、OpenXR 和 WebXR 应用仅在全局空间中运行。

了解 Android XR 的设计原则

输入

XR 应用可以包括与手部、眼睛和面部跟踪、手势、语音指令以及键盘、鼠标和控制器等传统输入设备的交互。考虑您的应用需要哪些输入来提供自然且无障碍的用户体验。

  • 支持熟悉的手势,缩短应用的学习曲线。与 2D 界面互动时,请使用标准系统手势,例如捏合。对于捡起和抛出球等 3D 互动,您应使用模仿现实互动的手势进行设计。这可利用用户现有的知识,减少对教程的需求。
  • 如果需要添加其他手势,请确保这些手势易于学习、记忆和执行。避免使用复杂的多步手势或可能导致不适和疲劳的不自然姿势。不妨提供指南,教用户如何使用手势。
  • 确保用户可以使用左手或右手操作您的应用。如果无法做到这一点,请遵循系统的手持偏好设置。
  • 虽然双手互动可以带来沉浸式体验,但对于行动不便的用户来说,这可能很难实现。优先考虑一手操作来执行基本操作。如果必须使用双手手势,请提供可实现相同结果的单手替代方法。
  • Unity、OpenXR 和 WebXR 应用不会自动受益于 Android 的返回堆栈。考虑实现返回堆栈,以允许用户使用 Android XR 的返回手势来撤消操作或使用手势导航返回。

双手使用手势导航。

界面

按钮、面板和文本等界面元素对于在 XR 应用中实现自然互动至关重要。设计应优先考虑提供顺畅、直观的用户体验。具体界面设计选项取决于应用的具体要求。

  • 将主要互动元素和重要内容放置在用户自然视线和视野范围内。这有助于提高可见度并确保舒适的体验。考虑用户应如何与界面互动,以确定界面应放置在什么距离。例如,他们是使用激光指针瞄准,还是直接用手指点按按钮?根据界面与用户的预期距离来配置界面的大小。请参阅 Android XR 尺寸和缩放指南
  • 在设计按钮等交互式界面元素时,请考虑用户打算如何与其互动,以及每种输入方法(手部跟踪与鼠标)所需的精确度级别,并相应地调整目标大小和间距等因素。确保界面位置便于用户舒适地进行互动。 针对用户操作提供视觉反馈。 请参阅 Android XR 样式指南
  • 面板等 2D 界面非常适合基于菜单的互动。在与空间环境互动时,3D 界面(例如实体按钮、杠杆和开关)可以提供更具沉浸感的体验。通过巧妙地平衡基于面板的互动(以提高可读性)和 3D 对象(以实现以世界为中心的互动),可以打造强大的沉浸式体验。
  • 使用适当的字号、类型和对比度,确保文字清晰易读。 根据用户查看文本的距离来放置界面。使用有符号距离场字体,以便在各种字体大小下流畅渲染文本。请参阅 Android XR 排版指南

一个人完全沉浸在一个具有超大屏幕的空间环境中。他们站在岩石上,界面控件在伸手可及的范围内。

空间互动

XR 中一些最丰富的互动涉及用户能够直接与 3D 对象互动。这可能就像拿起、检查和抛出物品一样简单。它还包括更复杂的互动,例如拉动杠杆、按下按钮,以及与用户已握持的元素互动(例如喷洒喷雾瓶)。为了实现直观的 3D 对象互动,请根据用户对世界的既有知识进行设计。

  • 如果您想创建逼真的动作,不妨考虑集成物理引擎。如果您使用 Unity 进行构建,则可以使用其内置的物理引擎。注意物理引擎的处理能力消耗量,并针对性能进行优化。
  • 可信性比真实性更重要。例如,如果用户认为自己用力扔球,应用应在设备传感器指示的力度之外,向球施加额外的力。
  • 对象的构建应与其用途相符。这意味着,您的应用应考虑用户对对象或使用对象可执行的每项可能操作。例如,用户可以拿起甜甜圈、扔掉甜甜圈和吃甜甜圈。应用可以使用旁白来表示“我现在不饿”,而不是吃甜甜圈。这些解决方案可解决用户预期使用甜甜圈图表执行的操作。
  • 您可以使用各种方法来控制对象,包括父级、物理关节、跟随和物理力。每种方法都有各自的优点和缺点。在实现自定义抓取方法之前,请务必研究和测试不同的方法,以确定最合适的方法。
  • 在 3D 环境中进行设计时,人体工学至关重要。为了方便残障人士使用,不妨考虑在平面上添加把手,以便用户将其调节到舒适的高度。请务必使用各种用户测试空间中的每个对象,因为每个人的身体都是不同的。

Job Simulator,这是一款完全沉浸式的 VR 游戏,用户坐在办公室隔间里的复古电脑前。该游戏包含可与 3D 对象互动的虚拟手。

场景设计

场景可以是完全沉浸式的虚拟世界,也可以是将虚拟元素与用户的真实环境相融合的增强现实体验。设计舒适、实用且充分利用 XR 独特功能的场景。

  • 限制围绕用户移动的场景,例如飞行。这可能会造成不适,尤其是当用户的身体保持静止时。某些运动技巧(例如隧道视觉,下一部分将对此进行介绍)有助于减轻不适感。
  • 如需打造混合现实体验,您可以使用 Android XR 的场景理解功能将虚拟对象集成到用户的实际环境中。
  • 对于虚拟现实应用,您可能需要在虚拟空间中纳入对真实世界的有限视图。这有助于用户保持对周围环境的认知,并在不离开沉浸式体验的情况下与实体对象互动。

Locomotion

我们建议 Android XR 体验允许用户在配置的边界所定义的物理空间中自由移动。例如,有些用户发现,如果虚拟体验是围绕不移动的自定义空间设计的,则会更加身临其境。如果您希望用户在边界允许的范围之外移动,不妨考虑使用可放大移动的移动技术,例如瞬移。

借助瞬移功能,用户可以指向和选择,或使用控制器立即跳转到新位置。这种移动方式非常适合快速覆盖长距离,通常也是最少会引起晕动症的移动方式。在转换期间暂时模糊化屏幕可以进一步减少不适感。

其他移动方式

如果您使用其他移动方式,不妨考虑提供传送作为替代方案。

  • 原地摆动手臂模拟步行:摆动手臂或上下移动控制器,模拟步行。有些用户可能会觉得这样很累,或者不够直观。
  • 连续移动:使用控制器的摇杆或摇捍在环境中移动您的虚拟自我。在大多数情况下,您应避免使用此方法,因为它是导致晕动症的常见原因。

如果您决定在体验中使用移动功能,请提供多种选项,以满足个人偏好并改善用户体验。

如果用户的实际移动与虚拟体验不一致,就可能会出现晕动。为了优化用户在移动过程中的舒适度,请执行以下操作:

  • 确保虚拟水平线保持稳定且水平。
  • 如果需要持续移动,请避免任何渐进加速或减速。保持一致的速度。
  • 隧道视觉可通过缩小用户在移动时的视野范围来帮助减少晕动,通过边缘虚化效果限制在边缘区域感知到的动作。
  • 对于旋转,将用户的视角固定到特定角度。这可能会导致一些空间定向障碍,但会减少晕车。
  • 用户的容忍度各不相同。让他们根据自己的偏好调整舒适度设置,例如选择移动方式、开启或关闭隧道视觉效果,或调整移动速度。

空间音频

声音是一款强大的工具,可用于打造沉浸式音景,将用户带入另一个世界并唤起特定情感。空间音频可在虚拟环境中准确定位声音。

  • 全景声就像音频的天空盒,可为用户提供身临其境的声景。将氛围声用于背景环境音或您想要重现环绕听众的全球声场等场景。
  • 空间化音频提示可以引导用户的注意力。
  • 将音效空间化,以增强沉浸感。
  • 将语音音频空间化到音箱的位置,可让用户感受到身临其境,即使他们并非直接面对音箱也是如此。
  • 允许用户调整音频。例如,他们可能想要停用或调节背景音乐、音效或旁白的音量。
  • 考虑为失聪或听障人士添加字幕。

更多舒适度注意事项

为了优先考虑无障碍功能,请提供可自定义的选项,以满足各种能力和偏好。这可确保各种用户都能畅享沉浸式体验。

  • 让应用以每秒 72 帧的速度运行:这有助于最大限度地减少视觉抖动并防止眩晕。
  • 让用户掌控一切:为了让您的应用对对 XR 的亲和度不尽相同的用户都友好易用,请让用户通过可自定义的设置来量身定制自己的体验。考虑允许用户重新映射控制器按钮和手势,以满足其身体需求或偏好。例如,手部活动受限的用户可能会受益于不同的按钮布局或更大、更简单的输入控件。

如需有关特定平台的指南,请参阅:

针对 OpenXR 进行开发

使用 Unity 进行开发

WebXR 文档