欢迎光临散文网 会员登陆 & 注册

如何设计动态的游戏音频混音

2023-03-23 15:20 作者:Satieadherent  | 我要投稿


Illustration: Daniel Zender

使用动态音频混音的游戏可以为玩家提供真正身临其境的体验

让我们设想如下情景:玩家正在穿过一片热带雨林。他们听到了周围的环境噪音,其间零星地穿插着一些单发的声音,同时他们还可以听到自己的脚步声。突然,他们的任务目标更新了,屏幕上出现了一个UI提示伴随着音效。当玩家深入雨林时,分配给该地区的环境音乐开始播放。

随着玩家的继续前行,他们听到自己踩过树叶和不同的地面类型的脚步声。突然,敌人的脚步声在不远处响起,接着一场冲突爆发了。人物们相互喊叫着,到处跑动,枪声在雨林中回响。由于后台混响插件的作用,所有这些环境音效似乎都来自同一个物理空间。

突然间,声景变得更加复杂和广阔。尽管这个例子是考虑的开放世界中该设计的音效和声景,但这个例子可以引申应用于多种游戏类型。所有在世界中被触发的声音都需要以合乎逻辑,声音优美的方式来控制并传递给玩家。解决这个问题的第一种方法是通过一个简单的策略 -- 组织

1. 组织混音总线(Organize Mixer Buses)

在 DAW[1]中创建歌曲时,通常的混音组织方法是按照乐器或功能进行分组。在处理游戏音频时也可以应用相同的方式。音频中间件[2]以及游戏引擎都具有混音功能,其行为方式与在DAW 非常相似。

《蔚蓝》项目中的FMOD界面

这里的方式与为歌曲构建混音结构的方式相同。同类型的音效应该放置在同一混音总线结构中。就像在处理大型编排时一样,从大的声音类别中逐渐细分出更加具体的类别。

通常,在为游戏设计混音总线结构时,最好采用分层的“Top-Down” [自上而下]方法。这将有利于稍后对更大的声音类别进行全面的更改。下图专用于角色声音的混音总线示例。

角色声音混音总线

如图所示,所有角色相关的走路和动作声音都可以放置在同一个父总线中。在这个父类别中,我们可以将角色声音分成几个不同的子类别,比如玩家声音、敌人声音、玩家拟声[3]、玩家脚步声、敌人拟声、敌人脚步声等。

1.1 如何考虑组织混音总线

如果需要,设计师可以通过将拟音和脚步声按照特定特征(如表面类型)分离,使组别更加精细。在这样的布局中,应用于顶层“角色”总线的任何混音规则或插件都将影响所有后续子总线。同样,可以向这些子总线添加规则集[4]和插件,以影响更小的子组的更具体的行为。

组织混音总线可以有许多不同的方法。虽然存在一些经过验证的方法,但混音总线结构可以完全取决于游戏的类型。在上面的示例中,就需要由设计师决定什么可以被算作“角色声音”。例如,在我们的示例中,设计师可以不将武器声音放置在角色类别中,而可能将武器效果放置在一个独立的混音类别中。

1.2 选择组织混音总线的方式是一件很重要的事

当然,有时候将武器或玩家能力放置在角色总线下也是有意义的。哪一种方式最适合正在开发的项目?这是游戏音频设计师要做出的选择。您可能已经明白,组织方法是一件很重要的事。一旦层次结构到位,设计师便可以轻松地为游戏的大部分添加规则集和效果。

2. 在混音组上添加插件

就像音乐制作人会在DAW中的混音组上添加混响插件一样,游戏音频设计师通常也会想要将混响插件添加到不同的混音组中,以改变声音在整个游戏世界中的传播方式,这就是组织这一行为体现重要性的地方。混响将根据玩家的位置影响大量的声音。在下图中,您可以看到有一个名为“World”的混音组,和其中包含的其他子类别。

“World“混音组

