menu
 

基于《超时空跑跑》搭建的游戏混音流程和技术细节

游戏音频

“你为什么要混音你的游戏?除了可读性之外,你的创意和审美目标是什么?你的混音如何服务于游戏的创意愿景、游戏设计方向和叙事方向?

目录

1. 前言
2. 游戏混音的重要性
3. 游戏混音的目标
3.1 技术上清晰
3.2 审美上为游戏服务
3.3 总结
4. 开始你的混音
4.1 熟悉你的项目
4.2 分析现有问题
4.3 搭建混音框架
4.4 Foundation 基础混音
4.5 Micro 微观混音
4.6 Macro 宏观混音
4.7 Dynamic 动态混音
4.8 Mastering 母带
5. 结语

1. 前言

我认为,游戏混音和音乐混音的定义以及目标大同小异。音乐混音——把多轨素材进行平衡和调整,混合成为多声道的成品。放到游戏,用一个简单的模型,我们需要做的就是将一个 3 轨素材的工程:音乐、音效和语音混合成一个多声道的成品。
 
但和复杂的音乐混音工程一样——实际中,游戏混音可能拥有比许多音乐还要多的轨道数。场景音乐轨、面板音乐轨、剧情音乐轨、主角技能轨、主角动作轨、主角受击轨、怪物技能轨、怪物动作轨、怪物受击轨、剧情语音轨、系统语音轨、战斗语音轨……我们还能将这些轨道根据章节、不同角色甚至不同赛季等逻辑拆分为更加细分的轨道。但和音乐混音一样,我们最终要呈现给玩家的仍是针对不同播放终端的多声道成品。
 
在定义相同的情况下,游戏混音要达成的目标也与音乐大同小异:技术上清晰(可读性),审美上为作品传达的理念服务。
 

2. 游戏混音的重要性

和音乐作品一样,游戏混音也是游戏音频开发过程中非常重要的环节。未经混音的作品大概率会让音频同事的优秀工作成果淹没在混沌之中。
 

《超时空跑跑》游戏混音前后效果对比

上面的案例仅在混音层面进行优化,解决了声音不平衡带来的粗粝听感、掩蔽问题导致的打击感混乱以及混音目标缺失造成的声音重点失衡等等问题。在我刚进入游戏音频行业时,游戏混音似乎并未得到足够的重视。“在每一个版本末期进行音量比例的平衡”,这可能是当时游戏混音最主体的工作内容。当然这是游戏混音中非常重要的环节,这个环节也确实可以解决许多音频问题。
 
但是,随着行业的进步,工具的升级,越来越多理念和技术手段的普及——游戏混音的理念和方法都得到空前的发展。在许多 AAA 游戏中都开设了专门的游戏混音师岗位,在项目初期就和音频总监、音效设计师、音乐设计师等一同进行游戏音频的开发。那么我们,该如何开启自己项目的游戏混音之旅呢?首先我们需要明确,游戏混音的目标。
 
 

3. 游戏混音的目标  

“在定义相同的情况下,游戏混音要达成的目标也与音乐大同小异:技术上清晰(可读性),审美上为作品传达的理念服务。”
 
这是我们在前言确定的游戏混音目标,现在让我们将目标进一步拆解,从而找到解决游戏混音问题的突破点。

3.1 技术上清晰

  1. 声音的堆叠不对玩家造成困扰
  2. 重要信息的可读性&沉浸感
示例
在一个非常嘈、杂充斥着学生叽叽喳喳聊天打闹的教室;老师用音量忽大忽小且充满磁性和气泡音的男低音讲课。而你,是那个想要听讲的好班长,你该怎么办?
 
