引言
本文主要探讨在Wwise当前版本中,可以应用的各种局部线性控制的手段,以及他们的适用条件,各自的优势以及局限性。这些手段的使用与触发可以不依赖程序的支持,可以被设计师任意运用与调整,甚至可以互相联动,从而产生更为动态的效果变化。本文不涉猎具体的操作与技巧,旨在探讨想法、思路与概念,希望可以为各位设计师,在混音或搭建实时混音时提供一些设计与思考的方向。
一、背景说明
众所周知,非线性是游戏的自带特征。在游戏中,玩家行为的不受限是游戏体验的核心要素,但同时,这种不可控的玩家行为也是声音设计的一大难题。为了更好的应对玩家可能出现的各种行为,声音设计师会将声音拆分成单元化的元素,再将这些彼此独立的声音元素通过声音引擎整理成一个又一个的模块,放入到游戏中。这样的方式可以保证玩家在相应的位置(时间与空间上)听到与之匹配的声音。对于设计师而言,我们可以控制声音触发的内容与触发时的状态,但在声音的播放过程中,改变声音的播放效果则更加麻烦和复杂。相对非线性的游戏而言,这种在声音播放过程中,改变声音播放效果的方式,是线性的控制。
从这几年的引擎更新及声音设计的分享中,可以看到,很多设计师都在尝试在非线性的游戏中加入线性的控制,来对声音进行更为复杂的效果处理。比如Wwise 2018的版本增加了time RTPC,其后的版本还增加了Soundseed Grain等,都是为了更好的让设计师可以对声音进行更为复杂的变形或效果处理。这种更为复杂的处理可以理解为是在非线性的游戏中,加入了局部的线型的控制。当我们想要应用这种局部的线型控制时,需要考虑很多元素,比如何时开始这种局部的线型控制,控制的对象是谁,控制的时长是多久,控制的效果是什么样的,效果的变化方式是什么样的等等。这些诸多的问题会对线性控制的应用产生一定的限制,而想要解答这些问题,需要先理解线性控制的本质是什么?以及它与非线性游戏的结合点到底在哪里?
想要解答这些问题,首先要看看,究竟什么是线性控制?以及在线型控制中,声音是如何被处理及变形的?接下来我将用两种大家熟知的手段来探讨这个问题。
二、DAW中常见的两种线型控制手段
第一种处理手段:自动化
自动化是声音设计师,在各种DAW中最常用到的手段,设计师通过编辑包络线来让声音产生变化。如图是音量的包络变化。
在DAW中,包络线可以应用到各种效果数值上,比如音量、声像、效果器的参数等等。当我们播放声音时,效果数值会根据线的起伏产生相应的数值变化,从而产生对应的听感效果。比如当我们做混响送出声音的效果时,是通过包络线控制混响中干声和湿声的比例实现的。
第二种处理手段:低频振荡
低频振荡是我们在合成器中使用的一种方式,低频振荡通过选择一种振荡波形(比如正弦波、方波等)。当效果参数被振荡波形控制时,效果参数会跟随振荡波形的波形形状产生变化。设计师可以通过控制振荡波形的频率来控制效果变化的速度。
由此可以得出一个结论,常规的线性控制的手段,是让声音会在一个固定的时间段内,产生相应的效果数值变化。这种效果变化的衡量参数有三个,第一个是时间,第二个是对应效果参数。第三个是曲线变化方式。
曲线的变化方式其实本质上就是效果变化的速度,将其单独列为一个衡量因素是因为很多时候设计师没有办法精细的控制每个时间点的效果参数,更多的时候。设计师通过使用固定的线型或波形对声音进行控制,这一点在Wwise的操作中极为明显。
从上图中可以看出,由时间、对应效果参数变化幅度与变化曲线构成的控制方式与Wwise中的RTPC是极为相似的。
(图为Wwise中的RTPC)
那么在Wwise中控制声音线性变化的方式都有哪些?每一种控制方式的有点与缺点是什么?
三、Wwise中可以使用的线性控制方式
1. Time RTPC
在Wwise的2018及更高版本中我们可以通过使用 time RTPC来实现对声音的效果变化进行线型控制。Time RTPC的横坐标是秒,最大可以设置为100s,纵坐标是对应的效果参数数值,通过对RTPC 线型与拐点进行编辑,即可实现在单位时间内对声音进行效果参数的变化处理。当音频样本被播放时,time RTPC会自动触发。它的控制方式与声音设计师在DAW中使用的包络线是一样的。
2. Set Parameter
Set Parameter可以应用于任何Wwise版本。Set Parameter,可以作用于任何parameter,它通过事件触发,可以设置从当前数值过渡到任何横坐标数值(取决于value的数值设置)的时长,以及 Parameter变化的“速度”。(如果需要改变音量,音调或滤波效果,直接使用Set Volume/Pitch/HPF等属性动作相比之下更为直接。但是如果需要对效果插件内的参数,或辅助发送数值进行设置,则只能依赖parameter)
与time RTPC不同的是,set parameter中横坐标数值从 当前数值过渡到value中设置的数值,在指定的淡变时间(fade time)内,属性变化并不一定是匀速的。属性变化速度取决于我们设置的淡入线型(fade-in curve)。因此在使用set parameter时,音频属性的变化速度,是被RTPC中编辑的线型与拐点,以及在set parameter中设置的淡入线型(fade-in curve)两种线型共同影响的。
3、SoundSeed Grain
SoundSeed Grain的功能与应用方式与其他的粒子合成器是相同的。在SoundSeed Grain内,我们可以通过使用LFO来控制各个参数,从而让样本在单位时间内产生不同的效果,同时我们可以通过time RTPC来对各个参数进行更为精准的线性控制,或使用set parameter来通过其他事件影响SounSeed Grain中的参数变化,来形成联动的控制效果。
4、Meter与Sidechain
Meter是Wwise各个版本中都可以使用的插件,meter的作用是获取经过总线的声音的音量,当我们将meter与parameter进行关联后,可以通过获取的音量控制RTPC的横坐标读数,从而根据在RTPC中编辑的线型与拐点,来影响纵坐标的效果数值的变化。
这种方式与我们在DAW中使用的侧链(sidechain)的原理是极为相似的,是使用一路信号来对另外一路信号产生作用。在这样的控制模式下,首先需要一路信号激发对其他信号的控制效果,在这里我们可以称其为“激发样本 ”,因此被控信号的控制时长则完全取决于激发样本的时长。这一点与其他的控制方式是有很大区别的。
另外一个不同点在于,由于横坐标数值是被激发样本的音量所影响,因此,在这样的模式中,纵坐标代表的效果参数的变化幅度与速度是同时被在RTPC中编辑的曲线线型与拐点,以及激发样本的音量与波形两层参数所控制。举例说明,假设我们在RTPC中将音量的变化以直线线型控制,如下图所示,纵坐标的数值(音量)跟随横坐标数值(-48~0)匀速变化。如果使用一个1HZ的正弦波作为激发样本去控制图中的parameter,那么在1秒钟内,被控制样本的音量会随着1HZ的正弦波上升并下落两次。
四、4种线性控制的优劣分析
尽管我们可以使用四种方式对声音进行局部的线型控制,但是由于游戏的本身的非线性特点,何时使用、如何使用、在何处使用这些线型控制手段是非常重要的问题。首先,先来分析一下每种方式具有哪些优点和缺点。
1、Time RTPC
如上文所述,time RTPC是最接近DAW中自动化控制的操作方式,同时它也带有与自动化控制相似的不便捷性。
优点:
- 直观好操作,设计师只需要对应秒数编辑曲线拐点的纵坐标数值即可
- 具有一定的走带控制功能
- 既可以用于单独的样本层级的效果控制,也可以用于模块层级的控制。
- 由于是可以跟随音频样本的播放而自动触发,可以应用于不依赖事件的播放内容切换方式(比如switch或state等)。
- 可以使用同一套数值循环处理音频效果,并且可以限制循环的次数
- 可以应用于倍速系统下
缺点:
- 不能反向运行,只能跟随时间单向运行
- 如果需要非常复杂的效果变化则需要对RTPC曲线进行大量编辑
- 效果参数的变化方式完全取决于RTPC的曲线线型,不再受额外的因素影响
- 跟随样本触发,触发时机几乎没有可选择性
- 针对时长控制的灵活性差,设置的时长是多少就需要花费多少时间
从以上几点可以看出,time RTPC比较适用于对线型控制具有强需求的,且不需要灵活触发的情况。
适用于以下几种情况:
- 脚本动画中的声音需求,可以将游戏中现有的音效在脚本动画中复用,并用time RTPC进行音量、声像及各种效果的编辑。
- 剧情向游戏中,触发时间点固定的剧情相关音效及场景组件音效
- 固定时长的音乐过渡
- 应用在SoundSeed Grain中进行envelope的编辑
2、Set Parameter
Set Parameter的运行原理是使用事件去触发效果参数的变化,set parameter与time RTPC一样也是依赖于直观的时间变化控制,它具有与DAW中自动化编辑类似的控制方法,但是相较于自动化,在部分功能上有更加灵活的优势。
优点:
- 可选择性触发,控制上相对灵活
- 数值的变化可以正向或反向变化
- 触发的event可以是任何event。不需要和被控制样本使用相同的event。
- 可以通过RTPC曲线线型与fade-in curve曲线线型两重线型进行控制,可以通过两种线型的组合形成更为复杂的效果变化。
- 既可以用于单独的样本层级的效果控制,也可以用于模块层级的控制。甚至是总线层级的控制。
缺点:
- 没有event就不能触发
- 当parameter的value达到了设置的数值时,会保持不变,需要reset parameter,或再次set parameter才可以让数值重置或变化到指定位置。
- 一次只能从parameter的当前数值变化到一个被设置数值,如果需要在多个数值之间来回切换需要设置多个set parameter或者对RTPC曲线进行更为精细的编辑。操作上相对复杂。
- 针对时长控制的灵活性差,设置的时长是多少就需要花费多少时间
- 由于是依赖事件触发的方式,不可以应用于不依赖事件的播放内容切换方式(比如switch或state等)。
- 不可以使用同一套数值循环处理音频效果
- 无法套用在倍速系统上
相对于time RTPC而言,set parameter具有更强的灵活性与组合性,由于其是利用event去影响其他音频单元、模块或总线层级的音频效果,可以构建音频的联动效果,因此其可应用面可会更加宽广。
适用于以下几种情况:
- 针对于特殊状态、特殊空间下的效果数值变化(进入和退出需要有固定的事件触发)
- 音乐的特殊启动与特殊停止(利用效果器辅助音乐的淡入与淡出)
- 在某些高优先级的声音触发时,进行听感规避(高优先级的声音的时长需要确定,且不能被打断)
- 作用于SoundSeed Grain,跟随特定事件的触发,改变envelope的编辑
3、SoundSeed Grain
SoundSeed Grain具有一定的线型控制能力,但是相较于其他的几种方式,它更多的处在对样本层级进行编辑与处理的执行者位置,其本身对RTPC以及time RTPC都具有一定的依赖性。
优点:
- 可以进行更为复杂,更为强大的参数控制与处理
- 由于同一个参数可以被多重线型控制,多种参数也可以被同一或多重线型控制,使其可以构建极为复杂的效果控制系统,可以兼顾自发变化与联动变化。
- 可以使用同一套数值循环处理音频效果,并且可以限制循环的次数。
- 数值的变化可以正向或反向变化
- 可以借助LFO进行数值变化的控制
- 可以被其他三种手段影响
- 由于是可以跟随音频样本的播放而自动触发,可以应用于不依赖事件的播放内容切换方式(比如switch或state等)
缺点:
- 只能进行样本层级的处理,不能处理模块或总线层级
- 部分效果的线性控制依赖与其他三种方式
- 操作复杂理解抽象
- 虽然本身具有线型控制的能力,但是依然非常依赖RTPC与time RTPC等。
可以看出,SoundSeed Grain虽然功能强大,但是其在线性控制的应用上很大程度需要依赖其他三种方式,由于它具有控制与被控制的双重特征,且只能对样本层级产生影响,使其在应用方式上与其他三种方式大为不同。
适用于以下一种情况:
- 在任何情况下,对某个音频样本的复杂效果变化
4、Meter与Sidechain
可以说,meter的运用是四种方式中最为有趣的一种。这种类似侧链的控制方式,其变化的时长控制并不是最直观可视的“时间”,而且以样本的时长与波形双重构成的,在这样的模式中,效果变化的方式可以更加灵活且复杂。同时,使用激发样本对声音进行效果控制,既可以通过事件来触发效果变化,但又不依赖于事件。
优点:
- 可以通过事件触发,同时也是跟随音频样本的播放而自动触发,可以应用于不依赖事件的播放内容切换方式(比如switch或state等)
- 数值的变化可以正向或反向变化
- 参数的变化方式可以被两重线型影响(激发样本波形、RTPC的曲线线型),可以通过组合产生复杂的变化效果。
- 可以被其他三种手段影响,激发样本可以重复利用,并且可以通过使用time RTPC、set parameter或者SoundSeed Grain来对激发样本进行重新编辑,更复杂的联动控制、或更为复杂的样本变形。
- 可以使用同一套数值循环处理音频效果
- 时长可以灵活控制,激发样本的播放并非是不可以被打断的
- 既可以用于单独的样本层级的效果控制,也可以用于模块层级的控制。甚至是总线层级的控制。
- 可以用不同复杂线型组合一种单一线型进行控制(下文会具体解释)
- 可以适用于倍速系统
缺点:
- 激发样本占用通道
- 依赖meter的使用会增加消耗
- 非常不直观的控制方式,十分抽象,需要对激发样本进行反复编辑和尝试
- 总线分配与工程结构会变得复杂
可以看出,使用这种侧链式的控制具有相当多的优点。这种方式结合了侧链原理、自动化控制原理和低频振荡原理的部分思路,本身具有更强的灵活性。由于它具有控制与被控制的双重特征,同时又可以控制音频单元、音频模块和总线层级,使得这种方式具有很强的联动性。它可以作为音频单元、模块、总线之间互相影响的桥梁,可以让设计师打造一套复杂的联动系统,这种联动系统可以像多米诺骨牌一样,让一个样本的播放产生多层次的连锁反应。
适用于以下几种情况:
- 针对于特殊状态、特殊空间下的效果数值变化
- 音乐的特殊启动与特殊停止(利用效果器辅助音乐的淡入与淡出),以及音乐的特殊过渡方式(利用效果器辅助过渡)
- 在某些高优先级的声音触发时,进行听感规避
- 作用于SoundSeed Grain,影响envelope的编辑
- 其他依赖音频联动效果的位置
五、比较Meter与Set Parameter
这里,通过对比meter与set parameter来解释什么是可以用不同复杂线型组合一种单一线型进行控制,以及为何要解释这一个概念。
首先,先解释一下什么是单一线型,在Wwise中,很多效果器的参数只能被一个parameter参数所控制(如果想使用两种线型在两种不同的情况下对某个参数进行修改,需要插入两个效果器来完成),在这样的情况下,该parameter作用在这个效果器上的RTPC线型即是一个单一的线型(与曲线形状无关)。
此时,假设我们使用set parameter来控制,由于在使用时,设置中的fade-in curve会对对应参数的变化效果产生第二层影响。因此这个参数的效果变化是被两个不同的曲线共同影响的,即该参数的单一线型与fade-in curve线型进行了组合。由于fade-in curve的线型本身非常简单(虽然可以通过多次设置进行线型组合,但是操作繁琐,且不能循环),且只能在几种线型中进行选择,因此不能进行更为复杂的效果变化设计。
相较于set parameter,meter依赖于激发样本的波形变化,可以理解为什么样的波形,就可以产生什么样的线型控制。这样的方式与低频振荡有类似之处,不同点在于,即便是同时使用正弦波作为控制的基础,meter读取的是音量的变化,即在正弦波播放的一个周期内,只会读取到两次数值的上升与回落。而低频振荡读取的是相性,即在正弦波播放的一个周期内,会读取到正负两种相性。
尽管不如低频振荡强大,但是meter本身以音量变化影响其他参数的机制,使其可以以简单或复杂的波形去影响其他参数,即可以以不同复杂线型组合一种单一线型。
在这样的情况下,达到同的控制效果可以不用增加效果器的数量,而是通过对激发样本的音量变化进行编辑即可完成不同的效果变化控制。这可以增加设计师对同一个效果器的利用率。在更高的Wwise版本中,利用time RTPC来反复编辑同一条基础的激发样本可以减少对不同激发样本的数量需求,避免样本数量影响包体大小。
六、联动、实时性与声音影响声音
解释了这么多关于线性控制的方法,到这里,需要讨论一下为何需要在游戏中去应用线性的控制手段?随着游戏开发技术的日益进步,可以发现,玩家在游戏中的行为,对游戏中的其他数值、画面效果、剧情发展等都有可能产生连锁反应。这种蝴蝶效应被越来越多的应用在了玩法与玩法之间的关联,剧情走向与玩家抉择之前的关联等等地方。抛开这些开发行为,单纯分析为何要创造这种蝴蝶效式应体验?其需求源头是玩家对游戏体验中的随机性、可玩性、复杂性等需求的日益增长。
但是,游戏的开发并不能是无限的,游戏的资源量终究是要被限制的,即便是一个上百G的游戏,如果没有很高的随机性、可玩性与复杂性,也经不住玩家的反复探索。因此为了解决玩家日益增长的游戏体验需求与资源生产限制的矛盾,就必须有一种可以高效、反复利用资源的方式,因此才有了这种的蝴蝶效应式的游戏体验。
在游戏音频开发中,同样也需要一种方式来用有限的资源创造出更多、更新奇的听觉体验。这种方式就是实时混音。
实时混音其实比较好理解,即在不同的地方、不同的状态、不同的时间、甚至不同的剧情下听到不同的声音。最常见的例子就是玩家在不同的空间下,可以体验到不同的声场效果。然而,随着玩家的要求提升,这种声场的体验被越来越多的玩家视为游戏中“必备”的设计,这使得设计师越来越难让玩家有新奇的声音设计体验。
实际上,我们可能需要去跳出真实声音体验的思维限制,从其他的声音设计思路上来寻找一些突破口,来辅助进行声音设计,为玩家带来全新的体验。这些设计思路可能会更加的夸张更加的非现实,他们可能来自于一些电子音乐的声音制作与处理手段,让声音变得更加的酷炫、扭曲。也可能来自于对传统处理手段的另类应用,让声音在特殊的状态下产生怪异的效果。不管是使用何种思路、何种方式,其本质都离不开对声音效果的实时处理。
那么我们怎么实现对声音效果的实时处理呢,我们可以让程序将效果变化的parameter与游戏中的逻辑进行绑定,这是非常传统且非常有效的方式,但同时,设计思路以及控制方法也可能会被游戏的逻辑锁限制,且需要依赖程序配合我们完成设计。或者纯粹利用Wwise的功能完成一些不依赖程序逻辑的方案设计,这会给设计师更多的可控性。而如果想要不依赖程序去产生一些实时的效果变化,则需要通过某种方式来触发效果的变化。这就涉及到音频单元、音频模块,甚至总线层级的互相联动。
在Wwise中,联动是可以跨层级的,音频单元、音频模块和总线层级,他们之间的联动从来都不需要对等。而联动可能产生的后果是联动的效果无法被控制,这就是为何要应用到线性控制手段。目的就是帮助设计师去更好的控制实时混音中的各种效果变化。
那么什么又是声音控制声音呢?其实这个概念本身就与meter的用法极为相似,但是也有不同的地方,我们可以从两个层级去理解:
第一层是宏观设计层面的,在游戏中,声音单元最多的行为就是播放(play)。因此每一个播放本身都极为重要和宝贵,因为它可以为我们改变声音实时状态提供一个触发的时机,也就是可以为声音的效果联动提供一个触发的时机。如果我们可以抓住每一个播放的时机去合理规划在这个特定时机下所需要的声音效果,就可以做到实时且动态的混音。除此之外这种以一个播放时机为基础去影响其他声音的方式,还可以给玩家带来一些刻意性的声音设计体验,这种刻意性的声音设计体验,可以让玩家耳目一新,满足玩家对新奇体验的需求。
第二层是微观手段层面的。手段层面是单独再对应用meter方式的进一步探讨。在上文中已经解释了什么是应用meter的方式,meter方式的优缺点,以及什么是不同复杂线型组合单一线型。在这里只是再单纯的谈一下应用思路。实际上meter的应用并不罕见,很多设计师都利用meter进行听感规避的处理。这里想要探讨的是,meter本身不仅仅可以应用于规避效果,它还可以应用于增益效果,门限效果,利用声音动态控制不同层级声音的效果变化等等。实际上用声音去影响声音本身就是一种混音的技巧,其本身也来源于我们在DAW中运用的混音手段。它可以通过发送和总线的设置来产生连锁反应式的效果,这本身就是极具自动化与实时性的方式。这种微观层面的手段应用,可以为我们在宏观层面去设计出更多的新奇声音效果提供手段与方法上的保障。
七、总结
游戏中的声音是一个完整的系统,而完整的系统需要各个单元各个模块相互协作、相互影响。声音不仅可以和玩家进行交互,声音和声音,声音和游戏本身也可以进行交互。这种交互式的声音结构,是游戏声音设计独有的魅力。实际上,我们早就离开了满足于基本声音元素,通过中间件拼装到游戏中并完成播放的时代。在当前的环境下,我们不仅需要能让声音播放,能让声音产生对应效果。我们还需要创造更多,更新奇的声音体验。未来,我们可能越来越多的需要去设计连锁反应式的声音变化,来创造更好的视听体验。
本文作为对想法、思路及概念的探讨,希望可以为大家在创造联动式的声音设计提供一些设计思路层面,以及控制手段层面的拓展。同时,也祝愿大家在未来可以为玩家带来愈加惊艳的声音体验。
评论
冰荷 杜
November 18, 2019 at 10:31 pm
很专业啊
冰荷 杜
November 18, 2019 at 10:32 pm
很专业啊
冰荷 杜
November 18, 2019 at 10:32 pm
很专业啊