提交需求
赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!
Oculus设计团队关于VR设计中的一些实践与经验的总结。
在 VR 中的加速度(不是由用户在真实世界中的运动产生的),是引起不适感的首要原因。加速度指 在任何方向上产生的速度变化,可以是:速度逐渐减小的移动、旋转或转头,或是向侧面的位移、垂直方向上的位移。加速度在视觉上能感知到,但前庭器官感觉不到,这种感知上的冲突就带来了不适感。
加速度出现的频率变高、数值变大、持续时间变长,都会导致不适感加重。任何通过视觉感知到的加速度 都会和感觉产生冲突,尽量避免——越少越好!
VR 中的速度 和 不适感 并没有完全对应的关系。慢速的移动通常比正常速度更舒适。然而,与通常认知不同的是,VR 中快速的移动也比正常速度更舒适。此处参考:人类移动速度通常在1.4米/秒(走路)到3米/秒(慢跑)之间。
让用户自己去控制运动 可以最小化不适感,尤其当虚拟世界和真实世界的动作是1:1还原的时候。让用户可以自己在 VR 中动,而不是让他们坐在车里动。
移动方向也影响着用户在 VR 里的舒适度。在真实世界中,我们通常是 站着不动 或 向前移动。我们很少后退,也几乎不会横向平移。因此,当必须要移动时,向前方的移动是最舒适的。向左或向右平移是问题最大的,因为我们通常不会这么走,并且这样会呈现出一种奇怪的光流(optic flow)模式。
(*译注:移动时产生的“唰”的画面)
· 当用户在 VR 中移动时,应该最小化像素流动和噪音,尤其当用户处在边缘位置时。
· 避免在封闭空间里让用户移动(例如走廊)。
· 开放的场景对用户来说通常更舒适。
我们目前仍处在探索阶段,并没有找到一种适用于一切用户的“万能钥匙”。
以下说的几种方法 在用户体验上是有所权衡的,每个用户感觉都会不一样。如果可以,尽量提供给用户灵活性——多一些选择,而不是只有一种移动方式。
所有这些方法的主旨都是为了避免上文提到的冲突——使大脑相信用户并没有真的移动,就像他们感觉到的一样(*注:视觉与感觉的统一)。而这意味着,需要有足够的通过视觉呈现的信息,来强化对实际运动的感知。
最好把舒适度更高的体验前置,之后再让用户体验到刺激/高强度的感觉。
可能总会有对你的移动方式感到不适的用户,那么最好有一个“舒适模式”,来触达到更广泛的群体。
这听起来有点违背常理,但这是最有效的避免不适感的方法——设计一个不需要移动的体验。如果没有通过用户操作 也没有解释 就直接在 VR 里移动用户,虽说这显得有点刻意,但良好的叙事设计,也可以提供用户保有沉浸感的心理模型。
一个方法:让用户利用不连续的平台/机构来移动。你可以利用一些运输机制来使用户移动,而不让他们产生相对运动错觉。
· 比如,用户可以使用电梯 或一些密封的运输装置,或者在移动的时候让他们看到的世界变黑(此处可以附加一些剧情化的原因,比如“被蒙住眼睛”“失去意识”)
用户可以通过瞬移来在场景中移动,而不发生相对运动错觉。用户可以在场景中选择一个想移动到的点,然后他们就可以瞬移到这个点,这个过程不会产生任何加速度。
需要注意:对用户在虚拟环境中的位置进行大的更改 可能会让人迷失方向。玩家应该有足够的渠道来预测他们将在何处 以及他们在到达目的地时面向的方向,并且,最好还要清晰的地标来帮助定位。 我们在Gear VR控制器技术说明文档中,更详细地描述了瞬移。
你可以在VR场景中让用户 在一条直线上匀速运动。例如,用户在定点之间“走动” 或在一个轨道车里运动,不过要注意的是,需要以固定速度和方向运动,才能消除相对运动错觉。用户可以通过某种操作来控制运动开始和结束。
(在移动时)将视觉画面直接切成黑色 或 直接切换视角,是一个可以消除所有视觉信息的简单方法,因此也就消除了相对运动错觉。并且,大脑可以很好的填补变化过程的画面(比如说我们不会意识到在我们眨眼睛瞬间的空缺画面)。我们正好可以利用这个能力。
这个机制本身破坏了“运动”的感觉,但当视觉画面没有什么增量信息时,大脑是可以把他们拼接成连贯的运动的。因此,如果用户可以以每秒8次或更快的速度来改变视野(不论是切换视角方向 还是从一个点“眨眼”到另一个点),那么就可以权衡这个方法的功效。以这种速度的变化会被大脑视为“运动”,与此同时还减轻了相对运动错觉。
隧道视角使得眼睛缓冲区虚化,fov减小了,边缘视野被遮挡。
· 一些 app 会在运动时渐隐掉边缘的视野。
· 一些 app 利用场景框架(例如,模拟潜水镜视野,在全黑屋子里只能看见打火机照亮的地方)来防止边缘视野的像素流动。
· 一些 app 会在边缘视野的像素流动非常强时,虚化场景(例如,飞行模拟器里靠近一个建筑物或山时)。
此方法的一种变体是在用户启动移动时暂停渲染外围并仅更新视图的中心。
让场景移动,而不是用户。这个方法不太容易实现,但做好了可以使用户舒适地“抓起”并拉近场景。让虚拟世界在用户脚下移动,而不是移动用户。
用户在真实世界对手柄的动作 和 在虚拟世界里的动作 应保持1:1的比例(包括转动和平移)。如果你想夸大用户在 VR 中的动作,那么就让夸大得更明显(如4:1),让人明确知晓这不同于自然的感官体验。
有经验的VR用户通常已经习惯于利用特定按钮或动作来执行某些操作。使用这些默认映射关系 会使你的 app 令人感到熟悉,即使是对于第一次使用 VR 的用户。请参照我们的 Button Mapping Tech Note。
VR用户有左撇子和右撇子。为了使两类用户都适应:当存在2个控制器时,则应该允许使用任一手完成任何一项交互;当设备仅支持单个控制器,也应尊重系统默认的手部设定。
*本章内容针对3DOF手柄,例如 GearVR 的手柄。
展示
如果你想在 app 内展现出手柄,我们建议不要用手部模型、或类似于手的模型,因为如果这样做,会令人觉得这个手柄可以用来抓取、操纵物体。而这些操作对于3DOF手柄来说是难以完成的。
3DOF手柄是很好的指向型工具,用来指向 UI 元素。通常情况下,用户用此类手柄会很自然地去指向和选择。我们建议在场景中显示手柄模型,并展示一条从手柄发出的射线(这条线一直延伸到 UI,或延伸出几厘米就消失,都可以)。在这条线和 UI 的交点处展示一个指针(cursor)。
如果你有一个需要翻页 或 需要平滑滚动的菜单,可以利用手柄上的触摸板(touchpad)。在触摸板上的滑动方向 应与UI的滑动方向一致。
· 例如,如果你有一个竖直的长页面,[向上滑] 应使页面向上运动,使你看到更多的底部内容。
允许用户可以在[点击 trigger 键] 和 [点击触摸板] 之间选择。除非你需要让其中一个操作有另外的定义。
当使用手柄去瞄准VR中的物体时(例如,射击时),我们建议你始终展示手柄射线。 手柄射线应该从VR中的手柄模型末端发出。
· 要区分VR中的可交互对象和不可交互对象,你可以在将手柄射线渲染成有透明度的,仅当它指向可交互对象时,才变为完全不透明。
当和 VR 中的物体有交互时,最好通过视觉有所表示 (visual cue)。
· 例如,当物体获焦时,可以高亮、或变大。这使用户得知两类信息:1.这个物体是可交互的,2.当进行了某种操作时,这个物体可以被选中。
另一种常见的手柄使用场景是在 VR 中控制一辆车。有很多途径来满足这个目标。我们发现单手倾斜的方式 既舒适又直观:
· 手柄向左倾斜——向左打方向盘
· 手柄向右倾斜——向右打方向盘
并且,该方式使得在控制车辆转向期间,trigger和触摸板仍旧可用(于其他操作)。
*本章内容针对6DOF手柄,例如 Oculus Touch的手柄。
为了拥有一个良好的手部配准,是值得花费开发时间的。Touch手柄使你可以在VR中拥有两只手——不仅仅是可以握住的工具,而是实际的手。
· 如果做得好,虚拟手可让你直观地与虚拟世界进行交互。毕竟,你已经知道如何使用你的双手。
· 如果实施不当,虚拟手可能会导致“离奇的手谷”效果。 在极端情况下,不合适的手部配准和跟踪不良 会导致本体感觉不匹配,并使用户感到不舒服。 想要获得正确的虚拟手,需要良好的手部配准。
配准是指,使(用户的)大脑看到虚拟手并接受它们表示的是真实的手。为了达到这个目的,需要满足许多要求。其中最重要的是,虚拟手的位置和方向 需要与用户实际的手 相匹配。手部模型中的旋转误差的略微偏移也经常发生,这会导致不佳的配准。
要获得正确的配准,一种方法是在场景中放置一个手柄模型,并在将手柄模型移到脸部附近时从HMD的底部窥视,以确保其枢轴是正确的。 如果实现正确,你会看到手柄在现实世界和虚拟世界之间可以无缝对接。接下来,是围绕手柄进行手部的建模,然后再隐藏掉手柄模型。
有肉感又逼真的手部模型可能会使用户感到不舒服,因为模型很可能与他们自己真实的手不符。
· 允许用户自定义他们的手的外观,让他们感觉到更真实(或者感觉到更不真实,如果这恰恰是他们的偏好)。
· 大一些的手 或被其他物体附着的手 通常容易被大脑接受(人们可以假设他们的手在这些物体的“内部”),而太小的手反倒可能令人不安。
· 使用半透明的“虚无手” 或 “机器人手”通常是正确的决定,因为他们可以被映射到更广泛的用户群,无论性别、年龄、种族。
当手部模型与VR中的物体有穿插时,不应停止对用户的虚拟手的追踪。
· 你不能阻止人们的手会尝试穿过虚拟几何体。而如果通过碰撞检测来防止这种情况,会使得手部跟踪感觉已经丢失,从而导致不舒服。
如果你选择使用“活的“双手模型,请考虑使用会与物体碰撞的物理手。而当“活手”被物体阻挡/产生碰撞时,立即显示一个第二套模型——“虚无手”或“透明手”——去继续追踪玩家的手部动作。这样,在视觉上表明了 追踪并没有丢失,并且手的虚无的外观表明它们不能用于操纵虚拟世界。
手部配准需要你的脑子“相信”你的虚拟角色的手 是你自己真实的手。当手部出现动画,或者在没有任何实际输入的情况下移动,会导致不适感。
· 但例外情况是,可以有用户输入所期望的快速动画。例如,当用户使用虚拟枪射击时,可以展现枪后坐力的动画。
本体感觉(的偏差)会导致不适感。你的大脑天生就知道你的肢体在物理空间中的位置,即使你没有真的看到它们。这种感觉系统是如此准确,以至于模拟前臂和肘部等虚拟肢体是很困难的。你可以看到虚拟肢体,但你无法感觉到它们(在没有触觉反馈的情况下),也无法使用本体感觉去定位它们。
通常,开发人员会尝试利用可追踪的手柄,去绑定IK手臂。但是这种解决方案通常会导致 渲染出的虚拟手臂位置与人的真实手臂之间不连续,而本体感觉可以检测到这点。有些文章中会写到,他们已经取得了非常可信的前臂和肘部,但事实上这是一个需要大量耐心和注意力的设计上的问题。不正确的手臂比没有手臂更糟糕。 所以我们通常建议:不要在手腕上方展示任何东西。
可追踪手柄可以为你提供虚拟手,但它们无法模拟操纵重物时的扭矩或阻力。一旦涉及到有重大阻力时,例如,举起沉重的岩石 或 拉动大杠杆——就会感觉不可信。然而,当涉及对象是轻量级物体时,我们本就不会有感到大阻力的预期。例如,轻拨灯的开关——这个动作是很容易(被人)相信的。
因此,在设计手部交互时,要考虑到人们操纵的物体所表观出的重量,并寻找弥补物理阻力不足的方法。
处理需要双手的交互时更要小心。当我们举起一个沉重的箱子或用双手握住干草叉时可能会感到奇怪,因为本该在双手之间有的实在的物理实体在VR中不存在。
在VR中拾取物体的最佳方法 是按照其原本的方式去拾取。想拿起一把枪时,没有人会想到去拿枪管;想拿一个咖啡杯时,没有人会有去拿杯底的预期。 当一个人试图拾取一个有明显拾取方式的物体时,你应该将物体按正确的对齐方式被拿到手中。当用户伸手拿枪,那么合上他们的手,完全按照他们的预期拿走枪。
我们不建议去拿需要变换握持姿态的物体,如乒乓球拍。打乒乓球时转手的过程可能会感觉不自然。拾取和握持物体的动作,我们建议使用Touch手柄上的grip按钮。
我们建议你尽量避免让用户从地板上拾取物品。 我们的传感器通常被放置在桌子上,如果用户弯下身拾取桌子高度以下的物体,传感器则可能被遮挡。有距抓取允许用户能抓取到 本身能够到的正常范围之外的物体(*用户手部不能直接触到物体时)。参考>有距抓取的技术文档>
一些物体没有明显的把手或握把(例如足球),而在按住grip键时 它们也应该被抓附到手上。 在这种情况下,物体与手之间的偏移和方向可以是任意的,但只要物体保持贴在手上 就会让人感觉可信。 此时你不需要对物体进行捕捉或修正——而只需要以grip键按下时的位置 将其固定在手上。
使用手柄来投掷物体会比想象中的难。 不同的物体应以不同的方式进行投掷。 例如,投掷飞盘 和 投掷纸飞机 就是完全不同的两种投掷动作。要想令这两个动作都可信,需要对每一个物体分别构建其物理规则,从而来控制投掷动作。在设计投掷物体的控制方案时,如果使用grip键进行抓取/释放,请务必小心。 你可以考虑使用trigger键进行需要“力”的投掷动作。在仅使用grip按钮的情况下,有观察显示,用户甚至会将Touch手柄直接扔出。
由爱奇艺VR设计团队编译
© iQIYI XRD
/ 未完待续 /
Powered by Froala Editor
大牛,别默默的看了,快登录帮我点评一下吧!:)
登录 立即注册