这个更大的组包含了大部分diegetic声音(发生在游戏世界中的声音),在这种情况下,这些声音应该会受到World的混响设置的影响。现在,我们可以向World总线中开始添加混响插件了,或者创建一个包含该效果的辅助发送(auxiliary send)。使用两种方法,结果都是相同的,父总线以及包含的子组中的所有声音都将受到混响的影响。

3. 游戏中的混响行为(Reverb Behavior)

在游戏中应用的混响[5]通常是由一个称为混响区域(Reverb Zone)的游戏对象来确定的。混响区域可以以多种方式被理解和应用于引擎中。简单来解释,混响区域就是触发区域。一旦玩家进入这个触发区域,就会向音频引擎发送消息以启用必要的混响效果。

下图展示了游戏引擎中的一个混响区域的示例:

Unity中的触发区域,表现了游戏中洞穴的混响区域

一旦玩家进入该混响区域,相应位置的混响设置就需要被正确地应用到对应的混响插件上。这些设置通常由混音状态来决定。

4. 混音状态(Mix States)

在游戏音频中间件中,混音状态可以被视为一种预设,以保存混音总线上插件设置。当玩家进入我们游戏示例中雨林的混响区域时,将触发与雨林环境相对应的混音状态。同样,如果玩家进入包含不同混响区域的位置,例如仓库,这将触发与仓库环境相关联的混音状态。这个功能使得单个混响插件可以对应于多种不同的预设,并且一个混音组可以通过不同的混响通道发送音频。

4.1 混音状态的多功能性

混音状态的用途不仅限于混响,还可以用于任何需要将实时效果与特定游戏状态相关联的情况。例如,当玩家的生命值较低时,设计师希望在World音效中添加低通滤波器[6]并淡入(Fade in)心跳声效果。这可以通过多种方式实现。在下图的示例中,滤波器插件上的低通频率值与World混音组中的“玩家生命值”参数相关联。

“World”总线上的低通滤波器随着玩家生命值的降低而变得明显

此外,还可以在循环心跳声上放置音量调制,这样只有在特定的混音状态下才能听到。通过制定这些规则,游戏音频设计师可以通过创建动态混音,并不断调整以最好地服务于当前游戏玩法的情境。

5. 声音限制和优先级(Voice Limiting and Prioritization)

正确地使用混音组织和混音状态可以大大提高游戏的声音表现,从而将一个听起来比较好的游戏变成一个听起来非常好的游戏。然而,在本文开头描述的游戏情景中,我们有许多声音组同时从数十个(甚至数百个)发射器中发出。请记住,游戏中的每个角色和每个武器都有自己的发射器和相应的声音实例。如果玩家要面对多个敌人,每个敌人都有自己的发射器,声音景观很快就会增加。此外,如果还加入了像武器或车辆这样的其他组,我们的声音世界很快就会失控。

5.1 时刻关注CPU使用率

一旦混音层次结构组织好了,我们就需要考虑如何限制声音。这非常重要,因为游戏中发生的每个声音实例都会直接影响音频引擎使用的 CPU 量。如果 CPU 使用率开始变得太高,声音就会延迟,如果情况变得更加严重,可能会减慢游戏的帧率[7]。通常,游戏音频中间件中的分析器会帮助您监视 CPU 使用情况,以便得知哪些实例可以通过限制声音数量来优化。即使您没有使用中间件,许多游戏引擎也有自己内置的分析器。

《蔚蓝》项目中的FMOD分析器

通过分析游戏中存在的不同游戏循环,设计师可以开始推断出是否有过多音频实例的冗余混音组,并着手开始限制它们。

5.2 声音和“两个半“法则(Voices and the Law of “two-and-a-half”)

在游戏音频领域中,“voice”指的是单个声音实例。当面对一个声音景观中存在大量“voices”时,很难判断哪些声音应该被消除以提高性能。

在这种情况下,设计师需要考虑的问题是:“玩家在这个游戏过程中最关注的是什么?”,回答这个问题的一个方法是参考Walter Murch的“两个半”法则。总结一下,这个法则规定,当屏幕上有两个可见的主体时,这两个主体所对应的声音需要与主体的运动完美同步。然而,当主体超过两个时,任何不同主体的声音同步之间没有优劣之分[8]这个法则在考虑脚步声时最有效,但也可以应用于其他情况,特别是在电子游戏中。

