增强现实

增强现实技术(或简称 AR )可以为用户提供身临其境、引人入胜的交互体验,将虚拟对象与现实世界无缝融合。利用设备的摄像头在屏幕上实时呈现物理世界,应用再将三维虚拟物体进行叠加,创造一种虚拟对象存在于物理世界的错觉。根据应用提供的交互体验,用户给可以调整设备的方向,从不同的角度观察虚拟对象,使用手势和动作与虚拟对象互动,甚至加入到多人的 AR 互动体验中。

仅在支持的设备上提供增强现 AR 功能。 如果你的应用的主要用途是 AR 功能,请让应用只对支持 ARKit 的设备可用。如果应用包含特定的 AR 功能,或者 AR 功能在应用中是可选的,那么当用户试图在不支持能的设备上使用该功能时,不要向他们展示错误信息;相反,只需避免在不支持的设备上提供该功能。

创造引人入胜的舒适体验

  • 充分利用屏幕空间

    尽可能多地在屏幕上展示物理世界和应用中的虚拟对象。避免让屏幕上杂乱的控件和信息干扰用户的沉浸式体验。

  • 在放置逼真的物体时,要努力获得令人信服的错觉

    为虚拟对象的三维素材使用逼真的纹理贴图,在应用中营造身临其境的体验。使用 ARKit 提供的信息,可以正确地缩放虚拟对象,并将其定位在侦测到的现实世界的平面上,反射环境照明条件,模拟摄影机的颗粒感,在现实世界的平面上对虚拟对象投射自上而下的漫反射阴影,并随着摄影机位置的改变实时更新其视觉变化。为了避免破坏 AR 真实感,请确保应用每秒刷新场景 60 次,这样就不会造成虚拟对象的跳跃或闪烁。

  • 考虑如何在真实环境中显示具有表面反射的虚拟对象

    ARKit 中的反射是基于相机所拍摄的环境的近似值。为了确保 AR 体验的真实感,请选择较小或粗糙的反射表面,以淡化这些近似的效果。

  • 使用音频和触觉来增强沉浸式体验

    音效或碰撞感,是确认虚拟对象与物理表面或其他虚拟对象相接触的绝佳方式。背景音乐也可以帮助用户沉浸在虚拟世界中。

  • 尽可能减少环境中的文字

    仅显示用户需要的应用体验信息。

  • 请在屏幕空间中显示必要的信息或控件

    请让屏幕空间中的内容看起来似乎相对于虚拟空间中的某个位置固定,或是相对于设备屏幕固定(虽然这并不常见)。用户通常很容易在屏幕空间中查找和查看内容,因为屏幕空间保持相对静止,而底层的 AR 环境则随着设备移动。

  • 当需要提供持久性控件时,可以考虑使用间接控件

    间接控件不是虚拟环境的一部分,相反——它们是显示在屏幕空间中的二维控件。在应用中放置用户需要的持久性控件,这样用户就不需要通过调整设备持握方式来使用它们。此外,请考虑在间接控件中使用半透明效果,避免遮挡底层的内容。例如,测量仪应用使用屏幕空间来混合显示半透明和不透明控件,用户可以使用这些控件来测量现实世界中的物理对象。

    Jietu20220430-174553

  • 预判用户可能会在各种各样的现实环境中使用你的应用程序

    用户可能会在没有太多活动空间或宽阔平坦的地方打开应用。清楚地向用户传达应用的要求和期望,帮助他们了解物理环境如何影响他们的 AR 体验。还可以考虑在不同环境中提供不同的功能合集。

  • 关注用户的舒适度

    长时间以一定的距离或角度握住设备会使人感到疲劳。为了避免造成疲劳,可以考虑将物体放置在一个可以减少移动设备靠近物体的距离;在游戏中,请考虑使用较短的关卡,并在游戏中融入短暂的停顿时间。

  • 如果应用鼓励用户在移动中使用,请循序渐进地对其进行引导

    例如,你可能不想让用户一进入 AR 游戏就开始躲避虚拟炮弹。让用户有时间适应应用中的 AR 体验,然后循序渐进地引导用户进行移动。

  • 关注用户的安全

    当用户沉浸在 AR 体验中时,他们会忽略自己所处的物理环境,所以在体验中做出快速、横扫或大幅度的动作可能是危险的。考虑应用的操作安全性;例如,一款游戏应避免让用户大幅度或突然性的运动。

