游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5095|回复: 0

利用用户体验设计对抗虚拟现实眩晕

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32024
发表于 2017-5-3 10:55:39 | 显示全部楼层 |阅读模式
  文/Matt Rebong

  简介

  虚拟现实 (VR) 游戏成为了游戏开发的一个新趋势,唤起了每位创新型开发人员的热情。 在这个全新的领域中,独一无二的游戏机制具有无限的可能。 然而,随着越来越多的游戏开发人员由传统游戏开发迁移至虚拟现实,有一个问题正日益限制创新的自由。 恶心,业内称之为“虚拟现实眩晕” (VRS),是目前虚拟现实游戏开发人员面临的最大障碍,这一点并不奇怪:它是技术新手掌握该技术的最大障碍之一。

  作为独立开发人员,我们在 Well Told Entertainment* 公司时发现,用户体验设计是创建令人满意的虚拟现实体验的重中之重。 不管是需要保持稳定的帧速率,还是提高用户在虚拟世界中的舒适度,我们的目标是,确保所有人——从虚拟现实领域的新手到经验丰富的玩家——都有极致的体验。 但是该领域缺少专家。 在虚拟现实游戏设计公司工作一年后,我们开始逐渐了解如何帮助各种用户掌握虚拟现实技术基础,我们想和大家分享一些代码、着色技术和设计原则,让更多的人体验制作精良的虚拟现实技术。

  Well Told Entertainment* 和虚拟现实学习

  我们对虚拟现实的探索源于对远距传动中的交替运动方案非常好奇。 除了严格的空间定位体验,虚拟现实用户过去和现在都在追求通过更独特更智能的方式逃离空间定位,不必“自杀”或忍受仿佛漂在海上似的眩晕感。 在 2016 年年初,我们有幸见证了新一轮的虚拟现实游戏浪潮,但是,当在查看了 VRS 报告后,我们和其他虚拟现实新手一样充满了怀疑。 当我们通过论坛得知远距传动可以解决这个问题时,非常期待能够试玩 The Lab*、Rec Room* 和 Budget Cuts*等游戏。 尽管这些游戏本身提供出色的虚拟现实体验,而且远距传动对 VRS 比较有效,但是我们仍旧觉得有什么不对。 最后,问题可以归结为虚拟现实中的远距传动破坏了浸入式体验(尤其和故事情节不相关时)。 当我们了解了虚拟现实最卓越的品质就是真实的浸入式体验后,我们开始研究如何为动态解决方案添砖加瓦。

  和其他有强烈求知欲的开发人员一样,我们通过详细了解 Reddit* 论坛开始入门。 (r/vive、r/virtualreality 和 r/oculus 中有许多卓越开发人员分享他们在独立开发领域取得的进步。 在我们看来,这是调查、寻找创新型解决方案的最佳起点。) 2016 年夏天,动作方案成为了最热门的话题,我们注意到许多开发人员开始在线分享他们的意见和演示。 我阅读了一些技术,如攀登方案,该方案通过控制器移动角色,挥动手臂时角色前进,甚至可以将控制器放置于腰带环上,当您跳跃时,人物也会跟着前进(相当于一台计步器)。 基于调查,我们找到了解决问题的独特方法,并形成了自己的假设。 经过一个月的随机测试后(测试由 Vincent Wing 执行,他是一名可靠的开发人员),我们开始取得进展。 基于研究,我们找到了在不影响动态移动和交互式游戏体验的同时,对抗 VRS 的几个最佳实践,如下所示。

  注重虚拟现实中的用户体验

  六月底,我和我的联合创始人 Sam Warner 赶往 Playa Vista 参加了由交互设计协会举办的虚拟现实活动。 尽管活动的主题是虚拟现实,但是在众多参会者中,我们是唯一的非专业 UX 设计师,这对我们之间的交流造成了一点阻碍。 但是,我们非常高兴能在 Andrew Cochrane 的演示中发现极大的价值,Andrew Cochrane 是一名演讲嘉宾,也是一名新媒体总监。 Cochrane 专注于分享他在虚拟现实内容创新方面的见解,当晚,我们根据他的见解强化了我们的虚拟现实设计方法。

  大多数研究虚拟现实的开发人员都有游戏开发或电影制作背景,或来自主要围绕故事叙述的媒体。 Cochrane 详细虚拟现实技术不需要叙述故事, 相反,虚拟现实是一个体验性媒体,身处其中的每个人都是体验设计师。 在游戏或电影中,设计师能够根据用户的需求更改故事, 他们遵循故事表演的结构,使用剪辑和特效吸引用户的注意,并能激起他们的情绪响应。 但是,虚拟现实的目标是为观众提供完全的浸入式体验,以激起他们的情绪响应, 因此,必须确保用户在虚拟空间中有较强的临场感,这点非常重要。 和传统介质相比,开发虚拟现实要求浸入式体验效果越强越好,这个要求使开发人员承担了更大的责任。 根据我们的移动设计经验,如果您想减少浸入式体验中断、避免虚拟现实眩晕,我们的建议是为玩家提供强大的可视参考。

  空间定向

  为了在虚拟现实中创建出色的临场感,第一步需要让玩家熟悉周围的环境。 尽管移动被认为是引起 VRS 的主要原因,但是戴上头盔后,便会产生眩晕,因为玩家实际戴上了一个眼罩。 遮住双眼对人的平衡性会产生很大的影响。 请您试试这个:站起来并闭上眼睛。 尽管最初看起来非常简单,但是许多人在短时间内便开始站不稳, 有人甚至摔倒了。 这是因为平衡极度依赖视觉参考和深度感知。 视觉消失后,身体便开始通过主体感觉维持平衡,每个人主体感觉的能力各不相同。 人们在虚拟世界中开启奇妙的游戏体验前,较强的空间感知是必不可少的。