有了这个想法,游戏音频设计师就可以确定在某个时刻需要听到每个混音组中的多少声音。例如,在一场枪战中,玩家真正需要同时听到多少个敌方武器声音?如果在一次战斗中有三个或更多敌人,那么最有可能的答案是,需要关注定位最重要的两个敌方武器声音。在这种情况下,额外的武器声音只会用来填充音景。这种限制理论也可以应用于诸如车辆之类的混音组。应该同时清晰听到多少辆车?

在游戏的整体范围内,这个原则可以应用于存在于游戏世界中的许多声音。限制声音不仅可以提高游戏的整体性能,还有额外的好处,可以让混音听起来更加清晰。

5.3 优先级

如上所述,在任何游戏场景中,可能会同时触发数百个发射器。每个发射器都包含自己的音频声音和额外的声音层。限制混音组和单独的音效类型确实有所帮助,但这只是整体的一部分。为了创建一个清晰、连贯的混音,同时不过载 CPU,游戏音频设计师需要定义游戏中最重要的声音。这就是优先级的作用所在。

Wwise 中声音的优先级选项

如果没有适当的优先级设置,当声音引擎在一个给定的帧中触发了最大数量的声音,它会开始不加选择地限制声音。为了防止意外截断,设计师有必要选择出其中最重要的声音。这可能因游戏类型而异,但有一些经验规则可以帮助定义游戏中最高优先级的声音。

5.4 如何决定优先级

第一优先级通常是原声音乐。由于原声音乐是“2D”的且一直存在于游戏世界中,在密集的动作序列中意外被切断音乐将会是很糟糕的。因此,原声音乐应始终位于最高优先级。同样适用的是重要的UI提示音,无论是从游戏玩法还是无障碍性的角度考虑都很重要。例如,像“ping”系统这样的提示音在激烈的战斗中应始终可听到。

现在,容易处理的声音已经处理完毕,接下来就会变得更加微妙。首先,与玩家角色直接相关并且在屏幕上可见的声音应始终具有高优先级。例如,在一个具有固定角色的第三人称游戏中,这可能包括从脚步声到施法和武器开火声等一切声音,因为它们的缺失会破坏玩家的沉浸感。

处理了玩家的声音之后,就需要把注意力转向游戏的其他方面。请注意,这里给出的考虑内容可能严重依赖于游戏玩法。例如,玩家正在进行一个设计好的战斗场景,在场景中他们听到了适量的枪声、敌人的脚步声和语音。然后,一个大物体开始在远处移动,引起了玩家的注意。这个物体对战斗场景有多重要?这个物体是任务中重要的叙事物体吗?是否发生了破坏?这些都是非常微妙和难以处理的问题,但这都与正确的混音总线组织有关。

在上述情景中,设计师可能会建立两个独立的“物体”混音组,一个指定为基于故事驱动的物体,另一个指定为世界物体。在这种情况下,基于故事驱动的物体可能会被指定为更高优先级的类别,以确保它们在需要时总是触发。相反,如果涉及的物体在远处,不那么重要的世界物体可能会在激烈的战斗中被从声景中移除。

6. 虚拟化(Virtualization)

我们已经谈论了很多关于性能原因而限制声音的内容,但是还没有涉及到不同类型的限制。有些情况下,声音根本不能播放,有些情况下声音会被打断,甚至有时声音会被虚拟化。

虚拟化是一个过程,引擎会跟踪与声音相关的所有数据,但声音本身却不会播放。当一个声音被激活时,首先检查它的限制参数。如果不应该播放,则将其虚拟化。同样,如果一个声音正在播放但应该被一个更高优先级的声音取代,它也可以被虚拟化,以便它之后在它离开的地方继续进行,但实际的声音不再被听到。

