2020-04-30 Data from Apple develop

增强现实

增强现实(AR)使您能够提供身临其境,引人入胜的体验,将虚拟对象与现实世界无缝融合。通过使用设备的摄像头在屏幕上实时呈现现实世界,您的应用可以叠加三维虚拟对象,从而产生这些对象实际存在的错觉。根据您的应用程序提供的体验,人们可以重新定向设备以从不同角度探索对象,使用手势和动作与对象进行交互,甚至可以使其他人参与多用户AR体验。有关开发人员的指导,请参见ARKit。

仅在有能力的设备上提供AR功能。如果您的应用程序的主要目的是增强现实,请使其仅对支持ARKit的设备可用。如果您的应用程序包含需要特定AR功能的功能,或者您的应用程序中AR功能是可选的,那么如果人们尝试在不支持这些功能的设备上使用这些功能,就不会显示错误;相反,只需避免在不受支持的设备上提供该功能。有关开发人员的指导,请参阅验证设备支持和用户权限。

创造引人入胜的舒适体验

1.让人们尽可能的充分使用屏幕

在屏幕上尽可能多地用于显示物理世界和应用程序的虚拟对象。 避免使用会降低沉浸式体验的控件和信息使屏幕混乱。

2.在放置真实物体时力求使人相信幻觉

设计具有逼真的纹理的3D资产,以创建看起来似乎位于放置它们的物理环境中的对象。使用ARKit中的信息,您可以正确缩放对象并将其放置在检测到的真实表面上,反射环境光照条件并模拟相机纹理,在真实表面上投射自上而下的漫射对象阴影,并随着相机位置的变化而更新视觉效果。为避免破坏您创建的错觉,请确保您的应用每秒更新场景60次,以使对象看起来不会跳跃或闪烁。

3.考虑具有反射表面的虚拟对象如何显示环境

ARKit中的反射是基于相机捕获的环境的近似值。为了帮助保持对AR体验是真实的幻想,请选择较小或粗糙的反射表面,这些表面会淡化这些近似效果。

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

声音效果或碰撞感是确认虚拟对象已与物理表面或其他虚拟对象接触的一种好方法。背景音乐还可以帮助人们包围虚拟世界。有关指导,请参阅音频和触觉。

5.最小化屏幕中显示的文本

  1. 仅显示人们为您的应用程序体验所需的信息

6.如果需要其他信息或控件,请考虑在屏幕空间中显示它们

屏幕空间中的内容在虚拟世界中或在设备屏幕上(不太常见)显示为固定在一个一致的位置。人们通常很容易在屏幕空间中查找和查看内容,因为当底层AR环境随设备一起移动时,内容保持静止。

7.当需要提供持久控件时,请考虑使用间接控件。

间接控件不是虚拟环境的一部分,而是在屏幕空间中显示的2D控件。如果人们需要访问应用程序中的持久控件,请考虑放置控件,这样人们就不必调整他们握住设备的方式即可到达它们。另外,请考虑在间接控件中使用半透明,以帮助避免阻塞基础场景。例如,“测量”应用程序使用屏幕空间来显示人们用来测量现实世界中对象的半透明和不透明控件的组合。

8.预期人们会在各种现实环境中使用您的应用程序

人们可能会在没有太多移动空间或没有大而平坦的表面的地方打开应用程序。事先与人们清楚地交流您的应用程序的要求和期望,以帮助他们了解他们的物理环境如何影响他们的AR体验。您可能还考虑提供在不同环境中使用的不同功能集。

9.注意人们的舒适感

将设备长时间保持一定距离或一定角度可能会很疲劳。为避免引起疲劳,请考虑将物体放置在一定距离处,以减少将设备移近物体的需要。在游戏中,请考虑保持级别简短,并与短暂的停机时间混合在一起。

10.如果您的应用鼓励人们移动,请逐步引入运动。

例如,您可能不想让人们在进入您的AR游戏后就躲避虚拟弹丸。给人们时间以适应您应用程序中的AR体验,然后逐步鼓励移动。

11.注意人身安全

当人们沉浸在AR体验中时,他们不一定会意识到自己的周围环境,因此进行快速,横扫或张开的动作可能很危险。考虑使您的应用安全运行的方法;例如,游戏可以避免鼓励剧烈或突然的动作。