combat-vr-sickness.jpg

  开发 Vapor Riders ‘99*(Vapor Riders ‘99 是一款滑雪/ 滑行竞技游戏)的过程中,我们发现用户以脚下的地面作为参考时,将有效减轻 VRS。 玩家第一次进入游戏时,确保他们能看清脚下的道路、前的方距离和周围的环境。 然而,鉴于游戏的竞技性质,我们需要进一步对 Vapor Riders ‘99 的地面参考进行完善。 我们在 2016 年洛杉矶虚拟现实展会 上首次公开测试该游戏时,有些用户表示不适应距离地面的高度,尤其是高个子玩家。 为了解决这个问题,在开始游戏前,我们启动了一个简单的高度校准系统,效果还不错。 以下是面向 Unity* 软件的脚本,您可以在自己的游戏中运行这个脚本。

  Vapor Riders‘99*演示视频:https://vimeo.com/175480598

  我们利用 UpdateTPoseInfo() 和 ScaleAvatar() 函数计算并设置玩家身高和臂展。 第一个函数检测玩家头部与地面的位置,还检查两个控制器之间的距离。 计算距离前,玩家需呈 T 型姿态, 否则,将很难获得关于玩家体型的准确信息。

  基于 UpdateTPoseInfo() 收集的尺寸信息,利用 ScaleAvatar() 制作实际玩家的预制件。 我们根据收集的尺寸对玩家的默认尺寸进行分类,然后在 new Vector2 预制件的 X 和Y 轴上设置局部比例。 本游戏无需设置玩家的 z 轴的比例。

  该系统支持我们确定“默认”玩家位置和当前身体位置的差异。 Vapor Riders 根据头部和手的位置来确定速度和移动方向,如果您想为不同尺寸和体型的玩家提供一致的游戏体验,这是非常重要的一步。
  1. void UpdateTPoseInfo()
  2.     {
  3.         if (!leftWrist)
  4.             leftWrist = manager.leftController.transform.Find("LControllerWrist");
  5.         if(!rightWrist)
  6.             rightWrist = manager.rightController.transform.Find("RControllerWrist");

  7.         Manager.Instance.playerHeight = eyes.position.y - playspaceFloor.position.y;
  8.         Manager.Instance.playerWingspan = Vector3.Distance(leftWrist.position, rightWrist.position);
  9.     }

  10.     void ScaleAvatar()
  11.     {
  12.         float avatarHeight = eyes.position.y - avatarFoot.position.y;
  13.         float avatarWidth = Vector3.Distance(avatarLeftWrist.position, avatarRightWrist.position);
  14.         Vector2 scaleFactor = new Vector2(Manager.Instance.playerHeight / avatarHeight, Manager.Instance.playerWingspan / avatarWidth);
  15.         avatar.localScale = new Vector3(initAvatarScale.x * scaleFactor.x, initAvatarScale.y * scaleFactor.y, initAvatarScale.z);
  16.     }