这样做可以节省大量的处理开销,但仍会占用一定的 CPU使用率 。这是因为声音的时间线位置仍在被跟踪,并且如果突然不再需要限制,需要进行额外的操作才能开始恢复播放。因此,这种优化最适合用于循环播放的声音,这些声音很可能会在限制状态之间来回切换 - 比如循环环境声音或车辆引擎声。

在一次性声音的情况下,因为它们只是短暂的一次性播放,最好通过中断它们或根本不播放来完全限制它们的声音。设计师不希望使用CPU资源来跟踪一个即将结束的声音的时间轴;在限制条件过期时,很有可能会触发新的声音实例。在这种情况下,玩家在游戏过程中很可能不会注意到其重新启动、中断或完全不存在的情况。

游戏音频引擎有时是按照这种设计构建的,即在限制的情况下,一次性声音将从播放队列中消除,而循环声音将被虚拟化。然而,有时优化选择会留给设计师决定。这让设计师能够实现根据其游戏的专门优化。

Wwise 中声音的虚拟化选项

结论

创建一个连贯的游戏音频环境时,重要的是要记住,声音景观的每个元素在游戏过程中都会与玩家互动。就像混音歌曲一样,重要的是考虑这些部分是否有利于整体。一组声音在独自听起来很好,但与游戏的其他部分不协调,这将对游戏的整体音频产生不利影响。请牢记,音频服务于游戏玩法。音频、混音和实现策略应该将衬托玩家在游戏中的体验作为第一目标,并减少突兀感,尽可能达到如同自然存在的声音一般。

作者:Rony Mraz 著于2021.2.8

  • Avalanche Studios音效设计师

  • 纽约大学斯坦哈特分校兼职教师

  • 代表作:《正当防卫4》及DLC

译者:Satieadherent 译于2023.3.21

一些“后话”

首先感谢你能看到最后,希望这篇文章的翻译能让你满意。如果文中有错误请尽管指出,谢谢!

关于这篇文章是我在搜索动态混音时偶然发现的,在这之前通过Marshell Mcgee分析守望先锋中枪声与脚步优先级关系的视频中对动态混音有了一定了解,便产生了兴趣。Rony这篇《如何设计动态的游戏音频混音》从一个设想的游戏情景入手,依次讲解了组织混音总线、混响行为、混音状态、声音限制和优先级等内容,在仰取俯拾间还是有一定的感触。碍于中文社区确实缺少这方面的资料,便产生了翻译这蚍蜉撼树的想法。过程很痛苦,但最终也侥幸完成了。o(´^`)o

初于音频领域,如堕烟海,似雾里看花,但也深信最后的峰回路转、柳暗花明。

[1数字音频工作站:Pro Tools, Ableton Live, Reaper, Studio One等。——译者注

[2] 音频中间件:位于游戏引擎和音频硬件之间的第三方工具集,它提供了游戏音频项目所需的多种功能。例如:Wwise, Fmod, Criware等。——译者注

[3] 拟声:可以是任何声音,例如衣服摩擦的声音、脚步声、吱吱作响的门和玻璃破碎的声音等。——译者注

[4] 规则集Rulesets:指定游戏的规则,如游戏中角色的属性、技能和能力,游戏机制、物理规则等。——译者注

[5] 混响Reverb:指声源发音停止后声音继续存在的声学现象。——译者注

[6] 低通滤波器:容许低频信号通过,但减弱(或减少)频率高于截止频率的信号的通过。——译者注

[7] 帧率Frame Rate:以帧称为单位的位图图像连续出现在显示器上的频率(速率)。——译者注

[8] 关于“两个半”法则的解释不是很好理解,其核心思想是在超过两个主体同时存在的场合,音效设计师需要确定两个最为重要的主体,然后剩余的主体声音都只能作为背景存在。法则名字中的“两”指代两个最重要的主体的声音,“半”指代剩余充当背景的主体的声音。在接下来的例子中作者有通过射击游戏的武器声音来解释该法则。——译者注




如何设计动态的游戏音频混音的评论 (共 条)

分享到微博请遵守国家法律