VR就是新的时尚,人人都这么说。VR当然是一种非常有趣的新技术,并且我觉得,我们依然在不断学习了解用它来创造体验的潜力。我享受过一些出色的VR体验,我觉得当主题合适时, VR能让人沉浸其中,感受无穷乐趣。但我也觉得我们需要去不断去挑战极限,不光在技术上,还在内容的创意上。一个项目不会只因为用了VR就是一个好项目。需要有出色的设计和实现才能最大程度利用这种新技术。
对我来说,VR有趣就是因为它需要我们用新的方式思考,并且用不同的思维来解决设计问题。
所以,当有人让我参加一个小型独立游戏《VR Regatta(VR 赛艇)》的工作时,我想看看这个项目到底有什么特别,又需要音频怎样工作才能带来最佳体验。
一个简单却优雅的概念让《VR Regatta》令人愉快而难以自拔
《VR Regatta》是一款航行游戏。游戏名基本说明了一切,但我试玩的一瞬间,就惊讶于这样一个相对简单的概念在VR里能如此让人愉快又难以自拔。我一开始用的是一艘小型单人艇,有一个手柄控制船舵,另一个手柄通过绳索和滑轮控制帆的拉力。通过这些控制,船就能按想法移动。我从没在现实中开过船,但还是觉得游戏非常好玩,而且让人无比沉浸。 在航行的时候你很少需要改变自己的位置,你可以向前倾或向后靠,也可以移动手臂,但除此之外基本就在这个小船里原地不动了。不过在40尺游艇里,你可以在航行时传送到船上不同的位置。
从声音的角度来说,每艘船在操作的过程中都会发出一系列特别的噪音,但整个体验中音频基本就是风声和水声的结合。所以,表面看来游戏的音频制作似乎只要在一个慵懒的下午,用几段循环底噪来表现这两个主要元素即可。但该项目的VR属性让音频能做到更多,并且比简单的立体声氛围带来的临场感明显得多。Wwise是创造这个音频系统的核心,这个系统让《VR Regatta》不光更富沉浸感,还做到了让声音指引玩家。
我在空间化音频方面进行研究和项目设计工作已经好几年了,曾供职于Magic Leap、Facebook Spatial Audio团队,还有一些VR开发者团队。空间化音频的很多方面我们现在仍然还在尝试掌握。我发现其中有些方面能在很大程度上影响到玩家开始体验时对世界的感觉。当我们进入一个世界的时候,第一件注意的事情就是空间感。这就是我研发所有VR项目的工作起点。我会创造一个空间化的“世界底噪”。通常对室外空间来说这会是开阔空间的风声,对室内是一种房间的嗡嗡声。我所使用的具体背景声会有改变,但整个的过程通常是非常类似的。
我会选择适合项目的声音内容,有些情况下可能是几乎听不见的风声, 而在《VR Regatta》中风声一般来说会大一点,因为“无风”是航行最糟的时候了。之后我为风声文件创建了一个简单的声音对象,设为循环。这样我就有了一个单声道风声循环。之后,通过编辑现有声音文件或引用另外3个合适的文件,我就创造出四个循环的风声源。 这些就是我的空间化世界底噪。
所有四个风声循环都被放置在同一个声音Event中,之后该Event会绑定到游戏中的听者上。我总会让程序员这样去做,以保证工程设置正确;但一般来说,该Event需要从Wwise听者所在的位置发声,这个位置基本永远是绑定到VR镜头的。我一般将这个Event称为Camera_Ambience。所有四个风声都会一直播放并保持循环。但我最终想要的结果是通过Wwise的 Position Source(声源定位)来实现的。
注意Listener Orientation没有勾选
每一个风声都设置为3D,没有衰减。在Position Source控制中,你必须取消Follow Listener Orientation的勾选。这意味着当VR头部追踪在跟踪玩家的头部动作时,循环风声的朝向不会改变,即它们在世界中的位置锁定不变。在3D User-defined Position Editor中,我为四个风声各自创建了独有的位置,分别位于正中听者的东、南、西、北方向。现在玩家有四个风声源包围着“虚拟”人头,那么当他们前后转头的时候,就会听到这四个风声源角度的变化。为了进一步强化这个效果,我还偏移了每个风声方位点的距离。所以北方可能设为5米,南是7米,东是4米,西是6米。这就让每个层次产生了微妙的区别。还可以通过改变每个风声源的输出音量来进一步强化这种区别效果。我的目标是创造出“差异性”,随着玩家转头,他们能听到自己相对于虚拟世界的角度改变,这就是关键。我们用一种微妙但明显的方式实现并强调了头部转动的动作。
我们大部分人在进入VR体验时都会试着转头,看看前后,让自己适应新环境。上述空间化世界底噪能瞬间强化转头的动作,就像我们在真实世界中的体验一样。随着我们转头,我们和周围世界的位置关系也在改变,会感觉好像是在一个开放的世界中。Wwise的技术能模仿这种真实世界中的空间感。我对《VR Regatta》里海的声音也做了类似处理。因为玩家视角是锁定在船内的,所以我可以为海的声音创造相同的效果。位于船周围的发声体会播放水花拍打船体的声音,进一步增强了玩家被风和水包围的感觉。当船开始移动时,会有额外的声音来强化移动感。
对于航行体验来说,风声不能只是环绕的循环声。虽然它们能在世界中提供空间感,但风本身也是航行的关键因素。所以, Camera_Ambience风声对象有一系列由RTPC控制的状态,可以按需增强或减弱风声的强度。那么随着风速增加时,围绕玩家的风将会从清风徐徐慢慢增加为狂风咆哮。在此基础上,我们还增加了一个有方向的风声对象,正好放置在朝玩家吹来的风向上。所以,他们周围全是风声,但会听到来自特定点的有方向的声源。随着他们前后转头,玩家能听到风吹来的方向。这让玩家能听到风,感觉到风的位置,并且在航行时掌好舵。
四个方位点的风声各有3个强度,而且每种强度都带两个RTPC控制
开发过程中,我们意识到实际的风声会因为人的朝向而听起来不同。如果你直面强风,那么在你耳旁的呼啸会很嘈杂。但如果你转向90度,让风直吹耳朵,它会变得柔软安静得让人意外。风经过我们耳朵的时候效果会被放大,产生了呼啸。我们给项目增加了另一个参数,追踪玩家的头部相对于风声源的位置,让风在你直接面对它的时候声音最大。随着你逐渐转身到90度,风声会变得轻柔。这强化了玩家弄清风向的能力。 所以理论上来说,你就算不看画面也能根据风向来开船了。
通过RTPC控制,有朝向的风声会根据头部转动而改变
上述过程中,我们也意识到,当迎风航行时因为顶着气流,风声听起来非常吵。但当顺风航行时,风声基本就没有了。所以我又增加了另一个RTPC对风声进行更多控制,模拟这种效果。全算上的话,《VR Regatta》光是控制玩家航行时对风的听感就使用了7个参数。在这种体验中,风的重要性基本相当于音频舞台上的明星了。
船头、左右船舷、船尾的尾迹声音都会依据船速和倾斜度做出响应
当船破浪前行时水面上会产生尾迹,我们还使用了其它参数来控制尾迹的输出音量。但还是一样的道理,因为是VR体验,所以值得为船的前后都加上尾迹声音,船的两侧也是如此。当你掌舵时,系统会检测你身体的动作,可以让自己和船倾斜一些,更接近水面(哪一侧都行),这时,因为水会超出船的边沿,较低一侧的水流声会变大。如果将船的姿态纠正为水平,那么侧面的尾迹声就会减少。所有这些元素都为体验的真实感做出了贡献。
我们用了10个 RTPC来控制风声和水声音频的回放
所以,即使是相对简单的体验,要控制不同音频元素、为玩家提供真实有趣氛围也是相当复杂的。环境元素,比如树上的鸟叫声,波涛拍岸的声音,还有晚上的虫鸣都增强了世界的感官,但相对于把风声和水声做到最好这样的复杂实现来说,还是比较简单的。
值得一提的是该项目使用了Auro®-HeadPhones™插件,这是一款Audiokinetic推荐的空间化音频解决方案。对此我实际上能说的也不多,原因很简单,就是它的激活和设置都非常简单,几乎不需要调试就能正常工作了。考虑到很多现有的空间化音频解决方案设置都很复杂,甚至功能并不可靠,Auro®-HeadPhones™插件使用起来可以说非常出色。就像音频在很多方面都是这样:在合适时感觉就是隐形的。而对这个项目来说,这款空间化插件就是天作之合。我把它的环绕声道设置为最大数目来提供最强的空间化临场感,它也出色地为《VR Regatta》的世界实现了画龙点睛。
概念简单并不意味着我们堆砌一些基础的声音设计就搞定了。《VR Regatta》成功的最大原因就是我们的团队采用了简单的概念,但使用了出色的画面,直观的控制对概念进行了装饰,并且用整体的打磨让极简之美闪耀光芒。《VR Regatta》的设计增强了整个体验的方方面面,尽可能做到让玩家感觉引人入胜。音频经常就是这样,如果我们工作完成得出色,大部分玩家都永远不会意识到它,但通过努力,我们能让世界栩栩如生,让我们创造的体验更加有趣。
评论