使用辅导来使人入门

在人们享受您的应用程序中的AR体验之前,他们需要以允许ARKit评估周围环境并检测表面的方式移动设备。 在iOS 13及更高版本中,您可以使用内置的教练视图向人们展示如何做并在初始化过程中提供反馈。 您还可以使用教练视图来帮助人们重新初始化AR(此过程称为重新定位),例如,当人们短暂切换到其他应用程序而中断了AR体验之后。 有关重新定位的指导,请参见处理中断。 有关开发人员的指导,请参阅ARCoachingOverlayView。

1.隐藏不必要的界面

  1. 默认情况下,初始化或重新定位开始后,辅导视图会自动出现,因此您应该准备隐藏不相关的UI,以帮助人们专注于辅导视图的说明。

2.提供自定义的教练经验

尽管您可以配置系统提供的教练视图来帮助人们提供特定信息(例如,检测水平面或垂直平面),但是您可能需要其他信息或希望使用其他视觉样式。 如果要设计自定义的教练体验,请使用系统提供的教练视图作为参考。

帮助人们放置物体

1.告诉人们何时定位表面和放置对象

您可以使用系统提供的指导视图来帮助人们找到要放置对象的水平或垂直平面。 ARKit检测到表面后,您的应用程序可以显示自定义视觉指示器,以显示何时可以放置对象。 通过将指示器与检测到的表面的平面对齐,可以帮助人们了解放置的对象在环境中的外观。
屏幕快照 2020-04-30 16.57.36.png

2.人们放置对象时,请立即将该对象集成到AR环境中

尽管表面检测可以快速逐步提高精度,但是最好避免在放置物体之前等待更精确的数据。当人们放置物体时,使用可用信息立即做出响应;然后,在完成表面检测后,如有必要,微调对象的位置。例如,如果人们将物体放置在检测到的表面之外,则将物体轻轻推回到表面上。有关开发人员如何完善对象位置的指导,请参阅ARTrackedRaycast。

3.考虑引导人们走向屏幕外的虚拟对象

有时候,人们很难找到不在屏幕上的物体。在这种情况下,您可以通过提供视觉或听觉提示来帮助人们找到此类对象。例如,如果某个对象不在屏幕左侧,则可以在屏幕的左边缘显示一个指示器,该指示器可以指导人们将相机指向该方向。

4.避免尝试将物体与检测到的曲面的边缘精确对齐

在AR中,表面边界是近似值,可能会随着人们周围环境的进一步分析而发生变化。

5.合并平面分类信息以通知对象放置

例如,允许人们在分类为“地板”的平面上放置虚拟家具,或要求将分类为“桌子”的平面放置在虚拟游戏板上。

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

在可能的情况下,让人们使用直接操纵与对象进行交互

当人们可以直接触摸屏幕上的3D对象,而不是在屏幕空间中使用间接控件时,这种方法更具沉浸性和直观性。 但是,在人们使用您的应用程序时四处走动的情况下,间接控件可以更好地工作。
屏幕快照 2020-04-30 17.03.32.png

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

例如,考虑支持用于移动对象的单指拖动手势,以及用于旋转对象的两指旋转手势。 有关指导,请参见手势

使交互保持简单

触摸手势本质上是二维的,但AR体验涉及现实世界的三个维度。 考虑以下方法来简化用户与虚拟对象的交互。
屏幕快照 2020-04-30 19.08.56.png

在交互式虚拟对象的合理接近范围内响应手势

当人们试图触摸小,细或相距一定距离的物体上的特定点时,人们可能很难精确。 当您的应用检测到交互式对象附近的手势时,通常最好假设人们想影响该对象。

如果可以的话,支持用户启动的对象缩放

例如,如果您的应用允许人们探索一个虚构的环境,则支持对象缩放可能很有意义,因为您的应用无需代表真实世界。 另一方面,如果您的应用帮助购物者决定要购买的家具,那么让人们缩放椅子上的物体并不能帮助他们形象化椅子在房间中的外观。
tips:
不管您的应用程序是什么目的,都不要使用缩放比例来调整对象的距离。 如果放大远处的物体以使其看起来更近,则结果是看起来仍然很远较大的物体。

