网上关于VR设计的文章非常多,想把他们一一看完实在是浪费时间。为此我结合自己的实际项目经验为大家整理这篇VR设计的干货文章,如果有必要的话我会及时地更新,欢迎大家在评论中分享自己的意见。另外,由于不少VR资源来自谷歌和一些国外网站,因此需要大家准备好科学上网的工具。
先把我接下来要说的内容列一个清单,便于大家阅读
1、快速入门 2、交互设计指南 3、设计流程 4、工具 5、术语 6、平台7、其他资源
快速入门
VR小白?没关系
本节内容需要你花大约1到1.5小时完成。不要觉得麻烦,因为在接触VR之前你需要了解很多重要的基础知识。另外你还需要一个支持VR的设备,目前成本最低的便是安卓手机,我建议大家准备一台支持Daydream(Google的VR解决方案)的手机。另外在你开始学习VR之前最好先体验一下,有一个直观的认识。
安卓平台的“Google Cardboard Design Lab(谷歌纸盒设计实验室)”应用可以很好地帮助初学者建立对VR设计基本原则的认识,建议大家先试试这款App。(需科学上网)
2、考虑一下人体工学与设计流程(约20分钟)
Mike Alger就VR的人体工学问题分享了一些对设计方案的思考,同时还提到了设计流程和相关资料的收集。
3、进阶内容(约30分钟)
最后来看看Daydream实验室团队的创新成果吧。这段视频分为三个部分:交互、沉浸感和社交。
当你学习完上面的内容后,恭喜你,欢迎进入VR世界的大门。
在你继续学习之前,我需要强调一点:上述内容多数仅适用于娱乐和游戏这种注重表现力的应用。
注重表现力的应用和注重生产力的应用是有根本区别的。
你针对游戏设计的UI是不能作为生产力工具的UI的。VR设计的初学者通常会犯这个错误。
基本原则
a. 虚拟现实是一个提供全新体验的途径 b .VR体验通常会持续30分钟以上c. VR的用户通常是在家里坐着
1、优化性能
将画面帧数保持在60fps是非常重要的,同时还要保证帧率稳定,否则用户会有眩晕感。人类的前庭系统是非常敏感的,因此你在设计的时候就要追求画面的稳定性而不是图形渲染的质量。PSVR就是一个很好的例子,它的画面质量不是很高,但是保持着120fps的帧率。
2、以舒适为先
进行VR设计的时候要尽量减少用户活动头部和眼球的次数。尽量应用栅格布局并将功能相似的图标放在一起。在着手设计之前首先要明确你的应用需要用户坐下还是起身,以及是否需要360度旋转等问题。
3、降低用户的学习成本
用户和VR世界交互的方式目前还没有定论,因此VR的UI设计没有什么通用方法。这意味着你需要自己思考如何提供更好的体验。你需要保证提供充足的反馈,通过动画来讲解功能而不是文字介绍。建议大家参考一下Land`s End这款游戏的设计,它非常简单易懂,只需一行文字就可以让你明白如何进行操作。
4、不要将VR看做现实世界的复制品
提到VR设计,很多人的思维定势是尽量将所有东西设计得像现实世界那样。这是一个误区。我们没有必要去复制一个人们司空见惯的世界,应该以现实世界的事物作为辅助,充分利用VR世界的灵活性来设计VR。
5、声音要提供更多有用的细节
说实话这一点实现起来很难,因为VR里的声音设计和常见软件的声音设计有很大的区别。目前人们很难做到像在现实世界里那样在VR的世界里同时做很多事情。因为人们的注意力完全由VR掌控,通常用户会专注于眼前正在做的某一件事。声音可以帮助他们更加专注,并且可以提供很多反馈。
声音也能提供“视觉效果”,可以一次呈现出包含大量信息的画面。
— Alex Faaborg(谷歌)
摄像头(用户的“眼睛”)
1、不要挡住摄像头
如果有东西挡在眼前用户肯定会不舒服,那感觉就跟你的眼镜上有个污点一样。
2、不要给摄像头加速/减速
使摄像头保持匀速转动。不论是加速还是减速都会让用户感到不适。遵循这个规则:向前优于向后、上/下移动优于水平左右移动、场景的快速切换优于让用户慢慢转头
3、尽量将内容放在和用户视线平齐的位置
在设计的时候要考虑用户的身高,一个小朋友和一个成年男性的视角是不同的。结合位置追踪系统可以很好地解决这个问题。
UI 元素
位置:
距离眼睛0.5米以内的东西很难吸引人的注意力,超过20米的话则会失去立体感。就现有VR技术而言,在VR世界里距离用户眼睛2米的物体是最容易的引起注意的。2米到10米之间的物体看上去会舒服一些
三星的交互设计师Alex Chu调研了VR镜头旋转的范围与用户舒适程度的关系,并得出了如下结论:
1、左右旋转范围:30度以下最舒适,55度是最大值 2、向上:20度以下最舒适,60度是最大值3、向下:12度以下最舒适,20度是最大值
交互
专注和活动状态非常关键
这一点其实不是现在必须提到的,但是大家需要记住一点:VR世界中不是所有东西都是处于活动状态的。因此最好在光标移动到某个物体上时再使该物体处于活动状态,从而告诉用户这个物体是可以交互的。声音也可以帮助增强这个效果。
动作
1、避免出现大型物体的横向快速运动
如果你觉得某个动作有必要,那么尽量让其远离镜头并降低其移动速度,否则用户会觉得很不舒服。
2、避免出现快速接近用户的动作。
想想现实世界中有一个东西快速飞向你时你的第一反应吧,你肯定会下意识地躲开它。对于实用工具类的应用来说更要避免这种情况,你肯定不会希望触发用户的躲避本能……
3、需要用户移动时必须慎重考虑。
如果你需要用户在VR空间里移动,一定要使其匀速运动而不是加速运动。最好是直接将镜头从一个场景切换到另一个场景(让用户“瞬间移动”)。还是遵循这个原则:向前优于向后、上/下移动优于水平左右移动、场景的快速切换优于让用户慢慢转头。
光标:
1、使光标与用户的距离和其他内容与用户的距离保持一致。
2、给可交互的内容添加hover状态和活动状态
3、通常是在其靠近、盖住一个可交互的物体时才显示
文本:
1、越大越好
2、避免在白色和半透明的背景上显示文字
3、目前市面上的VR头盔的PPD(pixel per degree,每一个度上的像素值)在13左右,因此文本的高度最好设为1.5度左右,在多数屏幕上1.5度约等于是20px
可以通过下面这个式子来计算文本大小。这个公式证明起来比较复杂,你不妨直接试一试看看实际效果。
环境
用户的位置
1、使用户着地而不是飘在空中。在VR世界里创建一个地板让用户明白他们是站在一个稳定的地面上。
2、将重要的内容放入用户视野范围内的醒目位置。在设计环境的时候需要将用户的目光引导到关键内容上去。
导航
1、将最关键的内容始终正对着用户
你经常会需要切换VR的场景。确保在切换之后用户的视线和这个场景中最关键的内容对齐。
2、利用声音、动作、光线和颜色来引导用户的注意力
在电影里面,动作、对比和颜色是吸引用户注意力的最好方式。但是在VR里面可能会出现用户背对着关键内容的情况。理想情况下,你可以极力去避免出现这个情况。但是当这种情况真的出现时,你可以利用声音来引导用户回头来面对关键内容。
天空与背景
正如你需要一个地面一样,你的3D场景需要一个天空。天空通常是一个球体(可以利用全景纹理图片来实现)或是一个立方体(让用户处于一个“盒子”里面)
设计流程
优化你的设计流程 a. 画出原型图:将你的想法画出来而不是说出来 b. 迭代完成你的工作 b1. 重复执行这三步:设计、开发、测试 b2. 你的想法很可能是不合理的,测试不要停!c. 借鉴其他领域的实践经验和设计原则:电影、建筑学、游戏等等
看看谷歌VR团队的这段视频,尤其是注意23分到34分之间Daydream实验室对于VR产品设计流程的讨论
基本设计流程如下:
1、绘制草稿
这是唯一需要你进行2D操作的步骤
2、构建立体布局
尽快将你的设计在VR中实现,以便于测试你的布局是否合理。你可以将你的2D手稿作为纹理文件放入VR里来看一下大致的布局,但是一定要用VR头盔来看,而不是你的电脑屏幕。在设计初期,你可能需要使用一种叫做“灰盒模型(grey boxing)”的技术,用平面的带阴影的模型来构建出一个立体的布局,如下图所示。这和构建平面的线框模型是类似的。如果你觉得布局没什么问题了,就可以开始着手设计立体模型的细节部分了。
3、用户测试
尽快让真实用户测试你的设计。最好让没有体验过VR的人也加入到测试中。有的用户很可能在使用你的应用之前没有接触过VR。
工具
目前多数VR设计工具处于早期阶段,还没有一款工具可以提供完整的VR设计功能。你可能需要多加探索。
原型与布局
90%以上的设计都需要画出原型图。下面这些工具有的很不错,但是也有的不太推荐,供大家参考比较。
不错的工具
1、A-Frame。由火狐开发的基于ThreeJS的VR库,可以快速构建出简单的VR应用。非常值得一试,而且入手很容易。对于那些设计轻量、多功能的应用的团队来说非常实用。同时对于有Web开发背景的团队来说(比如我的团队),这个框架会更加适合。缺点是对手机VR的测试不太友好。
2、Dayframe。我设计的一个小型模板项目,用于快速构建Daydream VR的原型。它通过websocket来模拟出一个Daydream控制器,需要结合你的手机来使用。
3、Unity。一个比较全面的平台,可以帮助你创建跨平台的VR设计。比前两个工具要复杂得多,但是更加强大。Unity不论是用于VR设计还是其他创作设计都很不错,但是学习成本大一些。
还凑合的工具
1、Sketch-to-VR。可以将你的想法快速生成一个草稿并在A-Frame框架中实现。但是说实话通过实际使用我发现它并不是很好用,因为它仅仅是将一些图片放在一个平面上,无法帮助设计者看到大致的立体效果。
2、FramerJS VRComponent。如果你熟悉FramerJS的话不妨一试。但是它有个缺点是它目前不支持在VR设备中显示,所以你不能看到VR中的立体效果。
建模
有时候你需要建立一些相对复杂的模型,这时候你就需要建模工具了。通过实践我发现支持.obj后缀名文件的工具都还不错。我推荐下面这些:
1、MagicaVoxel。模型像乐高和我的世界里的东西。
2、TinkerCAD。可以快速构建立体图形
3、Blender。学习成本较大,但是可以帮助你创建一些复杂模型
4、Sketchup。你可能需要用一些插件来支持.obj格式
你也可以尝试一些在线的建模工具,另外有些资源商店可以满足你的一些需求
1、Sketchfab。一个提供了大量VR内容的库,而且这些内容都是可以通过WebVR来观看的
2、Thingiverse。提供了大量的3D模型。但是你可能需要将.stl格式的文件转成.obj格式的。
3、Unity和虚幻的资源商店
用户测试
目前可用的用户测试工具只有这一个:Fishbowl VR。
在用户测试的时候你需要录下来这两个内容:
1、用户使用你的应用时他/她的动作
2、用户在头盔里看到的内容的截图或视频片段。
术语
设备
HMD:全称Head Mounted Display,表示带有屏幕的VR头盔
跟踪
1、Tracked:位置跟踪。带有位置跟踪的VR系统可以跟踪头盔的位置,而不仅仅是获得头盔的方向。这种系统可以支持对用户前后左右倾斜、蹲下和站在高处等动作的反馈。
2、Room scale:空间追踪。具备Room scale功能的VR系统支持非常大(像一个房间那么大)的追踪区域,可以让用户在3D空间内自由行走。
3、Inside out tracking:内置追踪。表示追踪设备内置在头盔里
视觉
1、Display:头盔里的屏幕。目前所有带屏幕的头盔都使用的是LCD屏幕,支持最低400ppi
2、Lenses:镜头。所有头盔都带有一个调整屏幕距离的镜头,让用户看得更舒服。如果没有它的话离你眼睛那么近的屏幕是没法看的。
3、Barrel distortion:桶形畸变。用于调整镜头导致的图像失真,通过一些处理将透过镜头显示在用户眼睛里的图像锐化,提高显示效果。
4、IPD:瞳孔间距。表示人的双眼之间的距离,每个人的瞳孔间距会有细微差别,这对VR的立体感是有影响的。
5、FOV:视场角。表示VR头盔中的视野范围,以度作为单位,包括水平的视野范围和垂直方向上的视野范围
常用测量单位
1、PPD:像素/度,在平面设计中有DPI作为单位,在屏幕上有PPI作为单位,在VR设计中则是用PPD作为单位。
2、米。你在VR中定义的场景都会以米作为单位。不论是在WebVR(如A-Frame)、Unity还是虚幻引擎中都是用的米。
屏幕刷新率
1、Frame rate:帧速率,表示每秒渲染多少帧。满足VR显示要求所需的最低帧速率为60fps,最佳帧速率为120fps。这个数值不是由软件决定,而是由运行设备的CPU和GPU决定。但是不是所有的设备都支持60fps的帧速率,比如Android设备的浏览器Chrome就仅支持30fps
2、Refresh rate:刷新率,表示屏幕每秒刷新多少次,满足VR显示要求所需的最低刷新率为60hz,最佳刷新率120hz。目前所有的主机VR平台都支持这个60hz的最低标准,手机则不一定。
3、Sampling rate:采样率,表示每秒获取多少次位置和方向数据,满足VR显示要求所需的采样率最低约为100hz,最佳为1000hz以上。如果达不到这个要求的话用户体验就会很差。iPhone 6的IMU(款型检测单元)最大支持100hz的采样率,而Android设备则千差万别,令人遗憾的是Android的Chrome浏览器似乎似乎设置了采样率的阈值,限制了对于较快动作的捕捉,导致VR体验较差。
4、Motion to Photons:响应时间,表示从用户产生动作到屏幕上内容随之变化的这段时间,满足VR显示要求所需的最低响应时间为50ms,推荐响应时间为20ms,最佳响应时间为2ms。响应时间受到帧速率、刷新率和采样率的影响。大于50ms的响应时间会让用户感觉不舒服,而小于2ms的时延则几乎不会被察觉。
平台
不同VR平台的管理流程、FOV、解析度、帧速率、刷新率和输入方式有着很大的不同。下面我列出了目前比较有代表性的VR平台。
无线VR设备
无线VR设备是不需要视频线缆的,所有的运算都交由头盔完成,并用智能机作为屏幕和处理核心。
1、Google Daydream
目前最完善、成本最低的平台。最近谷歌发布了支持Daydream平台的Daydream VR,正式开启Android平台的VR时代。同时谷歌公布了Daydream平台的sdk供开发者使用。
平台介绍: 谷歌开发者预览
发布时间:2016年11月 内容商店:谷歌Play Store 系统:安卓(支持Daydream平台的版本,如Android 7.0) 输入方式:眼神、非跟踪3D控制器、2个按钮FOV:约90度
2、Cardboard(谷歌纸盒)
尽管谷歌已经发布了更为先进的Daydream VR,但是鉴于谷歌纸盒的低价、适合于尝鲜,且是目前唯一支持iOS系统的VR平台,它在短时间内还不会被淘汰。
平台介绍: 纸盒设计指南
发布时间:根据应用和头盔的升级换代而实时更新 内容商店:iOS App Store和谷歌Play Store 系统:iOS、Android 输入:眼神,头盔上的按钮FOV:85度到100度
3、Gear VR
Daydream的系统整合版,但是提供的内容仅限于Oculus商店里的
平台介绍: ui和 输入与导航
发布时间:2015年11月27日 内容商店:Oculus Store 系统:安卓(仅支持三星Galaxy系列手机) 输入:眼神,头盔上的两个按钮(返回键与Home键)FOV:96度到101度
配备跟踪功能的有线VR系统
配备跟踪功能的有线VR系统比无线VR设备要强大得多,但是相应的也更加昂贵。另外你还需要在一个较大的房间里安装设备,同时要注意别被线缆绊倒。
1、HTC Vive(支持Room scale!)
目前性能最为强大的VR系统。非常适合作为设计工具,并且是最适合专业人士的VR设备。针对的用户群体非常小且多为游戏用户。
发行时间:2016年4月5日 内容商店:Steam 系统:Windows 输入:带有跟踪技术的控制器FOV:110度
2、Oculus Rift(支持Room scale?)
和Vive具有一样的市场规模,但是性能较低并且也没便宜多少。如果你需要Rift这个价位的VR设备的话,买个Vive吧还是。二者最大的不同便是内容提供商不一样。
平台介绍: ui和 输入与导航
发行时间:2015年11月27日 内容商店:Oculus Store 系统:Windows 输入:触摸、游戏手柄FOV:110度
3、Playstation VR
PSVR是目前性能最低但却是最便宜的有线VR系统。不同于其他有线VR设备,PSVR以销量超过4千万的游戏主机PS4为平台,显然可以提供更为丰富的内容。但是不要期待其设计用途,因为它毕竟只是一款游戏设备。
平台介绍:暂无 发行时间:2016年第四季度 内容商店:未知 系统:Playstation 输入:游戏手柄、带跟踪的控制器FOV:100度
其他资源
1、UX of VR:拥有大量的视频、文章和代码资源
2、Design Practices in Virtual Reality:一篇不错的VR设计文章,比我的这篇干货介绍更加专业。(需科学上网)
3、Voices of VR:包含关于VR产业的一些最新信息,几乎每天都会更新。
结语:
不要担心你对VR设计一无所知。从基础开始一点点学习,相信这篇文章可以带领你进入VR设计的大门!
via medium