在这篇博文的第 I 部分中,我们探讨了 Hybrid 互动音乐及其重要作用,并希望日后能进一步拓宽音乐在游戏中的应用范围。另外,还讨论了《Get Even》游戏音乐背后的创新思路。接下来,在这篇博文的第 II 部分中,我将为大家呈上“《Get Even》Hybrid 互动音乐 - 技术演示”。
我为《Get Even》的音乐创建了很多交互系统。在此,我只挑下面这一个来详细说说,因为光这个就已经够复杂的了!
系统 1 - 实时生成的音乐
在《Get Even》的第一个关卡中,你会发现自己身在一个废弃建筑里。你的目标是找到被绑架的小女孩。前方剧透,注意回避!你控制的主角和其他玩家并不知道接下来可能会小命不保。在玩家找到小女孩时,会发现她身上绑着炸弹,无论如何都没法拆除。作为游戏制作方,我们还预先知道主角是在重温这段创伤。我们认为其潜意识在试图留住这段记忆,而这会令这段经历几乎让人无法忍受。
在《Get Even》中,你必须拯救这个小女孩。
正如我在这篇博文的第 I 部分中所说,我需要用剧情声作为音乐的起始点。我想到可以使用各种各样的房间底噪,玩家会不停穿过一个又一个房间和走廊,所以这是可行的。于是,我们就以 C 调创建了所有房间底噪(在 3D 环境下,每个房间至少采用 4 个发声体来创建底噪)。另外,还添加了一些电灯的嗡嗡声,使其遍布整个关卡(各自设有发声体)。在这里,我们同样设法将其调成 C 调。这 2 个元素是音乐织体的支撑要素。我以 C 调创建了包含不同分层的持续低音 (2D)。一开始将其与房间底噪混合在一起,然后再在玩家越来越接近小女孩时配以电灯的嗡嗡声,以此来增强失真效果。这样做出来的效果非常不错。不过,我们还想更进一步,让音乐变得更加有意义。
定时炸弹是这款游戏非常重要的一个元素。我觉得定时器滴答声很可能成为这款游戏的标志性要素。所以,如果在玩家越来越接近小女孩时加快滴答声,气氛就会越来越紧张,游戏也会变得更有意义。这时我突然灵光乍现!滴答作响的定时器能否用来影响主角(即玩家)的感受呢?这个基于真实记忆(角色的记忆)的虚拟现实世界会不会向你传达出更深层的含义呢?毕竟,角色在潜意识里明白这个声音会将自己一步步带向死亡。
所以,我们希望定时器的声音能改变玩家所处环境。那么,到底该怎么做呢?
对于熟悉舞曲的人,我相信你们一定对旁链压缩的原理都不陌生。来看下维基百科的解释:“设有旁链输入的压缩器可根据旁链输入端信号的电平来控制从主输入到输出的增益。旁链输入常被 DJ 用于在讲话时自动降低音乐音量。”
于是,我就采用了这种技巧,不过是按照自己的方式。我把旁链压缩用在了游戏的环境声上,而不是用于音乐。如果正在下雨或有风都可以使用,也可以用于房间底噪或游戏中的发声体,我可以自由选择是否对其进行旁链压缩。
Wwise 中旁链压缩背后的奥妙之处
首先,需要用到 Meter(电平表)效果器。在此,不妨参考一下 Audiokinetic 精心制作的教程,了解如何使用旁链压缩。
下面是我设置的 “Pumping_off_beat” RTPC:
RTPC Pumping_off_beat
然后,我采用了一个 BUS。此处设有一个普通 BUS(Pump,即旁链输入)、若干音量曲线和一个低通滤波器。这会在 RTPC 收到信号时让被压缩的 BUS 输出音量降低。
我想完全控制旁链输入的信号源,于是就用 Wwise Synth One 生成了一个最简单的正弦波声音并控制其 ADSR。
简单的正弦波(通过 RTPC 控制 ADSR)
通过 RTPC 控制正弦波 ADSR(注意:并未显示刻度值)
另外,我还想单独控制音量突变效果的强度。于是,我就另外创建了一个 RTPC,以便将突变效果调得非常含蓄或非常明显。我将其命名为 Pump_ON_OFF_Beat_Intensity。
利用 RTPC 控制旁链信号音量突变效果的强度
这时,我就可以用 MIDI 触发正弦波,并在任一 BUS 上进行旁链压缩。从下图可以看出在 120 BPM 下每 2 个小节便会触发一次正弦波(在 60 BPM 下为每小节一次)。
不过,真正的窍门在于从音频里去除正弦波声音,因为你肯定不想在每次进行旁链压缩时都听到哔哔声。于是,我就在 Pump(旁链输入)总线上启用了 Wwise 增益,并将其调至 -96 dB。从下面屏幕截图中还可以看到我创建了不同类型的旁链。有一个是平时用得比较多的 (Meter_Pumping),我另外还创建了一个反转版本 (Meter_Pumping_Inverted)。在正弦波播放时,带有旁链的 BUS 也会跟着播放。在正弦波停止时,它就会随之停止。这非常有用,我可以让循环声音(如电灯嗡嗡声、持续低音、漏水声等)按照特定的节奏模式播放。另外,我还创建了一个旁链,不过在这篇基础博文中就先不说它了。最妙的是,我可以利用 RTPC 在不同类型的旁链之间切换(切换音量突变效果)。
创建 3 种不同类型的旁链压缩,通过不同增益控制正弦波音量
利用 RTPC 切换旁链类型
完美的 1 小节
现在,想必你已经了解了我的旁链压缩应用原则。接下来,我们来看看实际的例子。
下面屏幕截图中的模式是循环的。在 60 BPM 下每小节循环一次(在 120 BPM 下为 2 小节一次),这就是定时器滴答声。我添加了一个名为 Tempo_prologue 的 RTPC 来控制曲速。玩家越接近小女孩,参数值就变得越大。这个 RTPC 对多个对象起作用:
- 音乐的速度
- 持续低音强度
- 定时器声和混响
在游戏过程中,你会听到房间底噪(C 调)、电灯嗡嗡声(C 调)、逐渐增强的持续低音(C 调)、蒸汽管道滋滋声全部都带有旁链效果,同时与定时器的声音同步。越接近小女孩,节奏越快强度越大,定时器滴答声也就越真切。我是这样做的:
- 在蓝色部分中,音乐序列在 60 BPM 下每小节循环一次(在 120 BPM 下为 2 小节一次)
- 在绿色部分中,可以看到 MIDI 触发的正弦波(实时生成)
- 在粉色部分中,可以看到被旁链压缩影响的所有元素。其中,包括环境声 BUS、音效(循环播放)和持续低音。
- 在黄色部分中,可以看到 MIDI 触发的定时器滴答声(采样器)
从下图中可以看到持续低音如何随曲速加快而同步增强
Tempo_Prologue RTPC 越快,持续低音越强
对于定时器滴答声来说,有点不好办。我希望声音在开始时音高非常低并带有很大的混响,曲速越快(玩家越接近小女孩),声音就越近越真切(音高越高)。于是,我使用 Sampler(采样器)创建了一个 MIDI 乐器。虽然可以通过 MIDI 来触发定时器,但是我需要根据速度创建不同的开始点,还要考虑对强拍的处理。于是,我就使用了一个 Switch Container(切换容器),并为其应用了 Tempo_Prologue RTPC。然后,在音乐编辑器中添加了会根据曲速播放的切换轨道。效果非常不错!!!
利用 Tempo_Prologue RTPC 控制切换容器(交换切换轨道),并使定时器与强拍保持同步。
实现定时器声音的混合容器,在 Tempo_Prologue RTPC控制下,能更好地表现音高较低的音效清晰度的渐变
最后,我添加了一个混响效果器,在较低曲速下赋予定时器一种不祥的感觉。同样地,混响会随着 Tempo_Prologue 加快而逐渐消失。
为 Tempo_Prologue RTPC 所控制的定时器声音应用混响效果
最终,我只用了一个 RTPC (Tempo_Prologue) 和 1 个小节 (60 bpm),就将整个关卡的音乐体验有机地融为了一体。如果开发人员要修改关卡的规模,音乐仍然可以根据情况发展而不断变换。因为 RTPC 会根据玩家与小女孩的距离不断进行调整,所以操作起来十分方便。
这只是我为《Get Even》创建的诸多系统之一。在你玩这款游戏的时候,我相信实际效果会说明一切。这对制作过程来说也很实用。因为音乐是基于游戏参数实时生成的,所以我不用担心在游戏制作过程中会有什么变化。
布鲁塞尔爱乐乐团 24 人弦乐组的实录音乐与实时生成的音乐相配合
结语
在这篇博文的第 I 部分中,我说了互动音乐的应用潜力肯定比我们想象的更大。这篇博文的第 II 部分可能会让你疑惑声音设计和音乐之间的界线在哪儿。这也在情理之中。我认为,只要你开始跟和声和曲速打交道了,那就算踏入了音乐领域。涉足实时生成的音乐将为你打开一个崭新的世界,让你可以为游戏制作音乐,并了解如何提升玩家体验。我利用布鲁塞尔爱乐乐团演奏的一些极富表现力的乐曲制作了一个小时的实录音乐。在把它与我创建的所有系统相结合的过程中,我收获了很多乐趣。另外,我还使用 Wwise 中的采样器和 MIDI 工具创作了很多其他乐曲。我极尽所能创作了这部作品,希望有兴趣的人可以玩一玩这款游戏,探索各个系统的奥妙之处。这里有个视频简要地介绍了一些系统。
在此,我要感谢菲利普·哈吉泽 (Filip Hajzer)、克里斯·格兰特 (Chris Grant) 和大卫·吉诺 (David Guinot)。他们与我一起彻夜奋战,让这一切成为了可能!你们太棒了!
另外,还要特别感谢 The Farm 51 的开明协助、Bandai Namco 的强力支持,当然还有 Audiokinetic 给我提供的帮助以及他们开发的绝妙工具。
在此,我要对所有开拓者们说一句:感谢你们!
《Get Even》原声配乐已被国际电影音乐评论家协会 (IFMCA) 提名“电子游戏/互动媒体类最佳原创音乐”奖项,并荣登 CLASSIC FM 电台 2017 年 5 佳游戏配乐榜单,同时还在 2017 年欧洲游戏开发者大奖 (Develop Awards) 颁奖礼上被提名“最佳音乐设计”奖项。
评论