解决方案
  • 你要让同学说话声音小一些,老师讲课声音大一些(响度的平衡);
  • 让同学聊天声音低沉一些,让老师打开嗓子丹田发力声音洪亮些(频段的平衡);
  • 让同学不要大呼小叫,让老师声音平稳并在重点题时开大嗓门(动态的平衡);
  • 让爱说话的同学都做到教室后排,要听讲的做到前排(空间的平衡
  • 一番操作下来,你再也不会被吵到抓耳挠腮;听清了老师讲课的内容;在老师讲课无聊时也听到了一些同学的八卦。

3.2 审美上为游戏服务

游戏的理念和审美制定与之对应的声音平衡。
 
示例
同样是刚才的教室,而你是热血高校的小栗旬 ,你会怎么办?
 
解决方案
  • 你会让老师声音小一些,同学声音大一些(响度的平衡);
  • 让老师继续男低音气泡音讲课,同学打开嗓门丹田发声(频段的平衡);
  • 让老师不要大呼小叫,让同学在情绪激动的时候直接动口又动手(动态的平衡);
  • 把你的好兄弟安排在教室各个角落,所有人都能听到你们发号施令(空间的平衡);
  • 可以发现同样是响度、频段、动态和空间的平衡,不同的场景(游戏)有着完全不同的平衡标准。

3.3 游戏混音目标总

  • 我们将审美和清晰结合起来,游戏混音的大体目标也就比较明确了:
  • 根据游戏的审美以及理念需要,制定与之对应的响度、频段、动态和空间的平衡。
  • 牢记这个目标,贯穿整个工作流程。下一步,开始你的混音。

 

4. 开始你的混音  

接下来我结合《超时空跑跑项目》的游戏混音历程,来逐步拆解关于游戏混音的整体框架和细枝末节。 

4.1 熟悉你的项目

这听上去可笑,但却是在开始混音实操之前必不可少的一步。
 
游戏理念 - 游戏音频理念 - 游戏音频本身,不论是理念还是技术细节,由上到下对工作有一个清楚的认知,是开展工作最重要的基石。
 
你需要做的:
  1. 玩游戏。了解游戏的风格、玩法,尽可能了解游戏包含的每一个系统;读策划文档,从文档里找到更多策划层面对游戏理念的定义。
  2. 关注现有游戏内音频表现,和音频同事交流。了解现阶段音频侧的审美和理念。
  3. 熟悉 Wwise 工程,分析音频设计。初步梳理可优化的点。
《超时空跑跑》中我做的:
  1. 在项目开始之初就服务于项目音频部分,对游戏本身有足够了解。
  2. 音频理念侧则通过与音频接口人确认她最满意的 boss 和角色作为参考等方式,了解目前音频大致的审美理念。
  3. 音频设计方面,重新熟悉 Wwise 工程,了解目前游戏内的音频设计表现。

4.2 分析现有问题

“想要具备混音的较强能力,必须对混音作品进行不断的评价。当我们开始进行某个混音处理的时候,碰到的一个基本问题是:“它存在哪些问题?”。从无数处理上的可能性出发,我们可以把精力集中在纠正错误上,从而得到一个好的开始” ——《混音指南》
 
比起琳琅满目的技术手段,一眼看出(一耳听出)问题所在的能力是十分关键且困难的。
 
提升分析问题的能力
虽然分析问题的能力是与工作经验、掌握的技术手段知识息息相关的。但也不是说作为新手就无从下手。我们可以通过分析优秀竞品的混音设计来提升分析问题的能力。
 
分析时同样牢记前文提到的混音目标:根据游戏的审美以及理念需要,制定与之对应的响度、频段、动态和空间的平衡。
  • 游戏的整体平均响度是多少?
  • 技能、受击、交互、环境等不同类别音效的响度分别是多少?
  • 不同应用场景的音乐响度是多少?
  • 游戏在战斗激烈时的频谱是什么样?
  • 对白、音效、音乐在频谱上如何分布?
  • 音乐动态控制在什么范围?
  • 不同类型的游戏在音效动态上是如何处理的?
  • 游戏中是如何处理混响的?
  • 音乐乐器的摆位、宽度与流行歌曲是否有区别?
  • 为了解决声音的掩蔽,使用了哪些混音手段?
  • 混音是如何为游戏理念服务的?
在大量的训练和分析之后,你大概能对游戏响度有一个系统的认识;频段上知道哪些频段是多余的,不同类型声音在频谱上的分布;游戏音乐合理动态的初步认识;不同类型声音在空间上的合理分配;初步了解声音掩蔽的解决方案;不同类型游戏的不同混音理念。

细化问题
我们需要将看似笼统、简单的问题细化:

拿最笼统的问题 “音乐的音量小了” 来说

  • 编曲的问题导致音乐的节奏或者主旋律和音效对白打架?
  • 是音乐拥有过大的动态,导致音乐平均响度不够?
  • 是音乐的宽度不够导致乐器之间本身产生掩蔽
  • 还是真的就只是音乐音量小了?

再换另一个老生常谈的问题:玩家说“bgm(其实指音效)没有打击感

  • 可能是游戏画面设计本身没有震屏、受击动作、合适的跳字导致的音效无力回天;
  • 可能是策划伤害跳字配置与动作错位导致的受击音效混乱;
  • 可能是技能音效过度设计占用太多空间导致受击音效被掩蔽;
  • 也可能是受击音效本身设计缺陷导致能凸显打击感的频段缺失……
超时空跑跑在开发过程中存在的混音问题:
  • 同类型声音响度不统一,不同类型声音响度缺乏标准且平衡存在一定问题
  • 声音普遍存在较多冗余的频段,部分供应商提供的样本频响存在问题
  • 游戏整体频谱不均衡
  • 部分主角大招音效动态过大
  • 为解决掩蔽,对音乐使用了过多的音量压制
  • 作为跑酷游戏,声音整体没有给游戏提供足够的情绪推动
分析现有问题总结
通过针对性的分析竞品提升分析问题的能力、分析项目目前存在的问题并将其细化。带着解决问题的目标,让整个混音流程有便于落地的初期目标。然后,我们就可以进一步推进混音流程了。

4.3 搭建混音框架

每一游戏混音工作者都有自己的工作习惯,和适合自己的工作流。我在参考《绝地潜兵 2》Wwise 分享以及《超时空跑跑》实践之后,将游戏混音工作流拆分为了以下五个部分:基础混音(Foundation)、微观混音(Micro)、宏观混音(Macro)、动态混音(Dynamic)、母带(Mastering) 

五部分成金字塔形,由下至上代表了重要性、工作量的多少和处理的时间先后顺序。接下来我将根据这个混音框架,完成游戏混音流程和一些细节的讲解。

4.4 Foundation 基础混音 

基础混音工作内容聚焦在两个方向——“分类和标准化”将相同类型声音归类,并根据类制定标准化的响度、频段、动态和空间。目标是为后续混音提供稳定且便捷的基础。具体分为三个步骤——Wwise 管线设置原始素材处理响度标准制定

4.4.1 Wwise 管线设置

目标
一切以方便混音为目标,设置合理 Wwise 管线。
 
操作详解
从根源开始,把 Wwise 的 Actor-Mixer 和 Master-Mixer 拆开,从各自拥有的功能反推,他们分别需要为混音做哪些设置。(这里只考虑会影响混音的功能。)
 
Master-Mixer
游戏程序需要 Master-Mixer 做到什么?
  • 拿到合理的声道设置
  • 在游戏设置中控制不同类别声音的音量
混音师需要通过 Master-Mixer 做到什么?
  • 快速调整同类声音的参数(响度、频率、动态、空间)
  • 解决不同类声音之间的掩蔽问题
  • 其他 Bus 上的设置(发送、效果器、最大发声数等)
1)层的声道设置:首先在顶层作出不同声道设置的母管线。比如常见的 MainMix、AudioObjects 和 PassThrough。

