雷锋网按:本文作者孙蓬阳(知乎dizzarz),云投汇产品总监,关注VR/AR领域。
随着技术发展成熟,虚拟空间未来需要形成什么样的服务网络呢?我们可以根据现阶段的技术发展来预测一下未来的技术生活。
这里我们虚构一位未来的网络用户,一位机器人开发工程师tony老师,通过对未来生活的想象来引申出未来服务网络的面貌:
“当tony早上起来打算去工作的时候,只需戴上VR显示设备,拿起交互设备,进入固定的行走支持设备中就完成了上班的所有准备工作。如同我们现在坐在电脑椅,开启电脑,拿起鼠标一样,足不出户就从现实家庭跳转进网络空间了。
如同我们去往工作场所的道路一样,进入虚拟空间之后,需要选择目标地点。工程师tony在系统介质(虚拟空间中用于承载菜单的那一部分)空间中选择,是到达虚拟世界的个人办公空间 、团队工作空间,还是昨天晚上退出时停留的某个动作游戏虚拟世界。当他决定后,即可通过通道降临在团队工作空间中,场景中所有默认界面都切换成办公需要的样式了。通过交互设备的支持,在虚拟世界的工作空间中工程师可以便捷的和他的团队伙伴一起进行机器人软件编程,设计硬件模型,并且随时在一个拟真环境中对硬件产品功能进行确认。
在完成了一系列开发、设计工作之后,他跳出了工作空间回到了个人办公空间,对当天的工作进行了记录。然后降临到了动作游戏虚拟世界中。当他晚上感到疲倦时,跳出了游戏世界,在系统介质空间中设定了唤醒,并安排了一些待办事项,让其与手持设备、穿戴设备联动之后。摘下头盔,离开了行走支持设备,回到了现实世界。”
这样的未来,VR产业核心目的是需要满足一个社会人生产和生活的目的,将VR变成互联网服务的基础平台。只有挖掘实际的功用,才能将虚拟现实世界从新奇的玩具升级成必要的生产工具,虚拟现实产业才能真正建立起来,被广大消费者需要。
这样的服务平台需要通过界面交互系统和消息系统在虚拟空间中支撑起功能。在虚拟世界使用环境下随着空间关系发生调整,使用者从屏幕视角、通过鼠标键盘完成全部交互操作,到作为独立主体行走在虚拟世界中来重新使用原有计算机世界全部技术财产,必须重新设计镜头和界面,交互和功能,使用者和引导系统(消息提醒)。我们将在下面将展开相关讨论。
操作界面是人机交互的核心,包括了用户界面设计、界面层级和功能的对应,界面和交互的对应,包含了交互逻辑和展示逻辑的设计。系统的一切功能都通过操作界面展示出来,界面是对内容的提炼。对于用户来说,掌握了操作界面就等同于理解了系统业务。
“为什么要开发虚拟世界的界面系统,而不是沿用原有的界面系统?”
随着VR产业的发展,在演示用的VR demo场景中,已经包含了很多VR界面发展方向的预兆。因为Demo的功能设计所限,所以以虚拟场景体验为核心目的,功能使用时间较短,对界面使用的需求并没有那么急迫。简单来说,Demo下的界面需求是从开启界面到达Demo,让使用者快速感受VR场景的震撼体验为主。还不必区分哪些是系统的界面,哪些是功能的界面。所以在demo中一切都是直观的。然而,如果对VR世界的功能进行扩大,需要长时间使用和有效使用时,我们就需要让用户对业务有更深入的理解,可以快速掌握并使用,并且不需要担负较高的学习成本。这时如何提升交互界面系统,就成了虚拟空间的主要问题。
传统的操作界面都是在二维平面之下,在屏幕中界面系统作为索引,将层叠在一起的功能组织起来。在PC时代,界面设计的巅峰是各种编辑器。在编辑器中,开发者们将系统功能,业务功能,业务拓展,业务说明,界面设置和交互设置等等分门别类,分层展示。对于构建者来说,理解了编辑器就理解了界面设计的组织原则。使用者通过界面系统可以依次找到各类功能完成操作。同时,界面系统还保证了用户对功能索引的有效理解,这种理解是可以快速使用同平台软件的基础。
进入3D时代之后电子游戏实现了玩家在虚拟世界中游览,但本质上是将虚拟世界投影在二维平面中。使用者依旧通过一个在固定位置纵览全局的屏幕来掌控世界。所以界面设计的本身还拘束在单个屏幕(视锥)的范围内。
在VR时代“界面”最大的改革即是使用者作为一个整体进入到虚拟世界中,不再通过一个固定的摄像机来和世界互动,在之后移动设备的支持下,成为了一个“自由的漫步者”。VR世界的用户第一次获得了他自由的头和灵活的视线。计算机世界和使用者之间的关系通过VR被重新塑造了,对于使用者来说,VR空间直观的作为一个世界将使用者纳入其中。从设计层面来说,功能不再是高科技数据接口,而是具体功能和具体形象的统一,拟物化成为了一种现实的选择。而扁平化会成为概念的抽象,作为提醒系统的主要设计方式。原有的计算机和网络成为了空间的功能。这样的改变是VR界面系统和交互系统发生颠覆性发展的根本原因。
在这样的环境下,首先我们要摒弃的概念就是试图在一个镜头的视锥范围内展示全部界面功能,这意味着将界面理解为一个用户需要永远面对的固定屏幕。同样,试图通过界面变形形成曲面来迎合镜头能覆盖的角度(FOV)也是固定屏幕概念的直接延伸,仅仅是为了拓展显示的需要,却将二维的界面需要生硬的移植到了虚拟的建筑空间中。这种对传统屏幕想象的直接搬运,就是无视了使用者作为移动的个体的本质。对于界面和功能的设计者来说界面和空间的关系成了首先要被关注的,其次才是界面和功能的关系。对用户来说,虚拟世界的界面意味着“我看的”(HUD模式的界面)、“我用的”(功能的界面)、“我跟随的”(作为环境提供的界面)。
所以我们面对的界面的革新,是在这样一个前提下——用户在随意移动中自由的打量新世界,这样的界面系统首先围绕用户的视觉需要、空间需要和功能需要进行设计,同时负责交互操作的不再是手表和键盘,而是使用者的整体,包括移动、视线和双手。我们在这里先讨论界面系统将如何发展。
我们需要跟随用户的视角,在用户的视线内打造最基本的用户界面,提供用户在虚拟空间的基础功能界面、位置界面和视线交互说明。这个界面是系统服务的基础,在这个界面使用者控制对系统的设置,获得基础位置信息,系统消息提醒和离开系统。这个界面是真实在用户的视线内,直接作为HUD显示在镜头内,在显示中,这层界面是在虚拟世界叠加在其他所有显示之上的。这从侧面说明虚拟世界的界面关系是根据功能分层展示的。
对于用户来说,在使用始终悬浮在FOV内的界面时,会因为需要反复对焦造成疲倦,甚至眩晕。例如在很多AR设备中这是非常明显的,Google在Glass中的做法是放在视线上部,当使用者在查看时会自动对焦。在VR世界中我们首先需要处理的是在用户镜头前放置一个界面层,这个界面层的作用是用来展示用户放置的widget。在日常使用时,用户对HUD上的widget是忽视的,使用时对焦查看widget,或者通过设备呼出系统界面或者应用软件开启(launch)。
在FOV内显示系统基本信息和引导信息。基本信息包括各种系统widget,用户可自行选择摆放那些widget,并设置在HUD中的位置。默认HUD上的widget不应该遮挡用户视线,并且是引导、提醒为主要目的。并且不应该在叠加时造成widget和VR场景内容上混淆。所以在设计上应该是半透明,线框风格。
HUD上的元素需要着重考虑复杂度,首先因为内容不能过于频繁,同时不能遮挡用户视线,所以分组在FOV四周是个可以接受的选择。用户需要查看HUD内容的时候将视线对焦在HUD的widget上,用手势或视线交互进行下一步交互。但这会有一个可能会引发生理不适的隐患,当用户频繁对焦或者在对焦HUD的时候移动,会造成不适感。这个在一些传统的AR设备中有比较明显的案例。(有用户报告使用Google Glass之后引起了强烈的偏头疼。)
引导包含不显示在、或者不完全显示在FOV内的界面信息,同时和用户的视锥是同轴的,并不随着用户转动头部改变展示关系,而是需要通过手势唤出的界面工具。同时引导模式和HUD可以叠加在一起,用户用交互手势或工具的方式唤出HUD界面,保证常规情况下HUD界面是隐藏的。
我们还可以用一种思路,就是将使用者作为一个独立个体,以他为球心设置一个半球的范围作为HUD的范围,这样使用者可以把一些信息放在不影响平视的范围内。如何利用好FOV之外,又独立于虚拟空间的界面层,会是未来人机交互的一个有趣课题。这样也可以减少HUD信息展示带来的不适感。不过VR的HUD可能不包含时间信息,在VR时代大家可能都喜欢带一块虚拟的手表。
系统设置属于在需要引导唤出的界面。正如之前在空间概念中的描述,系统设置是为了让使用者对自身进行控制的私有领域,同时不包含个人的私有空间,但是有独立于所在的场景空间的,这种独特的空间属性我们可以称其为介质空间。
系统设定应该包含界面设置、位置摆放,系统界面召出和收起方式。以及包含在系统界面的widget的应用软件市场。
同时应该包含交互设置,交互设置在VR时代将会被极大拓展,因为使用者参与交互的手段被丰富了。交互将包含输入设备的交互,动作支持的交互,语音交互和视线的交互。这部分将在交互部分进行详细的说明。
虚拟世界的应用软件系统是交给虚拟世界以道具(widget)的方式自行提供,还是交由一个统一市场,类似Appstore那样发行?这会是未来商业模式上的一个重大话题,我们对这两种模式都不作评论,这两者从长远来看都是可行的。或者出现一个通用的虚拟世界“浏览器”,在进入每个虚拟世界之后都将其作为一个充满内购的超大型网站(或App)也是非常有趣的未来。我们在这里先讨论一下应用软件市场在系统界面下的层级关系。
从使用管理来说,为了操作便捷,必须将应用软件分为常用类、全部类(常用类内容是全部类内容的子集)。通过文件夹、搜索来查找。通过特定文件的开启关系来开启个别应用软件。
简单来说,我们需要让用户能够将某些应用软件标记为可快速开启的应用软件,同时提供可查看和查找全部应用的入口。这种“快速开启”需要限制总数量,并且可以通过经过设定的交互手法调出并使用,类似游戏中的“快捷道具”或者系统界面中的“dock”栏。同时提供全部应用的陈列区,可以用搜索或浏览来查找,类似角色扮演(RPG)游戏中的背包系统或者操作系统中的“程序”。具体的形态可以根据虚拟世界的场景需要进行具体设定。
当虚拟世界某个“数据”或“内容”需要被某种软件应用操作时,因为虚拟世界的特殊性,“数据”或者“内容”一定是用某种形象展示出来的,这样使用者就可以根据文字说明或者展示的样式来分辨对应的应用。
比较直观的方式是将系统界面(launch和dock)展示为某种需要手持的样式,这样的好处是用户在使用交互设备的时候可以直观的看到“应用软件”的开启位置。同时用手持的方式操作时,视觉的对焦是自然的。并且通过手持操作会非常符合使用者的日常操作。
操作形式可以参考这个gif:http://blog.leapmotion.com/wp-content/uploads/2014/12/arm-hud-widget2.gif
leap在手部交互上做了大量开创性的尝试,但是在实际工作中我个人建议提供尽量少的手势动作,尽量将交互内容放在一个平面内实现,减少层级和拓展,更有利于使用者理解和掌握。
未来的应用软件会是如何使用的呢?很有可能将数据和对应操作的关系直观化了。例如将3D模型的制作,对应成是石匠工具和石头的关系。而未来的应用软件则是“石匠工具”。在这个层面上我们需要用户可以细化一套“标记语言”来对虚拟世界“物品”——也就是各种应用软件的外观和见面进行描述。
这样的好处是,任何虚拟空间都可以对“标记语言”对应的解释进行定制化。话句话说,不同的虚拟器就和不同的CSS解释器一样,将进入虚拟世界的使用者按照符合其视觉风格进行快速定制化。
同时如果把各种功能都如同实体一般具象化,那么功能就可以不单像launch中那样单独通过icon来陈列展示,而是可以具体地摆出来。当然这样更符合某些产品的需要。
功能在虚拟世界需要对以下内容进行定义:展示效果(通过标记语言描述外观)、持有方式(用户如何使用它们)、功能的范围、功能和数据的对应关系。
例如:
我们需要设计一个虚拟世界的某个载具,首先我们要定义这是一个通用的功能还是在某个特定的虚拟场景下的产品。然后我们要通过模型文件描述它的样子,通过纹理文件描述它的范围,同时模型文件和纹理文件都是根据所在的环境具体定义的。然后描述了使用者是要如何进入这个功能中。并且如何才能使用这个产品的相关功能。同时需要定义他需要在什么环境下才能使用,最后要定义符合什么条件的用户才能被装进这个载具中。
当使用者在进入一个虚拟场景中,我们需要确保用户不会在虚拟世界中迷失方向,否则用户就需要不停的借助第三方工具,就需要不停的进行场景切换。这样做对场景设计人员来说无异是一种失败,因为随着功能的升级,场景必然是越发复杂的。所以整个环境都需要为使用者提供位置指引,这种指引是包含了使用者有明确目的和使用者没有明确目的的,使用者是移动状态下的和使用者是静止的。本质上来说,我们需要时刻为大部分虚拟场景提供一种建筑学上的位置符号系统,来提醒用户在哪个场景位置中。
当用户在虚拟环境中,如果他有具体清晰的目标,就可以使用传送或者移动的方式到达。在传送的方式下,我们需要提供“点和点”的跳转交互逻辑。如果用户打算移动到达,那么我们需要为所有通道都对路径进行一种环境内的标志引导,这种引导类似交通导航和地理位置信息的混合。因为传统的方位信息会随着虚拟世界的发展越来越缺乏意义。
如果用户在虚拟世界停留,环境需要主动的展示位置信息,这种信息可以传达到系统通知中去,由用户查阅,也可以使用标记显示的方式直接在虚拟世界的通道中显示出来。