在用户开始使用前对其进行指导

在用户体验 AR 之前,他们需要根据 ARKit 评估环境和检测表面的要求方式来移动他们的设备。在 iOS 13 和更高版本中,可以使用内置的指导视图在初始化过程中,向用户展示需要做什么,并为其提供反馈。你也可以使用指导视图来帮助用户们在 AR 体验被中断后重新初始化 AR ——这个过程被称为重新本地化——比如,当用户短暂地切换到其他应用时。

Jietu20220430-174725

  • 在用户使用教学视图时,隐藏不必要的应用界面

    默认情况下,指导视图会在初始化或重新本地化开始时自动显示,因此应该隐藏不相关的界面,让用户专注于教学视图中的内容。

  • 如果有必要,提供一个定制化的指导经验

    虽然可以配置系统提供的教学视图来为用户提供特定信息——如检测水平面或垂直面——但你可能需要其他补充信息,或希望使用不同的视觉样式。如果想要设计定制化的教学体验,请使用系统提供的教学视图作为参考。

帮助用户放置物体

  • 向用户展示何时定位平面并放置物体

    可以使用系统提供的教学视图来帮助用户找到放置物体的水平面或垂直面。ARKit 检测到曲面后,应用会显示一个自定义的视觉指示器,来显示何时可以放置物体。通过将你的指示器与检测到的表面的平面对齐,帮助用户了解放置的物体在环境中的样子。

    Frame-11

  • 当用户放置一个物体时,立即将该物体集成到 AR 环境中

    虽然表面检测可以快速、渐进地提高精度,但最好避免在放置物体之前等待更精确的数据。利用现有的信息,在用户放置物体时立即做出响应;然后,当表面检测完成后,如有必要,对物体的位置进行微调。例如,如果用户将物体放置在检测到的平面范围之外,请轻轻将该物体推回平面上。

  • 引导用户走向屏幕外的虚拟对象

    有时,用户很难找到位于屏幕外的物体。在这种情况下,可以通过视觉或听觉提示来帮助用户找到它。例如,如果某个物体位于屏幕外的左侧,可以沿屏幕的左侧边缘显示一个指示器,引导用户将相机指向该方向。

  • 避免尝试将物体与检测到的表面边缘精确对齐

    在 AR 中,表面边缘是一个近似值,可能会随着对用户周围环境的进一步分析而改变。

  • 结合平面分类信息以告知物体的放置

    例如,只允许用户将虚拟家具放置在分类为“地板”的平面上,或者要求将平面分类为“桌子”,用来便放置虚拟游戏盘。

设计直观、令人愉快的对象交互

  • 在可能的情况下,让用户使用直接操作的方式与对象进行交互

    与在屏幕空间中使用间接操作的方式相比,用户直接触控屏幕上三维对象的交互方式更具沉浸感和直观。然而,用户在走动的同时使用应用的情况下,间接控制的方式可以更好地发挥作用。

    Frame-6

  • 让用户使用标准的、熟悉的手势与虚拟对象进行直接交互

    例如,考虑支持移动对象的单指拖动手势,支持旋转对象的双指旋转手势。

  • 通常情况下,保持交互的简单性

    触控手势本质上是二维的,但 AR 体验涉及真实世界的三维空间。考虑使用以下方法来简化用户与虚拟对象的交互。

    Frame-7

  • 在可交互虚拟对象的合理范围内对手势做出响应

    当用户试图触摸小的、薄的或距离较远的对象的指定位置时,是很难做到准确无误的。当应用检测到可交互对象附近的手势时,最好假设用户想要对该对象进行操作。

  • 必要时,在应用中支持用户发起的对象缩放的操作

    例如,如果应用允许用户在虚拟环境中探索,那么支持对象缩放操作是有意义的,因为应用不需要代表现实世界。另一方面,如果应用是帮助购物者为购买家具做决定,让用户对椅子进行缩放,并不能帮助他们想象椅子在房间里的样子。