复制代码

  我们不完全明白为什么这个游戏中,玩家的身高对眩晕产生这么大的影响, 最终我们认为这取决于与非交通工具移动和平视显示器 (HUD) 相关的几个因素。

  在 10 月份,我们开始开发一个简单的恐怖密室逃脱游戏,并将其命名为Escape Bloody Mary*。 在该游戏中,您可以扮演一个被锁在浴室里的儿童,尽力逃离恶魔。 这个游戏的目标之一就是让玩家体验儿童的视角,并且无需处理我们在 Vapor Riders ‘99 中面临的身高问题。 我们保持了玩家的身高比,然后根据头盔到地面的距离确定房间内全部物品的比例,无需缩小玩家,让他们在浴室里感到渺小。 通过这种方式,玩家看到的都是经过设置的物品,在不影响到地面的参考点的同时产生变小了的感觉。

  级别设计

  玩家移动的空间和移动方案本身一样重要,尤其在虚拟现实中。 测试 Vapor Riders ‘99 时,我们了解玩家和不同测试道路的交互方式。 设计道路时,我们想确定最佳的道路路线,使玩家不会厌烦。 玩家开始游戏时,会沿着 x 轴不断地左转、右转,一开始转弯较为平缓,逐渐变为急转弯, 然后,玩家主要沿着 z 轴上坡、下坡。 用户反馈显示用户更习惯道路的后半部分,而不是道路的前半部分。 排除故障后,我们开始明白其中的原因, 这不是因为相比左转和右转,用户更倾向于上坡、下坡运动(尽管飞行会带来无限的乐趣), 造成不适的原因是我们无法使用户适应该级别的中断因素。 为了避免加速运动时的眩晕,玩家必须一直保持参考点,知道自己的前进方向和到达时间。 刚开始测试道路时,由于玩家快速通过逐渐急转的转弯,无法注意前方的道路, 看不到前方的环境使他们措手不及,无法在前进的道路上保持平衡感—这是快速游戏中需要重视的问题。

  常见的高效运动方案

  除了远距传动,还有几个运动方案能够解决虚拟现实中的移动和眩晕问题, 最受欢迎的一种方案是 dashing(猛冲)。 Dashing 和远距传动非常相似,除了后者使玩家从一个地点到达下一个地点,而前者使玩家快速飞奔至指定的目标。 这种运动类型在 Raw Data* 游戏中得到了良好的运用。 相比远距传动,dashing 的最大优势在于用户永远不会失去参考点,他们不需要重新调整自己,就能到达新的地方,大家都非常喜欢这个改进。

  例如,在 Vapor Riders ‘99 中,以车辆作为交通设备,进行快速移动,dashing 在最受玩家欢迎的几款游戏中发挥了理想的效果。 Vapor Riders ‘99 的目标是实现非交通工具式的快速运动,然而,交通工具的引入为虚拟现实游戏设计带来了独特的优势。 首先,它为玩家提供了保持平衡的视觉参考点。 尽管周围的事物都在移动,但是玩家可以不断调整自己,适应车辆,跟开车没有太大区别。 Hover Junkers* 等游戏将这个方案运用得非常娴熟,特别是因为 Hover Junkers 中的车辆还拥有一个视野开阔的大平台。

  优化

  很早就有人提出,保持稳定的 60fps/120hz 是避免虚拟现实内容眩晕的必要基准。 低于这个基准,会使用户感到帧到头部的位置偏差,引起明显的卡滞。 开发 Escape Bloody Mary 的过程中,我们很快发现空间定位游戏也很难满足整个场景的特定引擎特性。

  在项目的初始阶段,我们知道如果我们想要实现技术或艺术方面的目标,需要避免特性蠕动轴的剧烈偏移。 我们想在墙上安装一面大镜子,反射全部的灯光、角色、道具和静态对象。 我们需要随时随地使用灯光,以管理环境和紧张气氛。 我们还计划为 Bloody Mary 4 设计几片布料,让她看起来更遮掩、更漂浮。 当她从镜子中走出时,我们需要她与玩家一对一的距离越近越好,以增强浸入式体验,这意味着在同一个场景中始终需要保持两个相同的人物。

  为了在游戏中尽可能流畅地展现这些构想,我们需要设置几个小系统。 对于灯光管理,我们创建了初始的签入、签出系统,在场景中可以根据需要移动灯光,更改它们的设置。 我们发现由于灯光被镜子反射后变成之前的两倍,切换灯光的开关状态对效果造成了巨大破坏,因此,我们需要移动灯光,移动的数量占通常情况下浴室场景可渲染灯光的一半。

  最终,我们还降低了许多远程纹理的分辨率,使镜子能够轻松处理整个场景副本。 复制灯光管理系统后,将获得稳定的环境,能够调整灯光、点燃四颗蜡烛、控制动态手电筒的开关、发射子弹以及保留几盏室内环境灯,用来管理游戏效果。

  两个 Bloody Mary 总共运行四片活跃布料模拟。 当 Mary 开始在镜子中走出时,关闭旧 Mary 的模拟,激活从镜子中走出的 Mary 身上的布料。 利用有限状态机同步两个 Mary 的动画,确保她们始终保持动作一致。 这两个系统支持我们随时对她进行远距传动和生成,无论她在哪里,都会保持相当稳定的帧速率。

  声效将一切融合在一起

  任何游戏的收尾步骤都是声效,声效使全部因素变得逼真。 在电影屏幕上移动的任何事物,不管该事物多么微不足道,都需要各自的声效。 游戏进一步增强了声效,这是因为玩家的动作也带有声效,如脚步声和呼吸。 但是由于不明原因,这个原则通常在虚拟现实游戏开发中被忽视。

  自适应配音可以高效地将声音融入缺少配音的动作中,音效由用户输入引发,与声道的节奏相匹配。 Thumper* 是一个绝佳示例。 我们的长期目标之一就是为 Vapor Riders ’99 添加自适应配音,为用户提供音频参考,帮助用户了解他们如何影响基于控制器位置的定向移动。

  总结清单

  基于为用户创建更好的浸入式体验的理念,制定决策。

  在玩家体验游戏前,确保他们获取了对地面的准确参考点。

  使用户放松地体验游戏。

  在设计级别时,确保玩家在快速响应时(尤其在运动时),能够了解将要出现的环境。

  在快速游戏中,车辆有助于提供参考点。

  随时进行优化,避免帧延迟。

  为您的动作和交互添加音效。 在适当的情况下考虑适应性配音。

  现在,把我们的建议都置之脑后吧

  好吧,您不必这么做。 . . 但是,我们想鼓励游戏开发人员打破思维定式,寻找最适合游戏风格的移动方案。 Vapor Riders ‘99 是经过反复的随机实验而创建的副产品。 我们开始测试动作方案,无意中发现了有趣的事情,以及解决眩晕的方法,并基于此开发了一款游戏。 这就是虚拟现实的魅力,引领我们进入未知的领域,我们期待成为更出色的开发人员。 只有勇于承担风险,才能创建更富有创新性的解决方案和工具,现在正是虚拟现实发展的初期,我们迫不及待地看到更多的突破!

  参考资料

  英特尔 Developer Mesh – https://devmesh.intel.com/
  Sam - https://devmesh.intel.com/users/14426
  Vapor Riders ‘99 - https://devmesh.intel.com/projects/vapor-riders-99
  https://motherboard.vice.com/rea ... ckness-in-vr-gaming
  Escape Bloody Mary - http://store.steampowered.com/app/544530
  The Lab - http://store.steampowered.com/app/450390/
  Budget Cuts - http://store.steampowered.com/app/400940/
  Thumper - http://store.steampowered.com/app/356400/
  Rec Room - http://store.steampowered.com/app/471710/
  Raw Data - http://store.steampowered.com/app/436320/
  Hover Junkers - http://store.steampowered.com/app/380220/
  Reddit - https://www.reddit.com/r/Vive/
  https://www.reddit.com/r/virtualreality/
  https://www.reddit.com/r/oculus/
  IxDA event - http://www.andrew-cochrane.com/biography/
  https://www.meetup.com/UXPALA/events/231750013/
  http://ixda.org/
  http://www.virtualrealityla.com/

via:英特尔官网

相关阅读:CCP公司CEO:看待VR市场要从不同角度

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-1 21:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表