2)区分声音大类的管线:我们需要在下一层将需要被游戏音量控制的声音分类。比如常见的音效、音乐、语音管线。

3)快速调整同类参数:作为声音设计师,基础的分类一定信手拈来比如:音效下有环境、UI、玩家、怪物等等

继续向下加大粒度,以《超时空跑跑》的 Player 管线为例:

我希望能分别调整角色的三个技能和大招;大招受击和其他受击;冲刺;动作等声音参数。 

4)需要掩蔽处理的:我希望角色技能相关的音效(包含受击)ducking 脚步声(战斗时弱化脚步)。那我就需要将所有技能管线包含受击管线放在一个管线下。并且在动作管线下单独拆出脚步声管线。

我希望受击音效可以 ducking 除大招外的技能音效。那就需要将两个受击管线合并,三个技能管线合并。

我希望 Rush 以及所有技能音效(包含受击)可以 ducking 音乐(因为 Rush 也是跑酷游戏中需要凸显的声音)。那就需要将 Rush 和 Skill_All 管线合并。

5)其他 Bus 上的设置:除了上述内容,还有其他比如发送、效果器等因素需要考虑。

可以根据下方列出的 Master-Actor 中会影响混音的设置来酌情调整管线分类和粒度。

  • Bus Configuration 管线声道设置
  • Auxiliary Sends 辅助发送设置(一般用来处理混响或者其他发送效果器的发送量)
  • Effects 效果器(所有 Voice 合并进 bus,效果器作用于 bus)
  • Auto-ducking(解决掩蔽的方法之一)
  • Playback Limit(限制管线声音总数)
6)Master-Mixer 设置总结
  • 根据声道需求和游戏音量控制滑杆需求完成顶层声道管线以及声音大类管线设置;
  • 根据快速处理同类声音需求、掩蔽处理需求、以及其他 Bus 上设置需求确定底层管线颗粒度;
  • 从而得到相对合理、为混音服务的 Master-Mixer 管线设置。

Actor-Mixer:

混音师需要 Actor-Mixer 做到什么?
  • 快速调整同类声音的参数(响度、频率、动态、空间)
  • 快速指认同类声音的 Output Bus
  • 其他 Actor 上与混音相关的设置(发送、效果器、位置等)
  • 方便文件管理的游戏类别分类(与混音关系不大此处不讨论)

在 Actor-Mixer 与混音相关的功能有:

  • Output Bus 设置(链接 Actor 和 Master 的桥梁)
  • Auxiliary Sends 辅助发送设置(一般用来处理混响或者其他发送效果器的发送量)
  • Effects 效果器(作用于该 Actor 下每一个单独的 Sound/ Voice 而不是 Actor 本身)
  • Positioning 位置(对响度、频频率和空间都有影响)
  • 因为与 Master-Mixer 逻辑相似,下文便不再赘述。
以超时空跑跑 Player 管线为例:

4.4.2 原始素材处理

在通过管线搭建彻底熟悉整个 Wwise 工程,了解不同类别声音的声音特质之后。我们就可以进行下一个混音步骤:处理原始素材。像烹饪一样,好的食材可以轻易制作出好的食物。好的音频样本也是优秀混音的关键。

原始素材处理理想上分为两个大类:

  • 计层面的重构
  • 混音层面的处理

设计层面的重构:

和音乐混音一样,如果制作人的编曲存在问题,那么混音也无法解决编曲上存在的问题。在设计重构方面,我们需要和音频设计师沟通,讨论如何修改样本以达到最佳的效果。在这里我们需要尽量避免审美层面的讨论,而专注于影响混音的问题。比如说一个打击音效缺少了能突出打击感的layer,如果不修改设计将无法让这个声音被听到。那么此时就需要对这个样本进行设计层面的重构。诸如此类,无法通过混音手段补救的问题,都需要音频设计师重新设计。

混音层面的处理:

对于素材的处理还是着眼于这几个关键要素:

  • 响度
  • 频率
  • 动态
  • 空间

对于快要上线的项目来说:音频样本(素材)数目往往会非常庞大,对每一个素材做混音层面的处理会花费大量的人力和时间。所以高效的工作流以及合适的模版工程(daw)是十分必要的。

1)工作流和模版工程:

把大象放进冰箱只需三步我们把工作流简化:从 Originals 文件夹中拿到音频文件——把音频文件放到 DAW中 处理——把处理好的文件放回 Originals 文件夹替换原文件

第一步拿到音频文件需要注意的是颗粒度:把所有音频素材放到一个 DAW 工程或者每个素材一个工程显然都不现实。考虑导入文件和导出文件的便捷性、同一 DAW 工程中声音的相似性。拿角色管线来举例:我们可以根据角色数量以及每个角色拥有的音频数量,来决定是每个角色一个 DAW 工程还是所有角色放进一个工程。 

每个角色一个工程

所有角色一个工程,导出到正确的位置。

第二步在 DAW 中处理素材需要注意的是 DAW 工程模版:高效是模版工程最重要的目标。当大批样本导入工程后,如果只需把每个样本拖入合适的轨道就可以完成处理的话将节省大量时间。基于这个目标,我制作了素材处理的模版 DAW 工程(使用 Reaper)。

整体分为以下大类:

  1. 不使用任何效果器并且静音只用于对比监听的 Orignal 轨道
  2. Dublicate 上个轨道,真正需要处理的是这个轨道内的音频块
  3. 三个根据动态大小拆开的 Group: Low/ Mid/ HighDyn 轨道。三个轨道分别拥有不同设置的压缩器和多段压缩器,实现低中高动态的分类。三个轨道上相同的效果器有:去除多余频段的通用 EQ/一些用于轻微染色的饱和器和混响,此部分可根据项目需求调整。
  4. 动态预设轨道下层是:两组削减高、低频的 EQ 预设轨道,可以根据项目需求建立更多的 EQ 预设轨道。EQ 下层则是区别混响量大小的混响预设轨道 