技巧:无论应用的用途是什么,都不要使用缩放来调整对象的距离。如果你放大一个远处的物体让使它看起来更近,结果却是物体被放大了,但它的位置仍然很远。

  • 警惕潜在的手势冲突

    例如,双指捏合手势与双指旋转手势非常相似。如果应用支持两种相似的手势操作,务必在应用中进行测试,确保它们能被正确识别。

  • 尽量让虚拟对象的移动与应用 AR 环境的物理特性保持一致

    用户不指望虚拟对象能在粗糙或不平坦的表面上平稳地移动,但他们希望虚拟对象在移动过程中保持可见。尽量让移动的虚拟对象附着在显示世界的表面上,避免在用户调整大小、旋转或移动虚拟对象时,产生跳跃、消失和重新出现的问题。

  • 探索更具吸引力的交互方式

    手势并不是用户在 AR 中与虚拟对象交互的唯一方式。应用可以使用其他因素,如运动和靠近等,来使内容变得生动。例如,当一个人走向一个游戏角色时,游戏角色会转过头看着那个人。

设计卓越的多用户体验

当多人分享应用的 AR 体验时,每个参与者都会独立地映射环境,ARKit 会自动合并这些映射。

  • 考虑使用人物遮挡效果

    如果应用支持将虚拟对象放在摄像头画面中的人物后方,那么可以通过让人物遮挡虚拟对象来加强真实感。

  • 如果可能,让新参与者加入到一个进行中的多用户 AR 体验

    除非应用要求所有参与者在 AR 体验开始前加入,否则可以考虑使用隐性地图合并,让新参与者快速加入到进行中的 AR 体验。

对现实世界的物体作出响应

通过使用现实世界中的已知图像和物体,来触发虚拟内容的出现,可以增强 AR 体验。例如,一款识别科幻电影影院海报的应用,可以使虚拟太空飞船从海报中出现,并在环境中飞行。另一个例子是一个艺术博物馆的应用,当它识别出一个雕塑时,会呈现一个虚拟导游。为了实现这样的体验,应用提供了一组二维参考图像或三维参考对象,ARKit 会指示出它在当前环境中检测到这些项目的时间和位置。

  • 当检测到的图像第一次消失时,请考虑延迟移除附加到其之上的虚拟对象

    ARKit 不会跟踪每个检测到的图像的位置或方向的变化。为了防止虚拟对象出现闪烁,请考虑在淡出或删除虚拟对象之前等待一秒钟。

  • 限制单次使用的参考图像的数量

    当 ARKit 在现实世界的环境中查询少于 100 张不同图像时,图像检测的性能最佳。如果需要超过 100 张参考图像,可以根据具体的场景改变有效的参考图像集。例如,一款博物馆指南应用可以请求许可,使用定位服务来确定一个人当前所在的博物馆方位,然后只查找该区域显示的图像。

  • 限制需要准确位置的参考图像的数量

    更新参考图像的位置需要更多的资源。当图像可能在环境中移动时,或当附加的动画或虚拟对象与图像大小相比较小时,请使用跟踪的图像。

与用户交流

**如果必须展示教学内容,请使用易于理解的术语。**AR 是一个先进的概念,可能会令人生畏。为了让它能更容易被理解,避免使用 ARKit、world detection 和 tracking 等技术术语。取而代之,使用大多数人都能理解的友好的会话式术语。

正确的描述 错误的描述
无法找到表面。尝试把手机移到一侧或重新定位。 无法找到平面。调整跟踪。
点选一个位置来放置(要放置的物体名称)。 轻触平面来锚定对象。
尝试打开更多的灯,并四处走动。 功能不足。
尝试缓慢地移动手机。 检测到过多的运动。
  • 在三维环境中,首选三维提示

    例如,在物体周围放置一个三维旋转指示器,比在二维叠加显示基于文字的指示更直观。避免在三维环境中显示文字的覆盖提示,除非用户忽略了场景提示。

    Frame-8-1

  • 让重要的文字具有可读性

    使用屏幕空间显示用于重要标签、注释和说明的文字。如果需要在三维空间中显示文字,请确保文字面向用户,并且无论文字和标注对象之间的距离如何,都要使用相同的字体大小。

  • 如有必要,请提供获取更多信息的方法

    设计一个符合应用体验的视觉指示器,向用户展示他们可以通过点击获取更多信息。

    Jietu20220430-181107

处理中断的情况