注意潜在的冲突手势

例如,两指捏合手势类似于两指旋转手势。 如果您执行两个类似的手势,请确保测试您的应用并确保正确解释了它们。

努力实现与应用程序AR环境的物理性质一致的虚拟对象移动

人们不一定希望物体在粗糙或不平坦的表面上平稳移动,但他们确实希望物体在运动过程中保持可见。 旨在将移动的物体保持附着在现实世界的表面上,并避免在人们调整大小,旋转或移动它们时导致物体跳跃或消失并重新出现。

探索更多引人入胜的互动方法

手势并不是人们与AR中的虚拟对象进行交互的唯一方式。 您的应用可以利用其他因素(例如运动和接近度)来使内容栩栩如生。 例如,游戏角色可以朝一个人走去时转过头看着一个人。

设计出色的多用户体验

当多个人共享您的应用程序的AR体验时,每个参与者都将独立映射环境,ARKit会自动合并这些地图。 有关开发人员的指导,请参见isCollaborationEnabled。

如果您的应用支持将虚拟对象放置在设备摄像头中出现的人后面,请让人们遮挡这些对象,以增强对现实的幻想。 有关开发人员的指导,请参阅与人员一起遮盖虚拟内容。

如果可能,让新参与者进入多用户AR体验。 除非您的应用要求所有参与者都在体验开始之前加入,否则请考虑使用隐式地图合并使新用户迅速加入正在进行的AR体验。 有关开发人员的指导,请参见isCollaborationEnabled。

对现实世界对象的反应

您可以通过使用现实环境中的已知图像和对象来触发虚拟内容的外观,从而增强AR体验。例如,一个识别科幻电影剧院海报的应用程序可能导致虚拟太空飞船从海报中冒出来并在环境中飞行。另一个示例是美术馆的应用程序,该应用程序在识别雕塑时会显示虚拟导游。为实现此类体验,您的应用程序提供了一组2D参考图像或3D参考对象,ARKit指出了在当前环境中何时何地检测到其中任何一项。有关开发人员的指导,请参阅在AR体验中识别图像。

当检测到的图像第一次消失时,请考虑延迟删除与其相连的虚拟对象。 ARKit不会跟踪每个检测到的图像的位置或方向的变化。为帮助防止虚拟对象闪烁,请考虑等待一秒钟,然后使其淡出或移除。

限制一次使用的参考图像数量。当ARKit在实际环境中查找100张或更少的不同图像时,图像检测性能最佳。如果需要超过100张参考图像,则可以根据上下文更改活动参考图像的集合。例如,博物馆指南应用程序可以请求允许使用定位服务来确定某人所在的博物馆部分,然后仅查找该区域中显示的图像。

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

与用户的交流

如果必须显示说明文字,请使用易于理解的术语

AR是一个可能使某些人感到恐惧的高级概念。 为了使它易于使用,请避免使用ARKit,全局检测和跟踪之类的技术术语。 相反,请使用大多数人都会理解的友好的会话性术语。
屏幕快照 2020-04-30 19.18.40.png