模版工程工作流:

  1. 将音频文件拖入 Orignal 轨道,每个音频块之间通过脚本设置合适间隔,dublicate 该轨道
  2. 视听结合(观察音频块波形以及听)将音频块拖入合适的动态预设轨道(Low/ Mid/ High)
  3. 根据需求,将音频块拖入合适的 EQ 预设轨道和混响预设轨道
  4. 如果音频块还有问题需要处理,则使用 Take Fx 在音频块上加效果器做个性化处理
  5. 重复上述步骤直到处理完所有音频块

第三步把处理好的文件放回原文件夹:可以使用脚本也可以用 Reaper 本身导出功能。读者可以参考我的思路,制定顺手、高效的工作流和工程模版,然后开始接下来的工作内容。

2)响度处理:

需要说明的是,如果我们中途接手项目,同事已经在 Wwise 中初步调整了每个素材的响度。那我建议不要在处理素材时处理响度。因为一旦在素材层面调整响度,就需要将工程中所有音量相关的设置(各种 Volume/Gain/Positioning 等等)归零来对应新的素材响度。虽然可行,但是确增加了不必要的工作量(如果想借此机会使用HDR的话可以在素材层面调整响度)。所以建议将响度调整环节留给 Wwise 而不是 daw。如果我们在项目初期就接手项目。那么制定好响度标准(见下一节 4.4.3),并在样本层面规范响度就是比较理想的状况了。

3)频率处理:频率处理分为
  1. 动态预设轨道的 EQ 模版去除多余的频段(Linear Phasse 减少相位问题)
  2. 不同预设的 EQ 轨道处理普遍存在的问题
  3. 音频块上的 EQ 用来处理每一个音频块的个性化问题

音效设计师一般会在音效设计时保留样本的全部频段以应对不同的回放设备。在处理样本频率时我们经常会碰到这些问题:比如人耳听不到的频段,或者播放设备无法很好回放的“无用”频段;供应商提供的样本频率存在统一问题的情况;个别样本存在个性化问题的情况所以我们在顶层根据游戏需求、播放终端的考量:去掉“无用”频段;利用 EQ 预设轨道批量解决同类频率问题;针对个别样本做个性化处理。这样便可以高效解决频率问题。 

4)动态处理:

动态方面我们需要做的是:让不同类别声音处于各自合理的动态范围。让不该突脸的声音融入画面,让增强表演的声音拥有合适的动态提供生动的能量。和频率处理一样,使用高中低三档动态预设轨道快速分类,针对特殊音频在音频块上做个性化处理。

5)空间处理:
  • 处理内容主要包括:去除低频的 side(已在频率部分处理)、匹配样本宽度、匹配样本混响大小。
  • 匹配样本宽度:宽度是十分重要但却容易被音效设计师忽略的点。我们要做到的是尽量让声音宽度和画面匹配。对于一些窄的子弹、受击,可以直接使用单声道让声音更加“紧实”;对于一些很大的技能,则可以适当增大宽度来较为夸张的表现音频。
  • 匹配样本混响大小:音频设计师在设计音效时为了最佳表现可能会为样本添加混响,但当存在不同混响的样本同时出现在同一场景时听感就会奇怪。 所以尽可能保持同一类型声音混响大小、时间相似也是不可忽视的处理步骤。

原始素材处理总结

通过设计层面的重构,素材层面对响度、频段、动态、空间的处理。我们可以保证放进 Wwise 工程的素材本身都是“优秀”的,这些优秀的素材将成为接下来混音工作的重要基石。

 

4.4.3 响度标准制定

推荐一篇关于响度的参考文章(来自杨杰老师):文章1文章2

从何处下手?

如果你是中途接手一个项目的混音:找一个声音类型多较为复杂并且常用的场景,初步调整一个合适的响度比例,根据这个比例来制定响度标准,运用到其他同类型声音上。在这个过程中需要尽量将声音分类做细致,方便标准和差异化。

以超时空跑跑为例:

将响度分为 VERY LOUD / LOUD / MEDIUM / QUIET 四个区间;每个区间设定对应的响度范围 (-8 to -16) / (-16 to -20) / ( -20 to -28) / QUIET ( -28 to -40)

在区间内填入之前细分的声音类别从而完成响度文档的搭建;完成响度文档后,可以用 Youlean 响度表做一个与响度区间颜色相对应的预设,方便之后使用

要注意的事:响度标准表格只是初期制定的标准,在混音过程中根据实际情况不断调整,最终形成最终版。之后的新资源就可以按照最终版出响度(注意在 bus 上的调整造成的响度偏置)。

4.4.4 基础混音总结

在 Foundation 基础混音部分:

  • 我们根据倒推的逻辑,制定合理颗粒度,完成 Wwise 管线的搭建
  • 原始素材在设计和混音层面进行处理,确保样本的高质量和标准化
  • 初步制定了较为细致的响度标准

以上这三步,是接下来工作必不可少的基石。在得到稳固的“地基”后,我们才可以较为轻松的实现各种批量化处理。

4.5 Micro 微观混音

微观混音内容聚焦在对 Wwise 中 Sound/Voice 的处理,主要有以下两方面:

  • 将 Sound/Voice 调整至标准响度
  • 为 Sound/Voice 制定合理的优先级

4.5.1 Sound/Voice 响度调整

目标:同类别声音处于同一响度标准,且较为真实的反应听感。

处理步骤

  • 根据上一部分制定的响度标准,使用 Wwise 内置 Loudness Meter 和 Youlean 等工具,在 Wwise 内将每一个 Sound/Voice 的响度调整至设定值。
  • 让每一个 Sound/Voice 都处在其所在类别的响度标准范围内,方便之后在Actor或者Bus上的批量化处理。

