苹果 AR 的人机界面设计规范

作者:michitang

前言

现在应用可以使用苹果的AR技术——ARKit,将有真实感的虚拟物体与现实世界无缝衔接,给用户带来身临其境、有参与感的体验。在AR app里,将3D的虚拟物体叠加到通过摄像头实时拍摄的真实环境中,制造出虚拟物体真实存在的错觉。用户可以通过改变设备的位置,从不同角度来探索虚拟物体,如果设计得当,也可以通过手势或者动作来与虚拟物体互动。

设计有参与感的体验

使用全屏让用户参与其中:尽可能使用更多的屏幕空间来呈现物理世界和app里的虚拟物体。避免过于杂乱的操作和信息出现在界面里,影响临场感。

构建仿真物体时要有说服力:不是所有的AR体验都需要仿真物体。但如果需要用到仿真物体,就需要把在这个物体在真实世界里的相关元素也设计进去。为了获得最佳表现,需要为3D物体设计逼真的材质,使用ARKit提供的信息把物体放到现实世界的平面上,并且缩放到适当的比例。同时,需要在虚拟物体上投射环境光,在现实空间里投射出物体的阴影。当相机的位置发生变化的时候,需要实时刷新视效。

将物理限制考虑在内:一定要记住,用户可能会在非AR最佳体验的环境里使用你们的app。例如,他们可能在一个没有多大的移动空间,或者没有足够大的平整的平面的地方打开你们的app。要提前考虑那些会出现问题的场景,清晰地向用户传达要求或预期。可以考虑在不同环境下,给用户提供不同的功能。

要考虑用户的舒适度:人处在某个距离、保持某个角度长时间持握设备,会产生疲劳。要考虑用户持握设备使用app时,仍能获得愉快的体验。比如,你可以默认设置成,把物体放在一个不需要用户靠近的距离。做游戏的时候可以把每个关卡设计得短一些,多加入一些短时间的休息。

如果你的app鼓励用户做出一些动作,需要渐进的引导:例如,在一个游戏刚开始的时候,不能让用户大步移动来躲避虚拟的投射物。需要给他们一些时间来适应这种体验,然后逐步引导他们。 要考虑用户的安全:当用户所处的环境里有很多人或物体的时候,太频繁地让用户移动,会带来潜在的危险。要考虑用户可以安全地使用app。例如,游戏设计时需要避免大幅度的动作,或要求用户突然地做出动作。

使用音频或触感来提升临场感:在虚拟物体和物理表面或其他虚拟物体发生了接触时,使用音效或者震动可以提供很好的反馈。在一个身临其境的游戏中,使用背景音乐也可以很好的把用户带入到虚拟的世界里。相关指南可以看音频触觉反馈部分。

尽可能在上下文中提供线索:例如,在可以旋转的物体周围放一个3D旋转示意的箭头,这要比单纯的文字提示更直观。但在表面检测完成之前,或是用户对上下文提示没有进一步操作时,文字提示还是有必要的。

如果一定要使用文字说明,请使用容易理解的文案:AR是一个前卫的概念,容易让一些用户退缩。为了让用户更容易接受,要避免使用太过技术性的、面向开发的词汇,例如ARKit、现实检测、追踪。而要用大部分用户可以理解的友善的、对话型的词汇。

例如,可以使用:

“无法找到表面。可以尝试走到一边,或挪动一下手机的位置。” “点击要放置xx物体的位置” “试一试打开灯光,或是来回走动一下。” “试一下慢一点移动你的手机”

不要使用:

“无法找到平面,调整跟踪。” “点击平面来定位物体” “功能缺陷” “检测到运动过频”

避免打断AR体验的不必要的操作:每一次用户退出或重新进入AR的时候,都会重新检测环境和表面,此时手机和摄像头的位置很可能发生过改变,会导致之前放置的物体会被移位,甚至可能不再出现在平面上了。为了避免这种问题,要让用户可以在不退出AR的情况下,也能调节物体、设置。例如,用户把想购买的椅子放进房间时,他们可能会想试一试其他面料的选项,可以把选项的调整设计在AR环节中。

进入增强现实

在初始化的时候需要告知用户:每次你的app进入AR时,都会进行初始化,此时会对环境进行评估,大概需要几秒的时间。为了减少用户的困惑,加快初始化进程,可以向用户展示初始化正在进行的事项,鼓励用户探索他们周围的环境,或是去寻找实物表面。

放置虚拟物体

提示用户定位表面,以及放置物体的时机:当进入了“表面定位模式”,可以用视觉标识来传达。例如,在屏幕中间放一个梯形框,可以帮助用户了解到此时他们需要找一个水平面。当表面已经选中时,要变换一下提示的图标,来告诉用户“现在可以放置物体”了。设计视觉标识也是app设计的一部分。

用户放置物体时,要予以恰当的反馈:在表面检测时(时间非常短),精度会逐步提高。如果此时用户点击屏幕来放置物体,要尽可能使用已获得的信息尽快放置物体。一旦表面检测完成,再巧妙地优化物体的位置。如果一个物体放置的位置超出了检测到的表面,就需要将物体轻轻地推回表面上。

避免将物体对齐到检测出的表面边缘:在AR中,表面的边缘是近似的,进一步分析用户环境之后,可能会发生改变。

与虚拟物体互动

直接控制物体,比操作多个按钮要好:通过点屏幕上的物体直接发生互动,会带来更强的临场感,要比在屏幕的不同区域,操作多个独立的按钮要好。不过要记住的是,当用户在移动的时候,直接控制物体会变得难以操作。

通过标准、用户熟悉的手势让用户与虚拟物体直接互动:例如,可以考虑使用单指拖拽物体,使用两指旋转物体。更多相关的规范可以参考“手势”。

