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

随着玩家的继续前行,他们听到自己踩过树叶和不同的地面类型的脚步声。突然,敌人的脚步声在不远处响起,接着一场冲突爆发了。人物们相互喊叫着,到处跑动,枪声在雨林中回响。由于后台混响插件的作用,所有这些环境音效似乎都来自同一个物理空间。
突然间,声景变得更加复杂和广阔。尽管这个例子是考虑的开放世界中该设计的音效和声景,但这个例子可以引申应用于多种游戏类型。所有在世界中被触发的声音都需要以合乎逻辑,声音优美的方式来控制并传递给玩家。解决这个问题的第一种方法是通过一个简单的策略 -- 组织

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

这里的方式与为歌曲构建混音结构的方式相同。同类型的音效应该放置在同一混音总线结构中。就像在处理大型编排时一样,从大的声音类别中逐渐细分出更加具体的类别。
通常,在为游戏设计混音总线结构时,最好采用分层的“Top-Down” [自上而下]

3]
4]和插件,以影响更小的子组的更具体的行为。


diegetic声音

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


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


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

通过分析游戏中存在的不同游戏循环,设计师可以开始推断出是否有过多音频实例的冗余混音组,并着手开始限制它们。
“voice”
有了这个想法,游戏音频设计师就可以确定在某个时刻需要听到每个混音组中的多少声音。例如,在一场枪战中,玩家真正需要同时听到多少个敌方武器声音?如果在一次战斗中有三个或更多敌人,那么最有可能的答案是,需要关注定位最重要的两个敌方武器声音。在这种情况下,额外的武器声音只会用来填充音景。这种限制理论也可以应用于诸如车辆之类的混音组。应该同时清晰听到多少辆车?

如果没有适当的优先级设置,当声音引擎在一个给定的帧中触发了最大数量的声音,它会开始不加选择地限制声音。为了防止意外截断,设计师有必要选择出其中最重要的声音。这可能因游戏类型而异,但有一些经验规则可以帮助定义游戏中最高优先级的声音。
第一优先级通常是原声音乐。由于原声音乐是“2D”的且一直存在于游戏世界中,在密集的动作序列中意外被切断音乐将会是很糟糕的。因此,原声音乐应始终位于最高优先级。同样适用的是重要的UI提示音,无论是从游戏玩法还是无障碍性的角度考虑都很重要。例如,像“ping”系统这样的提示音在激烈的战斗中应始终可听到。
现在,容易处理的声音已经处理完毕,接下来就会变得更加微妙。首先,与玩家角色直接相关并且在屏幕上可见的声音应始终具有高优先级。例如,在一个具有固定角色的第三人称游戏中,这可能包括从脚步声到施法和武器开火声等一切声音,因为它们的缺失会破坏玩家的沉浸感。
处理了玩家的声音之后,就需要把注意力转向游戏的其他方面。请注意,这里给出的考虑内容可能严重依赖于游戏玩法。例如,玩家正在进行一个设计好的战斗场景,在场景中他们听到了适量的枪声、敌人的脚步声和语音。然后,一个大物体开始在远处移动,引起了玩家的注意。这个物体对战斗场景有多重要?这个物体是任务中重要的叙事物体吗?是否发生了破坏?这些都是非常微妙和难以处理的问题,但这都与正确的混音总线组织有关。

虚拟化是一个过程,引擎会跟踪与声音相关的所有数据,但声音本身却不会播放。当一个声音被激活时,首先检查它的限制参数。如果不应该播放,则将其虚拟化。同样,如果一个声音正在播放但应该被一个更高优先级的声音取代,它也可以被虚拟化,以便它之后在它离开的地方继续进行,但实际的声音不再被听到。
这样做可以节省大量的处理开销,但仍会占用一定的 CPU使用率 。这是因为声音的时间线位置仍在被跟踪,并且如果突然不再需要限制,需要进行额外的操作才能开始恢复播放。因此,这种优化最适合用于循环播放的声音,这些声音很可能会在限制状态之间来回切换 - 比如循环环境声音或车辆引擎声。
在一次性声音的情况下,因为它们只是短暂的一次性播放,最好通过中断它们或根本不播放来完全限制它们的声音。设计师不希望使用CPU资源来跟踪一个即将结束的声音的时间轴;在限制条件过期时,很有可能会触发新的声音实例。在这种情况下,玩家在游戏过程中很可能不会注意到其重新启动、中断或完全不存在的情况。




纽约大学斯坦哈特分校兼职教师
译者: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] 关于“两个半”法则的解释不是很好理解,其核心思想是在超过两个主体同时存在的场合,音效设计师需要确定两个最为重要的主体,然后剩余的主体声音都只能作为背景存在。法则名字中的“两”指代两个最重要的主体的声音,“半”指代剩余充当背景的主体的声音。在接下来的例子中作者有通过射击游戏的武器声音来解释该法则。——译者注