可能存在的问题

此过程中如果发现有些响度标准不合理,可以分析是什么情况导致的不合理:

1)分类不够细致,导致响度需要有差异的声音没有差异:

这种情况可以更新响度标准表格,增加新分类,对新增细分类别添加新标准并按新标准执行。

2)大类别响度标准制定错误:

这种情况不用着急,因为发现问题时可能已经按照旧标准调整了许多 Sound/Voice,所以将后续同类别 Voice 按照旧标准调整完之后,整体调整 Actor/Master 即可。

3)个别 Voice 因为频段问题导致响度表不能很好的表现听感:

调整 Voice 基频、去除对于频段等手段让 Voice 尽可能贴近听感。并按照表格内标准调整响度。

4.5.2 优先级制定

目标

各类别声音拥有合理优先级,在极端复杂的场景下确保重要声音的保留,避免对混音造成不必要的干扰。

处理步骤

  1. 列出游戏里存在的所有声音分类
  2. 想象所有类型的声音都在同一时间触发
  3. 根据重要度来由高到低排列所有类别(使用白板会比较好拖动排列组合)

4.  将优先级量化,标注在优先级表格中

5.  在 Wwise 中调整优先级,在 Wwise 中按照有限级表格调整优先级设置

4.5.3 微观混音总结

我们通过处理每一个 Sound 的响度和优先级,完成了不同类别声音的标准化处理以及复杂场景发声正确性。方便我们之后的批量化操作,和复杂场景的混音。

4.6 Macro 宏观混音

 

在结束了 Actor(Sound/Voice) 层面的 Micro 混音标准化处理后,我们将把工作重心放在更大的 Master-Mixer 层面的 Macro 混音。

目标

  • 游戏平均响度标准下,平衡不同类别声音的响度
  • 各类别声音的静态频段、动态和空间平衡

处理步骤

1. 确定音频混音策略和游戏平均响度标准

音频策略和平均响度标准是接下来工作的先决条件。

a) 确定整体音频混音策略

是想是突出音效和打击感(动作游戏)?还是想突出音乐带动整体游玩情绪(音游、跑酷类)?也可以结合之前设计的响度表和优先级表来制定更加细致的音频策略:什么声音是需要高响度带来必要情绪体验的,什么音效是要有高优先级给玩家信息和反馈的。确定好混音策略,让之后的调整有迹可循。

b) 游戏平均响度标准

将游戏最为频繁的游玩场景作为标准,长时间游玩的平均响度值就是游戏整体响度。这个标准可以参考多个竞品来决定自己游戏需要处于什么响度范围。有了这个标准我们才能在一个响度范围内调整不同类别声音的响度。

2. 不同类别声音的静态响度平衡(Master-Mixer)

和音乐混音相同,我们需要用一件乐器作为基底参考来做响度的平衡。在游戏混音中同样,我们也需要找到一个类别作为参考来调整。找一个在游戏内最频繁出现、动态不会过大、响度差值较小的声音类别做为基底和参考通常会比较稳妥。比如音游中的音乐、策略游戏中的交互音效、动作游戏中的技能和受击以及在大多数游戏类型中都比较通用的对白。调整基底参考声音到接近游戏平均响度的值,其他声音根据基底做相应的响度调整。完成在 Master-Mixer 中调整游戏的响度平衡。在 Macro 中的响度调整必定伴随着实时更新之前在 Foundation 中制定的响度标准文档调整。两者互相影响,在完成每个类别声音的响度调整后得到终版响度标准文档。

3. 处理不同类别声音的静态频率、动态、空间

在初步将响度调整平衡之后,我们需要处理不同类别声音的频率、动态和空间这些处理一般针对两种问题

问题1: 修整素材处理时遗漏的通用错误

在素材层面处理频段时可能会有多人协作情况,基于不同人回放设备不同,理念也不同,所以可能会存在某一类别声音的通病。这时可以在 Bus 上添加效果器处理,当然最理想的状况还是返工到 DAW 处理。

问题2: 不同类别声音频段、动态、空间避让

因为在处理样本时我们无法准确预判不同类别声音需要的避让情况。所以静态的避让可以使用 Bus 上的效果器来实现。比如这个 Insert 在人声 Bus 上的 EQ 效果器,削减了部分频段来给音效让一些位置:

注* 使用效果器时不建议直接使用 Dfault,推荐使用 New,做好命名方便之后快速调整。

 

宏观混音总结

  • Macro 宏观混音的开始意味着 Actor 层面工作的结束和 Master 层面工作的开始。
  • 一个符合游戏审美的混音策略和符合行业标准的响度标准是开始工作的先决条件。
  • 在这部分中我们对 Master 层面的处理都是静态的,音量平衡和频段处理都是。
  • 所谓静态是指各个 Bus 之间不涉及动态的掩蔽和调整。
  • 只有在静态达到较好平衡的前提下,动态的处理才会方便和有迹可循。

再下一节,我们会正式进入到本文内容最多的章节——动态混音

4.7 Dynamic 动态混音

4.7.1 概念

在各种声音同时播放时,声音结合当前情况按照设置好的条件和参数,自动、实时、动态调节的混音。换句话说就是,声音在播放时,根据实时情况,自动调节的过程。

4.7.2 基础工具

在之前的章节中我们已经解决了声音静态播放时的基本平衡。那么声音要如何获取当前情况呢?声音要如何按照条件自动调节呢?我们需要用到发送、RMS 模式的 Meter 电平表和 RTPC 来获取声音当前播放状况,再通过 RTPC 和其他效果器来实现 Bus 的自动调节。

示例

