提交需求
赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!
Oculus设计团队关于VR设计中的一些实践与经验的总结
VR很棒。
VR给人创造出一种 完全穿越到虚拟(或者你也可以说是“真实的”只不过是用数字技术再现)的三维世界的感觉,打开了一个充满可能性的世界。VR提供了一种内在而身临其境的体验,这是传统基于屏幕的媒介所无法提供的。本指南将帮助您开发受用户喜爱的VR体验。
本指南帮助您知道如何为用户带来最佳可行的VR体验。我们会就如何提供舒适的体验提出一些具体的建议;不过,VR仍是一种年轻的媒介,所有开发人员都有责任确保其内容符合所有安全和舒适的标准和行业里的最佳实践,并与科学研究和行业标准保持同步。
本指南中的建议是设计舒适游戏或应用程序的起点。 您的应用程序可能与本指南中确定的最佳实践有不同的要求。本指南不提供关于性能优化或技术开发的建议。有关优化应用程序的信息,请参阅“测试和故障排除>”和“Rift优化应用程序>”指南。
VR的某些方面还没有得到足够的研究,无法就如何为所有用户提供舒适的体验做出明确的陈述。仅遵循本指南中的建议并不能保证舒适或愉快的体验。因此,进行迭代用户测试至关重要。Oculus开发人员社区也期待您的反馈来帮助我们完善这些VR最佳实践。
如果你的VR体验忽视了基本的最佳实践,它们可能会导致某些人感到不适。这种不适可以会带来眼睛疲劳、定向障碍或恶心的症状,或是这些的组合。因此,遵循下文中的最佳实践原则 非常重要。
某些类型的图像能够令一小部分人群引发光敏性癫痫发作。国际标准组织已发布ISO 9241-391:2016>作为图像内容的标准,以降低光敏性癫痫发作的风险。 您有责任审查光敏性癫痫发作和图像安全性的标准和文献,并设计符合这些标准的内容。
此外,不建议开发人员或用户不间断地过度使用VR(甚至设备也是)。请查看www.oculus.com/warnings 上的健康和安全警告。我们建议您查看所有健康和安全警告,因为它们可能会影响您内容的开发。
本指南中的建议绝不是可被应用于所有app的唯一机制。我们鼓励您尝试不同的方法。也许您的app反倒会受益于我们所建议的对立面。唯一的方法就是实验。
允许用户自己定义的使用持续时间。VR需要用户在他们的头上佩戴设备,并且经常站立和/或移动身体,这在其他显示技术中不存在。 用户应该始终可以自由地暂停游戏,然后回到他们离开的确切位置。适时的休息建议(比如保存点或动作中断)对于可能会忘记时间的用户来说是一个很好的提醒。
将休息位置/姿态纳入您的VR体验,可以减少用户长时间游戏中可能感到的疲劳。
用户使用VR越多,他们感到不适的可能性就越小。这种习得的舒适感是大脑学习去重新解释先前引起不适的视觉异常的结果。并且用户动作变得更加稳定和有效以减少vection(相对运动错觉)(我们将在本指南的“Locomotion”章节更详细地讨论vection)。
在 VR 中,加载页面 或 插播式加载 是不可避免的。但应该使用户经历尽量少的加载次数。
与传统的游戏或应用不同:在等待加载时,用户可以做一些其他的事,比如玩玩手机或喝杯水。在 VR 中,用户是被你的加载页面“俘虏”的。所以,当你不得不展现一个加载页面时,我们推荐你使用一个3D立方体贴图。这给在等待加载过程的用户提供了一个比较好的体验,同时开发量比较小。
在VR中,如果物体的深度不能被正确表达出来,体验将大打折扣。立体视觉,即基于每只眼睛的视差而得知的深度感觉,是最显着的一种深度线索,但它只是大脑处理深度信息的许多方式中的一种。
许多视觉深度线索是单眼的;也就是说,即使只用一只眼睛观看它们,或者出现在平面图像中,也同样能传达出深度感。其中一种这样的深度线索是 运动视差,它指的是:在头部运动时,不同距离上的物体的运动速率会不同。(*译注:在相对位移的时候,近的物体看起来移动的快,远的物体看起来运动的慢。)
其他深度线索包括:
· 曲线透视(直线延伸到远方时会汇聚)
· 相对比例(物体的距离越远显得越小)
· 遮挡(近处的物体会阻挡我们看到远处的物体)
· 空中透视(由于大气的折射特性,远处物体看起来比近处物体更暗)
· 纹理渐变(重复图案在远方时会变得更加密集)
· 光照(高光和阴影帮助我们感知物体的形状和位置)
当前一代计算机生成的内容(例如在Unreal和Unity中创建的内容)利用了很多这些深度线索,但我们很容易忽略它们的重要性。 如果实施不当,导致了对深度的感知冲突,会使体验变得不舒服或难以观看。
当眼睛专注于VR中的物体时,有两个问题对于眼睛舒适度至关重要:调节反射和辐辏反射。调节反射指的是:你的眼睛如何调整晶状体的形状以对焦到某特定深度平面上。辐辏反射指的是:眼睛向内旋转的程度,使两个眼睛的视线在特定的深度平面处相交。在现实世界中,这两者彼此密切相关。所以有所谓的调节-辐辏反射:你眼睛的聚散程度会影响晶状体的调节,反之亦然。
对于调节反射和辐辏反射来说,VR创造了一种不同寻常的情况:调节反射是固定不变的,而辐辏反射会变化。这是由于:立体3D的图像实际上始终呈现在(光学上的)固定距离的2D屏幕上,但是呈现给每只眼睛的不同图像仍然需要眼睛旋转,因此它们的视线汇聚在不同深度平面上的不同物体上。
为了防止眼睛疲劳,用户需要长时间固定眼球观看的物体(例如,菜单、环境中感兴趣的物体)应该至少在0.5米的距离。许多人发现1米是菜单和GUI的舒适距离。
显然,一个完整的虚拟场景也需要渲染一些在舒适区之外的物体。但只要用户不需要长时间关注这些物体,那么(对大多数人来说)它们就不会带来不适感。
一些VR开发者发现,如果你知道用户在看哪个对象,那么景深效果可以同时带来沉浸感和舒适感。 例如,用户调出的菜单后,你可以手动模糊掉背后的背景;或者模糊掉在被观看对象的深度平面之外的对象。这个方法不仅模拟了在现实世界中视觉的自然功能,还可以防止用户被焦点外的明显物体分散注意力。
你无法控制一个以不合理方式行事的用户。一个用户有可能选择一整天都盯着(你想让他看的)物体之外的地方。而你的职责只是避免可能导致不适感的情况出现。
当达到一定距离时,人对深度的感知就不那么敏感了。
· 很近的时候,立体视觉会让你知道桌面上的两个物体中哪一个更近,这种区别可以达到毫米级。
· 当距离开始变远时,这就变得困难了。比如,当你在公园看到远处的两棵树,它们必须相距几米以上,才能让你自信地说出哪一棵更近哪一棵更远。
· 而在更大的尺度上,比如当对象是山脉时,你可能无法确定两座山中哪个离你更近,除非它们达到数千米以上的差距。
利用这种对深度感知的相对不敏感性的原理,通过使用“假冒”的纹理图案来替代全模型3D场景,达到释放计算能力的目的。
· 例如,你可以简单地将山丘的平面图像渲染到左右眼图像中的单个多边形上,而不是渲染出整个3D远山。这个图像在VR中看起来与传统的3D游戏相同。
注意:这些替代图像的有效性取决于所涉及对象的大小、内部和周围的深度线索、以及它们出现的上下文环境。你需要对资源进行单独测试,以确保替代图像的外观和感觉正确。替代图像应该与相机足够远,以便可以不显眼地融合在一起,并且保证真实3D场景和替代图像之间的界面不会破坏沉浸感。
在现实世界中,我们经常遇到每只眼睛拥有不同视角的情况,一般来说这对我们来说都没什么问题。在 VR 中用一只眼睛看,就像在现实生活中用一只眼看一样。事实上,眼睛的不同视角可能是有益的:
· 假设你是一个特工(在现实生活中或VR中),你试图隐藏在一片高高的草丛之后。你眼睛的不同视角可以使你“穿过”草丛来监视你周围的环境,仿佛你面前没有草一样。相反,如果在2D视频游戏中进行相同操作,可能会使草丛后面的世界被完全遮挡。
尽管如此,VR(像任何其他有立体感的图像一样)也会引起一些不舒服的情况。 例如,渲染效果(例如光线失真,粒子效果或光照绽放)应始终在双眼中展示并且具有正确的视差。不正确地渲染效果会产生“闪烁感”(当某些东西只出现在一只眼睛中时),或导致(物体)漂在错误的深度上(如果关闭了视差,或者后处理效果没有渲染到物体应该在的深度上)。
确保两只眼睛之间的图像 除了双眼视差固有的略微不同之外,没有差别。
在复杂的3D环境中,这通常不是问题,但一定要给用户的大脑足够的信息 以将立体图像融合在一起。通常情况下,利用3D场景的线条和边界就足够了。然而,当你使用大幅重复图案或纹理时,需要非常谨慎,因为这可能导致人们以意料之外的方式去融合图像。还要注意深度上的视错觉(例如,凹脸错觉>,凹面看起来会是凸的)会导致误解,特别是在单眼深度线索稀疏的情况下。
我们不鼓励使用传统的HUD(*译注:指绑定在camera上的信息界面)在VR中显示信息。相反,最好将信息在虚拟环境或用户化身中呈现出来。某些传统HUD方式如果经过深思熟虑的重新设计,也可以有好效果。不过如果只将HUD从非VR游戏移植到VR内容中,就会带来新的问题:使 VR 游戏变得不切实际甚至令人不适。
如果你选择使用一些HUD元素,请注意以下问题:
不要用HUD遮挡场景。这在非立体游戏中不是问题,因为用户可以容易地设想HUD实际上在其他一切元素之前。在 VR 中,当场景中的元素比HUD的深度平面更接近用户时,作为深度线索的双眼视差(投射到每只眼睛的图像之间的微小差异)会带来矛盾。基于遮挡,HUD被认为比场景元素更接近,因为它覆盖了它背后的一切,但是双眼视差表明HUD比它遮挡的场景元素更远。当用户试图融合HUD和场景中的画面时,就会变得困难并造成不适感。
不要在场景“后面”绘制任何元素。准星、字幕和其他“漂浮”类的UI元素都普遍遵循这条规则。这条规则也常见于,一个本该在墙后面(按其与camera的距离算)而事实上被绘制在墙的前面的物体,因为它以叠加来实现。这会带来深度线索的冲突,可能会令人不适。
相反,我们建议你将信息构建到环境中。用户可以移动头部以直观的方式检索信息。
· 例如,与其用HUD展示迷你地图和指南针,不如让玩家能向下瞥时看到一个实际地图或指南针。也可以在玩家的虚拟手或手表中,展示一些重要信息。
这并不是说现实主义是必须的——比如敌人的血槽可以浮在他们头上。重要的是:以清晰舒适的方式呈现信息,同时不会干扰玩家感知到一个清晰的环境、或是他们试图收集的信息。
定位准星是游戏的常见元素,也是一个很好的范例来看看应该如何将传统信息在VR中展示。准星对于准确瞄准来说非常重要,但如果简单地将其贴在一个固定深度平面上,将不会是玩家在游戏中所期望的。例如,如果将准星渲染在与眼睛会聚位置不同的深度上,会被视为重影。如果想使准星和在传统游戏中的相同,必须将其直接绘制到瞄准的对象上——假设这是用户眼睛的会聚处。准星本身可以是固定尺寸的并有近大远小的效果,或者也可以对其进行编程以保持看到的总是同一个尺寸——这点主要从美术角度决定。
将重要的游戏元素都放在用户的直接(看到的)视线中。在用户“沉浸线”之外显示的UI或元素更有可能被遗漏。
参考链接:http://buildmedia.com/portfolio-items/what-are-survey-accurate-visual-simulations/
你应该考虑用户的高度,或用户视点(POV)的高度,因为这可能是导致不适的一个因素。用户的POV越低,地面的变化就看起来越快,产生更强烈的光流。这可能会产生令人不舒服的感觉,其原因与爬楼梯不舒服的原因相同:这样会在视野中产生强烈的光流。
在开发VR app时,你可以选择将camera的原点放在地板上或人眼上(分别称为“地板”和“眼睛”原点)。这两种方式都有一定的优点和缺点。
· 以地板为原点:将使人们的视点与他们在现实生活中的地面处于同一高度。虽然说,将VR中视点高度与人在真实世界的高度统一,可以增加沉浸感。但是,你无法控制虚拟世界中人的身高。如果你想要渲染出一个虚拟身体,你需要为不同身高的人构建不同高度。
· 以人眼为原点:这意味着你可以在虚拟世界中控制用户的高度。当你要渲染某特定高度的虚拟身体时,或当你需要提供与人们的真实体验不同的视角时,这个方式非常有用(例如,你可以向人们展示从孩子的眼睛看世界的样子)。然而,当使用视点作为原点时,你就不知道物理地板的位置了。这使得涉及到低位或从地面捡起东西的交互 变得复杂。由于你实际上并不知道用户的身高,因此你可能希望在app的开头添加重定位步骤,以准确记录用户的真实世界高度。
由爱奇艺VR设计团队编译
© iQIYI XRD
/ 未完待续 /
Powered by Froala Editor
大牛,别默默的看了,快登录帮我点评一下吧!:)
登录 立即注册