我非常喜欢开放世界游戏,并且会在游戏中四处探索时仔细观察周围环境。不仅如此,我常常还会思考它们与现实世界之间有什么相同和不同之处。我在日本待过三年:一年是在东京,两年是在青森县。我在日本注意到的一个主要方面就是环境如何随着季节更替和地点转移而变化。
日本的春天和夏天充满了生机,鸟儿们非常活跃。不过,从声音角度来说,这两个季节的显著特点是各种昆虫的叫声。白天知了聒噪无止无休,晚上蟋蟀鸣叫此起彼伏。它们共同谱写出了一曲颇具日本特色的昆虫之歌。很多到日本旅游的人并没注意到各个物种都有着自己独有的鸣叫音型和特定的栖息地点。比方说,你从日本南部出发走到东京,再往北走到东北地区,一路上就能听到各种不同的虫鸣声。并且,虫鸣声还会随着季节变化而变化。在发现这个规律之后,我再看日本电影就能分辨出它是在哪儿拍的、当时是什么季节、有没有虫鸣声。
为了能让玩家在游戏世界中多待上几个小时,我们常常会设计复杂多样的地形地貌和形形色色的生物群落。然而,我们为这些环境制作音频时在细节设计上下的功夫有时远不及视觉画面。我希望音频不仅要为 Gemea 世界增添更多生机,还要突显昼夜循环、季节交替和天气变化,让这个游戏世界充满活力。
《Yonder: The Cloud Catcher Chronicles》包含了 40 多种鸟叫声、虫鸣声和蛙叫声。我是不是做得太过了?或许。然而,我们正是凭此打造了一个融合动态环境系统并能体现各种状态变化的游戏世界。另外,为了支撑 Gemea 世界探索的整体叙事,我们还精心规划了每一种叫声的选择和实现方法。
音频调色板
作为起点,我想尽可能宽泛地选择音频内容。我本来就收集了一大批音效和庞大的个人录音库。最近,还不断在修复一些老的录音,以便使其符合游戏整合需要。录音甄选工作如同选择作曲中要使用的乐器一样。每一种声音都有符合特定情感状态的特点、质感和品质。选择最适合的蝉鸣声跟选择独奏中要使用的管乐器一样重要。
在几个月前,我就初步创建了一个动态环境系统。从技术角度来说,它在游戏中的运作以及产生的听觉效果都还不错。这一系列基本的鸟叫声和虫鸣声很适合游戏世界。我稍后将详细剖析这个系统的各种细节。不过考虑到音源内容选择的关键性,我想先重点说说这个方面。通过添加临时占位声音,我们可以对系统进行测试。在游戏世界逐渐成形的过程中,整个作品变得越来越完善。我会在游戏世界中待上好几个小时。其中,大部分时间都是在整合其余声音或对混音不断地进行平衡。不过,有时候也会像玩家一样在里面尽情探索。我会仔细倾听,并认真感受。
在对音频内容进行二次甄选时,我对各个生物群落就已经相当熟悉了,所以非常清楚自己想要什么。我要重新整理一遍原始音效素材。在这个过程中,我一般不看名称,只是客观地聆听。我会让声音把我带到它所属于的地方。有些声音让我想象到了充满生机的辽阔草原,有些则让我联想到人迹罕至的广袤荒野,还有些让我感觉仿佛身在炎热干燥的无边沙漠。在大部分情况下,这是因为这些声音来自于现实世界中栖息在相应环境下的生物。所以,与其浏览名称和描述,还不如真实地去感受。我想正是这种方式让在我音频内容甄选工作中做出了很多明智的选择。
我们之前一直在使用 Wwise 中的 State(状态)系统控制声音和音乐的各个方面。现在,已经有了“白天”和“夜晚”状态。但是,我希望在此基础上进一步扩充。于是,我们就增加了“黎明”和“黄昏”状态,以便在“白天”和“夜晚”这两个主要状态之间创建过渡点。然后,再把这种设计同时应用于音乐和音效。但是,每一种鸟儿和昆虫的叫声则需要跟不同时段对号入座,只有这样才能把它们跟我的真实感受对应起来。对我来说,有些鸟叫声听起来根本不像是在黎明时发出的叫声。它们给人的感觉更像是晌午时分鸟儿在头顶上空盘旋。因此,这些声音只有在“正午”状态生效时才会触发一次。同样地,有些虫鸣声会在黄昏时分触发,另一些则直到午夜降临才会触发。
在本例中,虫鸣声将在黄昏和夜间生效,然后在黎明到来时逐渐减弱。并且,这一特定物种只在春天和夏天活动。
各种鸟儿都有与之对应的鸟叫声,其触发率也各不相同。整个动态结构完全取决于当下设置的物种。小鸟一般比大鸟叫得更频繁。这样一个系统也方便我动态地调整触发率。比方说,我可以针对“黎明”和“黄昏”状态制造一种“百鸟齐鸣”的效果。这个时候鸟儿都叫得比较频繁。在这一天当中,触发率会逐渐下降。这样在晌午天气最热时鸟儿基本上就不叫了。
从季节角度来说,我将很多鸟儿设为在动物争相交配的春天最为活跃,然后在夏天稍微不那么活跃,而在有些生物群落干脆把它们都改换成了爱聒噪的夏虫。在有些生物群落,同一种鸟儿在春夏秋三季一直活跃,然后在寒冬时节便安静下来。在其他生物群落,某一只鸟儿可能只在春天活跃,然后在其他月份中别的鸟儿和昆虫则变得更爱鸣叫。
Grasslands_Birds 下设有四种鸟儿。在本例中,我们展开了 BellsVireo。可以看到其中包含 16 个声音文件,构成了这种鸟儿的声音库。每一种鸟儿都有不同数量的声音文件(因鸟儿的种类和现有声音文件而异)。
利用 Wwise 的 State 系统,我可以轻松分配每一物种对象并进行微调。这样不仅能做到一一对应,还能实现巧妙的融合。另外,还有个有用的整合技巧:将所有特定生物群落的声音对象全部添加到同一 Event(事件)中。我在 Unity 中整合时用到的主要游戏对象是针对特定生物群落的树木。其中,每个生物群落都有自己特有的树木种类。考虑到鸟儿和昆虫一般都会聚集在树木上,所以这从叙事角度来说是合乎情理的。这样就可以将这些遍布整个游戏世界的树木对象设为发声体。如此一来,我只需将一个事件绑定到某种树木预设,系统就会把它应用到整个游戏世界中(这一点很重要,因为这样玩家在收集植物种子后就能把它们种在游戏世界中其他任何地方)。
刚开始,我会同时将“鸟类”和“昆虫”事件与每一树木预设关联。后来,才发现其实可以简化操作。因为,一个 Wwise 事件可以包含多个声音对象。我完全可以将生活在某一生物群落的每一种不同的鸟儿和昆虫放入同一事件,然后与对应树木预设关联。有了状态系统,即使同一事件中包含 4-6 个声音对象,各个对象也只会在特定的“白天”、“夜晚”和“季节”状态下播放。另外,每一对象都可以有自己独特的效果器和衰减行为。再者,各个物种的衰减范围也都可以进行微调,并在游戏世界中呈现出独一无二的表现。
同一事件可包含所有声音对象,方便为某一生物群落生成空间化环境声。该事件中的各个对象只有在达到相应状态时才会触发。因此,即便这里包含 6 个声音对象,每次一般也只会播放其中一个。如此一来,在系统定义完成后便可轻松整合到游戏中。
当你在游戏世界中穿梭时,周围都是真实的空间环境。树木内可能藏有两种或三种不同的鸟儿,每种鸟儿都设有一套对应的鸟叫声。如此一来,整个系统就会形成一个空间动态环境。假如你砍倒一棵可供采伐的树木,它就会停止发出与之相关的声音。假如你把整个生物群落的树木都砍光了,环境音效也会随之消失。
另外,每个生物群落还有飞在空中的鸟儿。虽然它们只是一些非常简单的动画模型,但是也都有与之关联的声音。因此,它们在空中飞过时就会发出零星的鸟叫声。这一最终元素进一步增添了游戏世界的活力和生机。
同时,每种地形的天气系统也都是独一无二的。不仅有所有地形通用的风声,还有森林环境特有的风吹树叶声。这种声音由与之关联的树木发出。在森林地区,雨声是雨滴打在树叶上的声音;在草原地区,则是细雨落在地上的声音。与其他环境类型相比,高山和沙漠地区则有着迥然不同的风声。为了辅助支撑整体叙事,所有这些选择都运用了同一种方法:“真实感受”法。
假如想让玩家在冬天和雪地生物群落感受到寒冷,或者在沙漠中感受到炎热干燥,那么让音频为视觉效果提供全面支持无疑会是一个更有成效的做法。事实上,音频往往比视觉变化更能引起玩家共鸣并触发某些情绪感受。注意,除简单的飞鸟模型外,所有这些鸟儿或昆虫都不是游戏中真实存在的对象,只有它们的声音存在而已。所以,游戏世界中形形色色的生命形式因为音频才有了存在意义。就这点而言,我必须为 Gamea 世界设计并创建大量生态系统。最终,我就是采用这种方法构建了一个郁郁葱葱的草原环境,免去了创建各种模型并进行复杂编程的麻烦。
我在为《Yonder: The Cloud Catcher Chronicles》创建环境音频时采用的所有方法都得益于 VR/AR/MR 整合研究中获得的经验。在 New Reality(译注:包括 VR、AR 和 XR 在内的媒体形式)中,我们努力构建更为精细的空间环境;我们希望玩家能浸入这些游戏世界,并获得更加欢畅的游戏体验。不仅如此,我还发现这些技巧有时同样适用于“传统画面”形式的游戏世界。比方说,移动摄像机会产生类似“天旋地转”的音频效果,就跟 VR 中采用的头部跟踪产生的效果一样。这是因为所有天气音效(如风声和雨声)都是按照四方位罗经点设置的,而整个游戏中特定环境下的鸟儿和昆虫又都是绑定在相应树木上的。所以,从很多方面来说,Gemea 都是一个动态虚拟环境。有了它,相信玩家一定能获得更加欢畅愉悦的游戏体验。
评论