一般的动态调节基础手段是:检测某一个或者一组Bus的电平将电平值映射一个 RTPC,用这个 RTPC 作用于本身或者其他 Bus 上,从而达成实时动态调节的效果。举个最简单的例子,某些 UI 音效出现时需要压制场景音乐的音量。按照上述的逻辑,如下图操作就可实现功能:

1. 将UI_Battle的信号通过发送,发送到 Meter_UI_Battle_SUM 用来做干净单一的信号检测工作(具体使用发送原因下文有详解)  

2. 在 Meter_UI_Battle_SUM 这个 Bus 上加一个名为 Meter_UI_Battle_SUM 的 RMS 模式 Meter 效果器  

3.  将 Meter_UI_Battle_SUM 电平表的实时参数输出到名为 Meter_UI_Battle_SUM 的 RTPC

4.将名为 Meter_UI_Battle_SUM 的 RTPC 加在场景音乐的 Bus PassThrough_MUS_Scene上 

当 RTPC 变大时说明此时有 UI 音效正在发声,设置随着 RTPC 的增大而减小音乐 Bus 音量的曲线。

关于发送

上文我们通过发送将 UI_Battle 这个 Audio Bus 的内容发送到了 Meter_UI_Battle_SUM 这个 Aux Bus。这样我们就得到了和原BUS相同的信号单独用来检测音频实时信息。

*注:顶层的 Meter 的 Bus Volume 为 -96,这样所有发送轨都不会发出声音,从而实现只检测电平的作用

但是为什么要这样做呢?三个原因:

1.  方便管理:所有与电平表有关的 Bus 都在这里,规范命名,方便统一管理。

2.  多个 Audio-Bus 发送到同一个 Aux-Bus,为大类以及个性化类别电平检测提供便利:比如想检测总的战斗电平,就可以将所有战斗相关的 Bus 都发送到 Meter_Battle_SUM

3.  方便进一步发送,从而实现更复杂的操作:比如动态 EQ 和动态发送等等,后文会讲到。

掌握了基础原理,就可以进一步到基于这一原理衍生出的多种动态相关的功能。

 

4.7.3 长时慢速响度控制

概述

当局内某一类型的声音长时间处于较高响度时,为避免持续的嘈杂,将这一类别声音音量降低。这一功能可以通过较长 Attack 和 Release 的电平表搭配 RTPC 来实现。

实现步骤

在超时空跑跑中,当整体战斗电平持续保持在 -12 超过 4 秒时,则会对 Boss、小怪等对玩家的受击音效降低。随着整体战斗电平小于 -12 超过 3 秒后,受击音效则会恢复到原有的音量。具体做法就是在上文提到的 Meter_Battle_SUM 轨道上,设置一个 Attack 为 4 秒、Release 为 3 秒的 Meter(Attack 4s 意味着当声音持续超过 4 秒后才会起表,对应的 RTPC 也会有 4 秒的延迟)。然后将这个 Meter 映射的 RTPC 作用于 Boss、小怪的受击总线中,用来调整总线音量。

4.7.4 动态 EQ

概述

音乐和技能总会在游戏中打架。以往粗暴的做法是当重要音效出现时直接使用 Auto-Ducking 或者结合 Meter 和 RTPC 的方式压制音乐音量。在某些情况下,这种方式是可行且效果不错的。但当音效触发频率过高,音乐需要长时间为音效提供空间时,音量的一刀切就没那么合适了。这时比较合理的做法是:实时检测正在播放的音效的高中低频(或者更加细分的频段)各自的电平,让音乐在高中低频做与之对应的频段避让(音效高频多就让音乐高频少一些等等)。

原理

具体原理如上图(截图来自《绝地潜兵 2》动态混音分享),下文结合超时空跑跑详细说明。

实现步骤

1.  BUS -> Aux SUM

将 Player_Skill 玩家技能 Bus 发送到用来检测玩家技能电平总量的发送轨Meter_Player_Skill_SUM 

2.  Aux SUM -> AUX Hi/ Mid/ Low

将检测玩家技能电平总量的发送轨 Meter_Player_Skill_SUM,分别发送到检测技能高中低频的三个发送轨(Meter_Player_Skill_HI/ Meter_Player_Skill_MID/ Meter_Player_Skill_LOW)

3.  Band Pass EQ

在检测高中低频的三个发送轨上,分别加三个 Band pass EQ,用来筛选各自轨道上所需要的频段(Meter_Player_Skill_HI上加High pass,这样这条轨道里只有高频信息,中低同理)

分频点的选择不是固定死的,而是根据音效特性决定的。所以需要多加分析和尝试来决定最终的频点。

4.  Meter RTPC

在完成分频之后,为高中低三个发送轨分别加上 Meter,这样就能检测不同频段的实时电平,并且将电平映射到对应的 RTPC 了。 

5.  3 Band Parametric Dynamic EQ

在拿到主角技能的高低中频实时电平的RTPC后,我们需要用这三个RTPC来分别实时压制场景音乐的高中低频。要实现这一效果,只需在场景音乐Bus上加一个Parametric EQ。高中低三段的Gain由上述的3个RTPC实时控制。RTPC值越大则音乐对应的衰减越多。 

这里低中高分别选择了 250/1200/3500 这三个音效色彩集中的点,使用 Peaking 模式会比 high shelf 或者 low shelf 等模式更加自然。三个音效频段有自己的 RTPC 曲线分别独立控制音乐三个频段的衰减大小。

*注意频段和衰减曲线都需要多次实测。从而达到自然且能让音效清晰的效果。

思维发散

这种模式可以用于各种不同情形。比如语音压制技能、受击音效压制音乐等等等。根据游戏需要,这套逻辑可以适用于许许多多动态 EQ 的情形。

甚至可以和第一部分的长时慢速响度控制相结合:检测当游戏中持续存在长时间存在的战斗音效高频时,则给音乐做一个 high shelf,达到控制游戏整体高频不会长时间存在过多的效果。