在三维环境中,最好使用3D提示

  1. 例如,将3D旋转指示器放置在对象周围比在2D叠加层中显示基于文本的指令更直观。 除非人们对提示没有反应,否则请**避免**在3D上下文中显示文本叠加提示。<br />![屏幕快照 2020-04-30 19.20.15.png](https://cdn.nlark.com/yuque/0/2020/png/1075459/1588245629961-a7bd3f19-7cb3-4761-9f5a-0d88ea735974.png#align=left&display=inline&height=568&margin=%5Bobject%20Object%5D&name=%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202020-04-30%2019.20.15.png&originHeight=568&originWidth=1384&size=67634&status=done&style=none&width=1384)

使重要的文本可读

使用屏幕空间来显示用于关键标签,注释和说明的文本。 如果需要在3D空间中显示文本,请确保文本面向人,并且使用相同的字体大小,而不管文本和带标签的对象之间的距离如何。

如有必要,请提供一种获取更多信息的方法。 设计适合您的应用程序体验的可视指示器,向人们展示他们可以点击以获取更多信息。
屏幕快照 2020-04-30 19.21.16.png

处理中断问题

在中断期间,例如人们短暂切换到另一个应用程序或接听电话时,ARKit无法跟踪设备的位置和方向。 中断结束后,先前放置的虚拟对象可能会出现在错误的实际位置中。 启用重新本地化后,ARKit会尝试使用新信息将这些虚拟对象还原到其原始实际位置。 有关开发人员的指导,请参阅管理会话生命周期和跟踪质量。

考虑使用系统提供的辅助视图来帮助人们重新定位

在重新定位期间,ARKit尝试将其先前状态与当前环境的新观察值进行协调。 要启用这些观察,您可以使用辅导视图来帮助人们将设备恢复到其先前的位置和方向。
屏幕快照 2020-04-30 19.22.41.png

考虑在重新定位期间隐藏先前放置的虚拟对象。

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

如果您的应用程序同时支持AR和非AR体验,则可以最大程度地减少干扰。

避免中断的一种方法是将非AR体验嵌入到AR体验中,这样人们就可以处理任务而无需退出并重新进入AR。例如,如果您的应用通过将商品放在房间中来帮助人们决定要购买的家具,那么您可以让他们在不离开AR体验的情况下改变内饰。

允许人们取消重新定位。

如果人们不将设备定位和定位在中断之前的附近,则重新定位会无限期地继续,不会成功。如果指导人们恢复会话失败,请考虑提供一个重置按钮或其他方法来重启AR体验。

指出前置摄像头何时无法跟踪面部超过半秒。

使用视觉指示器指示相机无法再跟踪人的脸部。如果在这种情况下需要提供文字说明,请尽量减少文字说明。

解决问题的建议方法

如果人们没有达到期望,请让他们重新设置体验

不要强迫人们等待条件改善或在放置物体时遇到困难。 给他们一种重新开始的方法,看看他们是否有更好的结果。
屏幕快照 2020-04-30 19.25.54.png

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

由于多种原因,对现实环境的分析和表面检测可能会失败或花费太长时间-光线不足,反射面过多,表面细节不足或相机运动过多。 如果您的应用收到有关这些问题的通知,请使用简单,友好的语言来提供解决问题的建议。

AR图像标准

AR标志

应用程序可以在控件中显示AR标志,以启动基于ARKit的体验。 您可以在参考资料中下载此标志符号。
按预期使用AR标志符号。 该标志符号应严格用于启动基于ARKit的体验。 切勿更改字形(除非调整其大小和颜色),将其用于其他目的或与未使用ARKit创建的AR体验结合使用。
屏幕快照 2020-04-30 19.34.49.png
保持最小的空白空间。 AR字形周围所需的最小空白空间是字形高度的10%。 不要让其他元素侵犯此空间或以任何方式遮盖字形。
屏幕快照 2020-04-30 19.35.11.png

AR徽章

按预期使用AR徽章,请勿更改。您可以在参考资料中以折叠和展开形式下载AR徽章。专门使用这些图像来标识可以使用ARKit在AR中查看的产品或其他对象。切勿更改徽章,更改其颜色,将其用于其他目的,或将其与未使用ARKit创建的AR体验结合使用。
将AR徽章优先于仅字形徽章。通常,将仅字形徽章用于无法容纳AR徽章的受限空间。两种徽章在默认大小下均可正常工作。
屏幕快照 2020-04-30 19.31.05.png
仅当您的应用包含可以在AR中查看的对象和不能在AR中查看的对象的混合时,才使用徽章。如果可以在AR中查看应用程序中的所有对象,则标记是多余的。

保持徽章放置的一致性和清晰性。徽章显示在对象照片的一个角上时看起来最好。始终将其放置在同一角落,并确保其足够大以至于清晰可见(但又不能太大,以至于遮挡了照片中的重要细节)。

保持最小的空白空间。 AR徽章周围所需的最小空白空间是徽章高度的10%。其他元素不应侵犯该空间并以任何方式遮盖徽章。屏幕快照 2020-04-30 19.30.42.png_


感谢您的阅读
翻译和整理 by 嘉艺
2020.04.30
如有任何疑问或机会请发送邮件至email:
lucida997@outlook.com