一言以概之,交互要简单:轻触手势本质上是二维的,但在AR体验中涉及到三维的真实世界。可以参考以下几点来简化用户和虚拟物体互动的交互。

当操作手势接近可交互的虚拟物体时,要予以反馈:对用户来说,要精确的点击一些比较小、薄、放在较远距离的物体上的某一点是很难的。当你的app检测到,在接近交互区域有手势操作时,就可以假设用户想要完成这个互动。

要考虑是否有必要让用户缩放物体:通常来说,没有固定尺寸的玩具或者是游戏角色,用户可能希望可以看到它放大或是缩小的状态,提供缩放功能也显得比较合理。而对于一个在现实世界有相对尺寸的物体,比如说固定尺寸的家具,缩放功能就没有必要了。缩放不是一个调节物体距离的补救措施,把物体放大并不一定能让它看起来离用户更近,可能只会让用户感觉这是一个离自己较远的较大的物体。

要小心手势冲突:例如,两指的捏的手势,可能和用两指旋转的手势很接近。如果要设计这样类似的手势操作,一定要提前测试,确保操作起来不会有冲突。

确保虚拟物体的变化要顺滑:物体缩放、旋转、移动到某一点的过程,不能是跳跃式的,需要平滑地过渡。

探索更有临场感的交互方式:在AR中,手势不是唯一能和虚拟物体产生互动的方式。你的app也可以考虑运用其他细节来让内容变得更生动。例如,一个游戏角色可以在他走向用户的时候把头转向用户。

问题处理

允许用户重置:不要强迫用户去等待客观条件具备,或是在放置物体有困难的时候,也要他们先完成放置。给他们一个重新开始的选择,看看是不是可以获得更好的结果。

发生问题时,提示用户可能的解决办法:“环境分析”和“表面识别”有时可能因为一些原因无法完成。比如说光线不够好,平面上的反光太强,平面没有足够的细节,或摄像头移动得太快。如果你的app可以检测到这些问题,或者当表面检测太慢时,可以给到用户解决办法。

问题——建议的解决办法

检测到功能缺陷——试一试打开灯光,或是来回走动一下。 检测到运动过频——试一下慢一点移动你的手机 表面检测时间过长——试一试来回走动一下,打开灯光,确保你的手机对准有纹理的表面。

只为硬件条件具备的设备提供AR功能:如果你的app的核心功能就是AR,让你的app仅支持可以支持ARKit的设备。如果在你的app里,AR功能不是核心功能——比如说“有商品照片的家具目录,支持用户在AR场景里看商品”,就需要避免让一个不支持的设备进入AR模块时卡在报错环节。如果设备不支持ARKit,最好一开始就不对用户展示AR功能入口。

更多

开发指南请参阅ARKit

苹果官方原文地址: https://developer.apple.com/ios/human-interface-guidelines/technologies/augmented-reality/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

新型 GPU 芯片:可在手机跑人工智能程序

科技日报北京2月3日电 (记者刘园园)你想让自己的手机变成可以随时随地执行人工智能计算的“神器”吗?一种新型图形处理器(GPU)芯片让这个梦想走进了现实。据麻省...

3518
来自专栏人工智能快报

麻省理工开发出低功耗语音识别技术

自动语音识别技术在十多年之前还难登大雅之堂,但现在它正成为人们和主要计算设备之间进行交互的主要手段。 据麻省理工学院报道,该院的研究人员已成功开发出了自动语音识...

2825
来自专栏数据派THU

19个超赞的数据科学和机器学习工具,编程小白必看!(附资料)

编程是数据科学的一个组成部分。事实上,理解编程逻辑、循环和函数的人更有可能成为成功的数据科学家。但那些在学校里从未学习过编程的人怎么办?

1123
来自专栏CDA数据分析师

机器学习和 AI 领域必须了解的工具

? 关于数据科学,工具可能并不是那么热门的话题。人们似乎更关注最新的聊天机器人技术以及深度学习框架。 但这显然是不合理的。为什么不花些时间,挑选合适的...

18510
来自专栏ATYUN订阅号

亚马逊Comprehend增加新功能,无需机器学习背景也能为应用添加NLP

去年,亚马逊宣布推出一款自然语言处理工具Comprehend,帮助企业从信息集中提取常用词汇和短语。今天,在其Re:invent customer会议前的一周,...

823
来自专栏AI科技评论

盘点丨开发者必备:基于 Linux 生态的十大 AI 开源框架

前不久,AI 科技评论曾盘点了一系列机器学习相关的开源平台,包括谷歌的TensorFlow、微软的CNTK以及百度的PaddlePaddle等等。这些平台各具特...

3588
来自专栏机器之心

资源 | 企业应该怎样选择数据科学机器学习平台?

选自kdnuggets 机器之心编译 参与:吴攀、黄小天、Nurhachu Null 一个弹性的数据科学平台(Data Science Platform)对...

3435
来自专栏机器之心

深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置)

机器之心整理 参与:李泽南、李亚洲 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:TensorFlow + Docker + PyCha...

2885
来自专栏新智元

FaceApp:基于深度网络为人像照片加笑容,实现年龄、性别变换

【新智元导读】 FaceApp 不仅是一个有趣的应用,它证明了人工智能如何使得处理照片变得前所未有的简单。比如,p上笑容、年龄和性别转换均可以轻松完成。过年拍...

35811
来自专栏灯塔大数据

42步进阶学习——让你成为优秀的数据科学家

导读:本文将给大家介绍让你成为优秀数据科学家的42个步骤。深入掌握数据准备,机器学习,SQL数据科学等。相关文章链接获取,查看下方备注(文末更多往期译文推荐) ...

2755

扫码关注云+社区