4.7.5 动态发送

概述

就像音效压制音乐一样,不同类别音效之间也会存在相互压制关系。比如主角技能音效,压制其他怪物 Boss 的音效。我们可以同样采取动态 EQ 的方式来实现压制。各频段主角技能音效电平越大则对 Boss 音效压制越狠。但是,这里忽视了一个重要情况:如果同一时刻局内 Boss 音效响度非常大主角音效响度比较小但又比较重要。这时就会出现原本设置的压制量不够导致主角音效被埋在 Boss 音效中的情况。那么怎么解决呢?理论上 Boss 音量大那玩家音量就要更大从而实现更多的压制。

上图展示了玩家技能音效响度对 Boss 响度的压制。如图所示,更大的玩家技能电平意味着更大的压制。但是秉持着做减法的准则我们不想真的增大玩家音量来实现更多的压制。

实现步骤

还记得我们之前为什么要使用发送来检测电平吗?这时候就起到作用了:我们可以随着 Boss 电平的增大来增大玩家技能 Bus 的发送量。

  • 我们为 Player_Skill BUS 发送到用于检测的 Meter_Player_Skill_SUM Aux BUS 的发送量添加 RTPC。
  • 横坐标为 Boss 技能的总电平,纵坐标为发送量的值。
  • 当检测到的 Boss 电平变大时,Player_Skill BUS 发送到 Meter_Player_Skill_SUM 的量会变大,从而我们在 Meter_Player_Skill_SUM 检测到的玩家技能电平也会变大。
  • 对应的用来压制 Boss 电平的 Meter_Player_Skill_SUM(HI/MID/LOW)也会变大。
  • 最终 Boss BUS 上的 3 段动态 EQ 也会因为 RTPC 的增大实现更大的压制。

这一过程中,我们没有真的增大玩家技能音效。只是通过动态发送增大了玩家技能检测电平实现了对 Boss 音效更多的压制

思维发散

在绝地潜兵中有更加广泛的应用场景:

检测游戏整体音量较大时,可以忍受更多的压制,所以就可以适当增大发送量从而实现更多压制。同时这个发送量也可以是发送到混响的值,游戏音量很大时降低没什么用的混响。

4.7.6 动态压缩

概述

除了频段的避让,在动态方面我们也可以实现许多动态避让。有这样一种情形:当场景音乐被战斗音效压制时(之前用的动态 EQ 方式),让音乐在动态上也作出避让。从而给频段和动态上都给音效更多的空间。

实现步骤

  • 在音乐 BUS 上 insert 一个压缩器。

  • 为压缩器的 Ratio 添加 RTPC,RTPC 横坐标为战斗音效电平,纵坐标 Ratio 值。

  • 当检测到战斗音效电平变大时,Ratio 变大,从而实现减小音乐动态的效果。

在讲完这四种常用的动态混音技巧之后,我们来看看在超时空跑跑中的具体应用。

4.7.7 超时空跑跑动态混音案例

1.  主角造成的受击音效压制音乐 EQ,突出打击感

2. 主角技能音效压制其余怪物、宠物音效 EQ,突出主角技能音效

3. 主角大招音效较大的压制音乐 EQ,突出大招音效 

4. 主角大招音效压制其他所有技能音效 EQ,突出大招音效

5. 主角战斗语音压制主角大招 EQ,因为大招本身很响所以需要给语音让些位置

6. 主角战斗语音压制音乐的 EQ 和 Output Gain(最多 -2db), 因为音乐在《超时空跑跑》里很响,所以双管齐下音乐避让语音

7. 长时高电平战斗总量,压制除大招外的所有角色战斗 EQ,避免长时间的过分嘈杂

8. 长时高电平战斗高频,压制音乐高频。这个曲线可以做到让没有战斗时音乐高频填满空间,但是出现了较多音效高频后,音乐擦片之类的高频(干扰操作的节奏乐器)就会避让不干扰游戏操作。 

9. 长时战斗电平总量压制音乐动态 

10. boss 技能电平增大时,玩家技能的动态发送,提高玩家对 boss 的压制

11. 长时战斗大电平压制玩家时光技、boss 小怪宠物受击音量,减小嘈杂

 

 

12. 瞬时大电平玩家受击压制本身音量,让过多弹幕受击时的音量得到控制

4.7.8 动态混音总结

  • 通过了解发送、响度表、RTPC 这三个基础工具,掌握动态混音的基础原理。
  • 通过发送、响度表和效果器来检测所需 Bus 的实时参数,将实时参数通过 RTPC 桥梁传递给自己或者其他 Bus。再使关联 RTPC 的效果器或者参数进行实时调节,从而实现动态混音的过程。
  • 通过长时慢速响度控制、动态 EQ、动态发送、动态压缩几个常用动态混音技巧,发散出更多适合自己游戏的动态混音方案。

4.8 Mastering 母带

4.8.1 概述

母带作为整个混音的最后一步,是需要异常小心和谨慎的。因为你每一个细微的操作都会同时作用于成千上万个声音。所以建议在母带部分不要做大刀阔斧的调整,仅将目光放在针对各个平台的动态把控和响度控制即可。

4.8.2 Mastering Suite的使用

https://www.audiokinetic.com/zh/blog/mastering-a-game-with-wwise-part1/

https://www.audiokinetic.com/zh/blog/mastering-a-game-with-wwise-part2/

这两篇文章非常详尽地介绍了 Mastering Suite 的使用方法和注意事项。

4.8.3 动态范围的调整

概述

当我们需要针对不同设备(比如家庭影院和手机)、不同使用场景(夜间模式和普通模式)调整游戏音频动态范围时。除了使用不同的 Mastering Suite 预设外,还有一种方法:

实现步骤

  • 我们可以设置三个动态范围的 State(高中低),将 State 应用到每一个细分的 Bus 上(Bus 上加 Wwise gain 效果器)。
  • 在低动态范围 State 时,手动将音量大的 Bus 减小,音量小的 Bus 增大从而实现减小动态范围的效果。

示例

  • 游戏中存在战斗大招语音管线 VO_Battle_Ulti,他的平均响度为 -12 LUFS
  • 也存在系统 ASMR 语音管线 VO_System_ASMR,他的平均响度为 -18 LUFS
  • 我们想要在低动态范围 state 时让二者音量动态没有区别,那就需要让 VO_Battle_Ulti 减小 3db,让 VO_System_ASMR 增大 3db。
  • 具体到 Wwise 中:

我们首先建立一个 State Group 用来控制动态范围叫做 Mst_DynRange,包含三个 State 分别是 DynRange_High_DEFAULT / DynRange_Mid / DynRange_Low.

在 VO_Battle_Ulti 和 VO_System_ASMR 管线上分别加两个 Wwise Gain 插件

用之前建好的 State 来控制 Wwise gain 插件的值从而达到效果 

要注意的是,这一操作的基础是

  • 你有非常清晰的响度相关的 Bus 分类
  • 你的响度标准制定和执行都非常牢固

在这样的基础下,你才能放心的通过这种方式来调整不同 Bus 的动态范围控制。

5. 结语  

从认识游戏混音重要性、理解游戏混音目标、搭建混音框架,到 Foundation、Micro、Macro、Dynamic、Mastering 五部分的单独讲解——试图让读者对整个游戏混音工作的流程有初步重视和了解。
 
在流程中提供可被复用的混音方法和技巧,通过相通的逻辑发散致各品类项目,使用这些工具完成自己项目的游戏混音工作内容。
 
在混音过程中可以尝试使用不同的工具和技巧,但请不要被各种花哨的参数迷惑,要知道最终的评判标准永远是玩家和你的耳朵。
 
所以请务必相信你的耳朵!并且锻炼他让他成为更“准确”的耳朵。
 
本文是通过学习《绝地潜兵 2 动态混音 Wwise 线上分享》、《混音指南》等现有知识,将知识运用到工作项目实践,再重新提取总结完成的。十分推荐在阅读本文再学习一遍《绝地潜兵 2》动态混音分享的 Wwise Up Air 视频,相信一定会有更多收获。
 
感谢您阅读本文。

闫鹏

资深游戏音频设计师

弹指宇宙音频部

闫鹏

资深游戏音频设计师

弹指宇宙音频部

闫鹏毕业于浙江大学,在游戏音频领域6年的从业时间内,先后任职于网易雷火事业群和杭州弹指宇宙。负责音频统筹、架构、混音、制作、功能开发和性能优化等工作。 曾将担任《天谕》手游主音频期间开发的乐师音频玩法带到GDC 2022全球游戏开发者大会的舞台。近几年参与了《无尽梦回》、《超时空跑跑》等项目的音频开发,目前着手于《三国望神州》、《诡秘之主》的游戏混音工作。 同时,他也是一名DJ/ Playback Engineer,曾与王嘉尔/ 沙一汀/ 刘柏辛/ NTS RADIO等艺人和机构合作演出。

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

利用 Wwise 设计基于循环的汽车发动机声音 | 第 1 部分

在本系列博文中,我们将介绍如何利用 Wwise 设计基于循环的汽车发动机声音(文中配有相关音频示例,及有关汽车的基础知识)。 ...

26.1.2022 - 作者:阿托•科伊维斯托 (Arto Koivisto)

在《BPM: Bullets Per Minute》中将音乐和玩法同步

决定要制作怎样的节奏 FPS 《BPM: Bullets Per Minute》是一款节奏动作 FPS 游戏,当中的射击、换弹、跳跃和躲闪动作全都与节拍同步。...

18.8.2022 - 作者:Awe Interactive

如何使用 Wwise 和 Unity 创建可对音频作出反应的对象

在此,我想向大家展示如何使用 RTPC 在 Unity 中移动游戏对象,并创建由音频驱动/可对音频作出反应的对象。本文要求读者具备 Wwise-101...

28.5.2024 - 作者:Tomokazu Hiroki

Audiokinetic Theater 演讲概要|GDC 2024

在 2024 年 GDC 大会上,我们有幸邀请到了众多音频专业人士在 Audiokinetic Theater...

20.11.2024 - 作者:Audiokinetic (音频动能)

《Unpacking (搬家模拟器)》拟音设计背后的趣事

《Unpacking...

20.2.2025 - 作者:Jeff van Dyck

Step Sixteen | 利用 Unity 和 Wwise 开发步进音序器应用

简介 大家好,我叫马特,目前在 Rogue Waves 担任声音设计师。我们主要为游戏音频和后期制作构建音效库。不过,有时也会开发一些相关的软件。Recently, however, we...

5.3.2025 - 作者:Matt Sweeney

更多文章

利用 Wwise 设计基于循环的汽车发动机声音 | 第 1 部分

在本系列博文中,我们将介绍如何利用 Wwise 设计基于循环的汽车发动机声音(文中配有相关音频示例,及有关汽车的基础知识)。 ...

在《BPM: Bullets Per Minute》中将音乐和玩法同步

决定要制作怎样的节奏 FPS 《BPM: Bullets Per Minute》是一款节奏动作 FPS 游戏,当中的射击、换弹、跳跃和躲闪动作全都与节拍同步。...

如何使用 Wwise 和 Unity 创建可对音频作出反应的对象

在此,我想向大家展示如何使用 RTPC 在 Unity 中移动游戏对象,并创建由音频驱动/可对音频作出反应的对象。本文要求读者具备 Wwise-101...