ARKit 无法在中断时继续追踪设备的位置和方向,例如当用户短暂地切换到另一个应用或接听电话时。中断结束后,先前放置的虚拟物体很可能出现在现实世界中错误的位置。启用重新定位后,ARKit 会尝试使用新的信息将这些虚拟对象恢复到其在现实世界中的原始位置。

  • 考虑使用系统提供的教学视图来帮助用户重新定位

    在重新定位的过程中,ARKit 会试图将其之前的状态,与当前环境的所检测到的结果相协调一致。为了完成这些检测,可以使用教学视图帮助用户将设备恢复到之前的位置和方向。

    Jietu20220430-181247

  • 考虑在重新定位过程中隐藏以前放置的虚拟对象

    为了避免在重新定位过程中出现闪烁或其他令人不悦的视觉效果,最好将虚拟对象隐藏,并在其新的位置重新显示。

  • 如果应用同时支持 AR 和非 AR 体验,则应尽量减少干扰

    避免中断的一种方法是在 AR 体验中嵌入非 AR 体验,这样用户就可以在不退出和重新进入 AR 的情况下处理任务。例如,如果应用通过将家具放置在房间来帮助用户为购买家具做决策,你可以让他们在不离开 AR 体验的情况下更换室内装潢。

  • 允许用户取消重新定位

    如果用户没有把设备定向放置在中断前的位置附近,重新定位就会无限地继续下去,无法成功定位。如果无法成功引导用户恢复定位,请考虑提供一个复位按钮或其他方式来重新启动 AR 体验。

  • 当前置摄像头无法跟踪人脸超过约半秒时,进行提示

    使用视觉指示器提示摄像头无法再跟踪人脸。如果在这种情况下需要提供文字说明,请确保文字表达简洁。

提出解决问题的方法

  • 如果体验不符合用户的期望,就让用户重新设定体验

    不要强迫用户等待条件的改善,也不要让用户在物品摆放上产生纠结。给他们一个重新开始的方法,看看是否有更好的结果。

    Frame-9

  • 如果出现问题,提出可能的解决方法

    对现实世界环境的分析和表面检测,可能会因为各种原因而失败或消耗太多时间——光线不足、表面反射过强、表面没有足够的纹理细节或相机移动过多。如果应用收到这些问题的通知,请使用简单友好的语言提供解决建议。

    问题 可行的建议
    检测到的功能不足。 尝试打开更多的灯,并四处走动。
    检测到过多的运动。 尝试把手机移动得慢一些。
    表面检测耗时太长。 尝试四处走动,打开更多的灯,确保手机对准纹理清晰的表面。

AR 图形

应用可以在启动基于 ARKit 的体验的控件中显示 AR 图形。可以在资源中下载该图形。

Jietu20220430-184956

  • 按要求使用 AR 图形

    该图形严格用在基于 ARKit 的体验中。切勿改变该图形(除了调整其大小和颜色),将其用于其他目的,或将其与未基于 ARKit 创建的 AR 体验结合使用。

  • 保证最小的边距空间

    AR 图形周围需要的最小边距是该图形高度的 10%。不要让其他元素侵入该边距空间,或以任何方式遮挡到字符。

    Jietu20220430-185039

AR 徽章

包含产品或其他对象集合的应用程序,可以使用徽章标识出这些项目能够使用 ARKit 在 AR 中进行查看。例如,百货商店的应用可能会使用徽章来提示用户,可以在购买前在家中预览家具的摆放。

Jietu20220430-185223

  • 按要求使用 AR 徽章,不要更改它们

    你可以在资源中下载 AR 徽章,徽章有折叠和展开两种形式。仅使用这些图像来标识可以使用 ARKit 在 AR 中查看的产品或其他对象。请不要更改徽章、更改其颜色、将其用于其他目的,或将其与非 ARKit 创建的 AR 体验结合使用。

    Frame-10

  • 相比图形样式的 AR 徽章,更推荐使用完整样式的 AR 徽章

    通常情况下,对于无法容纳完整样式的 AR 徽章的受限空间,请使用图形样式的徽章。这两个徽章在默认尺寸下都能正常工作。

  • 只有当应用同时包含可以在 AR 中查看的对象和不能在 AR 中查看的对象时,才使用徽章

    如果应用中的所有对象都可以在 AR 中查看,那就不需要徽章。

  • 保持徽章位置的一致性和清晰度

    当徽章显示在对象照片的一角时,效果最佳。始终将其放在同一角落,并确保其足够大,以便清晰地看到(但不要太大,以免遮挡照片的重要细节)。

  • 保证最小的边距空间

    AR 徽章周围需要的最小间距空间是徽章高度的 10%。其他元素不应侵入此边距空间,或以任何方式遮挡徽章。

    Jietu20220430-185446

网页快照 https://cubox.pro/share/BxaeWj