游戏音频中间件简介
发表于2018-10-08
引言:
国内游戏发展速度极为迅速,短短十几年时间游戏的引擎、玩法、画面表现等皆得到了极大的发展。然而作为游戏不可缺少的一部分,游戏音频技术却相比于画面,性能等发面发展极其缓慢。现如今较多的游戏公司已经开始重视游戏音频,引进游戏音频技术以创造更好的游戏音频体验。
本文主要从2个方面来简介游戏音频中间件:为什么使用游戏音频中间件,目前世界上最为先进的游戏中间件介绍。
从这两个方面来阐述游戏中间件的作用以及可以利用中间件创造的效果。
正文
一、为什么使用游戏音频中间件
在讨论为什么使用音频中间件前我们要先了解
1·什么是游戏音频中间件
所谓音频中间件,简单来讲即为对游戏音频的解决方案。
游戏音频中间件集成了可以公共设置的音频处理办法,并将其构造在编辑器中,声音设计师可以使用编辑器来独立的创造游戏音频价格和播放机制,而不需要程序代码参与其中,在完成了架构后,在根据游戏音频中间件提供的SDK与程序员进行对接,完成整个游戏的音频架构和播放机制。
在其中创造过程独立于程序代码,声音设计师可以完全按照自己的意愿利用编辑器来创造合适的音频体验,此过程中无需程序介入继而节省了很多的沟通和研发成本。
在这里我借用CRI-ADX2的介绍来说明游戏中间件。
可以看到一般声音设计师所创造的声音文件经过编辑器进行处理和打包后,将相关内容提供给程序员,程序员根据声音设计师在编辑器中所完成创造的事件(在ADX2中被称为Cue,而在Wwise和Fmod中被称为Event)决定何时播放事件,从而简化整个工作。
以上便是游戏音频中间件的简单工作原理。
2·为什么要使用游戏音频中间件
了解了游戏音频中间件,我们来说说为什么使用游戏音频中间件。想必这个问题是大家最关心的问题,一个游戏的开发本身就有较大的成本,那么为什么我们又要使用具有授权费用的游戏音频中间件呢?
(1)·成本
做个假设,我们正在开发一个RPG游戏,那么无论我们使用任何引擎,音频的播放规则上我们都需要程序员和音频设计师沟通,来决定每一个音频应该如何播放。程序员需要根据声音设计师设计的播放规则来逐个抒写代码来完成功能,那么这其中就夹杂了大量的码代码时间以及声音设计师和程序员的沟通成本。
虽然任何一个游戏音频中间件都有授权费用,但对于每次开发一个游戏都需要重新写播放规则的时间成本,人力成本以及声音设计师和程序沟通的时间成本和人力成本相对要少很多。
举个例子来说,如果声音设计师设计了这样一个规则,当角色死亡的时候我们希望所有的声音全部变得模糊,让玩家感受到较为模糊窒息的感受来强化死亡体验。那么针对这个规则,程序员首先需要知道这个效果如何实现,其次要写很多的代码来完成这个效果。
实际上这个效果使用简单的一个低通滤波既可以达到,然而如果不使用游戏音频中间件,设计师只能在DAW上模拟效果很难告诉程序应该如何达到效果,其次低通滤波的处理效果对于目前国内音频处理来言相对较为难以实现。而如果使用了音频中间件,设计师完全可以在编辑器中实现效果,且程序只需要播放某个事件或者更改某个参数即可达到效果。
除此之外,设计师可以利用编辑器很快的完成音频的处理,可以有更多的时间专注创作,完善音频体验,程序员则也省去了大量的工作,可以更好的为游戏其他方面进行优化,更好的完善游戏。
综上,音频中间件虽然有授权费用但能大量减少沟通,人力等成本。
(2)·效果
效果我们分为两部分吗,一个是静态效果处理,另一个是互动式动态效果处理。
①·静态效果处理
静态效果处理指完全由设计师主导的处理方式,例如多样本随机,音调的随机变化,静态声道随机变化等。
这些效果在音频中间件中是极其基本的功能,而声音设计师可以利用这些功能做到较少素材的较大效果变化,而且效果更佳突出,这也是不使用音频中间件无法达到的效果。
②·动态效果处理
动态效果处理指动态的变化产生的音频本身的变化,例如到达不同空间有不同混响效果,交互式音乐播放,动态混音处理等。这些功能我们一一详述。
·空间效果变化:
在原始素材中,我们渴望游戏听起来能有更加立体的效果,这时候声音设计师在制作素材的时候往往会加入一些混响效果来达到这个目的,这虽然可以达到效果立体化的目的,但是他不具备变化的特性,因为混响效果是加在素材层面的,根本无法更改素材的混响效果。
当使用音频中间件后,我们不再将混响效果加在素材层面,而是放置在游戏中,当角色达到固定区域是,可以调用混响效果的接口,改变混响效果的大小,或者更改混响效果参数,变化混响强弱。这种动态式的混响效果除了完成了素材的立体化外还为玩家创造了一个更生动的场景和游戏体验,也是沉浸式游戏体验不可或缺的内容。
·交互式音乐播放:
提起交互式音乐播放我想大家一定想起了3A大作,对于3A大作来说,交互式音乐必不可少,音乐的作用完全可作为情绪调节和调动作用。面对美如画的场景时播放舒缓的音乐让人沉浸其中,面对最终死敌时播放激昂的音乐让人斗志昂扬,这些音乐之间完美的过渡则能更好的为玩家提供这种沉浸式感受。在音频引擎的支持下音乐之间的过渡已变为无缝,不会产生任何的断点这也使得整个游戏体验过程完美不突兀。
下面是我曾经设计的某个游戏的音乐播放规则:
整个播放以完全无缝的方式进行过渡,涉及到任何场景,每个场景的音乐都贴合场景以达到最好的沉浸体验感受。
这些交互式音乐的播放以及切换规则,并非是几个程序员能够一朝一夕做得出来的,尤其在无缝转变的处理中有着更深的逻辑和规则。使用了音频中间件则可以轻松的完成这些内容,效果也绝对可以做大无缝转变。
·动态混音处理
声音设计师对于混音这个词应该并不陌生,混音决定了游戏内所有音频的混合播放效果。一般来说,在做好游戏音频素材后,声音设计师会进行一次统一的混音处理,以保证各个音频在游戏中混合起来后听感的正常。这一个过程称之为静态混音。
动态混音则是架构在静态混音之上,是在完成了静态混音后,在游戏进行过程中,由于特殊声音的触发,动态的更改其他一种或多种声音,当特殊声音播放完毕后,被更改的声音又恢复的动态处理过程。
例如在征程游戏过程中触发了语音独白,为了保证语音独白能够更好的被突出,我们会使用Ducking或者SideChain功能,将BGM等声音音量降低,以保证语音独白能够最优先的被听到。( 在CRI-ADX2中有React和SideChain功能,Wwise中有Ducking和SideChain功能而在Fmod中只存在SideChain功能)
除了降低音量外还能够更改低通,EQ等效果,可以方便和合理的让声音设计师设计出非常独特和出彩的效果。
综上所述,使用音频中间件完全可以减少成本,并可以更快速,方便的完成更好的设计和音频效果。使用音频中间件的好处远不止如此,音频中间件能做到的效果也并非一两句话即可全部表述的,这些都需要读者自己去摸索和总结了。
二·游戏音频中间件
既然游戏音频中间件能够创造更好的音频体验,那么目前来说世界级别的游戏音频中间件有哪些呢?
目前世界级别的游戏音频中间件一共有三种:CRI-ADX2,Wwise和Fmod
笔者有幸在工作中接触到游戏音频,并对这三款游戏音频中间件有所了解,在此处为大家介绍一二。
1·CRI-ADX2
CRI全称CRI MiddleWare,是一家日本厂商,主要为游戏提供音频和视频的解决方案,最为出名的就是音频中间件ADX2以及视频中间件Softdec2.
CRI-ADX2目前在日本最为广泛应用,无疑是日本的音频处理领头。
CRI-ADX2界面如下:
可以看到类似DAW的界面以及时间线,而左边从上到下分别是全局设置,工作区,素材区。 CRI-ADX2有着让声音设计师更加熟悉的DAW界面,所有功能也是以此为展开,相对而言更加容易让声音设计师上手。
CRI-ADX2的工作原理:
Material(素材)分配给各个Cue,在Cue中占用Truck轨道,而后Cue集合在CueSheet中,经过分装处理形成ACB文件以及AWB文件,这取决于你选择的播放方式是正常播放还是流播放。此时声音设计师的工作结束,将分装完成的ACB和AWB文件给到程序,并告知CueSheet和Cue即可完成播放。
CRI-ADX2的主要制作在Cue的制作上,可有各个种类的Cue
这些不同类型的Cue承载着不同的功能,比如随机播放,顺寻播放,条件播放等等。
在CRI-ADX2中,用于参数控制的称之为AISAC,他是改变truck轨道,Cue等属性的参数接口,声音设计师可以使用AISAC改变素材本身也可以和程序对接动态的更改效果。
CRI-ADX2拥有Fmod和Wwise没有的一个特别使用就是时间线自动化,该功能可以方便的使用AISAC更改素材本身效果,而在Wwise和Fmod中参数改变一定输出参数的名称,也就是没有自动化更改功能,虽然可以通过事件等方式可以达到目的,但CRI-ADX2在时间线自动化上更加方便,这个结果取决于音频中间件设计目标,Wwise和Fmod更注重动态变化,ADX2则提供了一部分静态处理。
如图所示
Pitch就是图中线条所示,可以进行任意的调整。
CRI-ADX2在交互音乐设计上主要使用的是Block,如图
通过Block的划分做切换的时机,这样可以让切换精确到节拍上,让过渡更加无缝。
CRI-ADX2区别于Wwise和Fmod最大的不同之处在于CRI-ADX2拥有自己的编解码格式,ADX,HCA,HCA-MX这三种格式为CRI-ADX2的独有编解码格式,而Fmod中则使用Vorbis,PCM以及FADPCM,Wwise中则使用Vorbis,PCM,ADPCM以及Opus格式。
以上是ADX2的简单介绍,不涉及具体用法,仅仅介绍编辑器样貌以及工作原理。
2·Fmod
Fmod现在主要运用为Fmod Studio,最初Fmod版本为Fmod Design,现如今已经进化成为Fmod Studio,国内一些游戏厂商开始引擎音频中间件就是使用Fmod。
Fmod界面如下:
同样可以看到类似于DAW的界面,相对音频设计师来说是相对较好上手。
Fmod工作原理:
波形素材文件分配给各个Event,再将Event分给Bank并打包成Bank文件后交予程序员,程序员根根据Bank文件和Event的名称进行播放。此期间设计师的工作就是设计架构,创造更好的Event以及更合理的分配Bank文件。
Fmod的素材部分对音频格式要求不高,无论是Wav,ogg还是MP3格式Fmod全部都支持导入,但CRI-ADX2和Wwise仅仅支持Wav格式的导入。
Fmod Studio的使用上主要为事件中的Instrument使用,Fmod包含了较多的Instrument
这些 Instrument决定了音频素材在轨道上如何根据时间线以及其他参数线进行播放的。
Fmod中parameter作为类时间轴的变化轴参数为使用方式,在轨道上进行Instrument设置,在参数的播放线到达Instrument时,根据Instrument类型进行不同效果的播放。
Fmod针对交互式音乐的设计主要来源于多个标记作用
Destination Marker是作为基础标记,用于标注方便其他内容运用。
Tempo Maker则是标记时间轴的节拍和速度的,方便对准节拍,用于精确切换。
Loop Region则是循环标记,在其内会不断循环播放。
Transition则是直接切换,会切换到所指明的 Destination Marker位置处
Transition Region则是切换标记,是一个区间内,当出发条件到达时会根据该Transition Region的分割,到达分割点进行切换。该功能除了做切割使得节拍点转变外还能进行转变的过渡段增加,使得转变更加平滑。
其中Transition,Transiyion Region和Loop Region可以设置参数条件,使之触发。
如图:
图中是笔者设计完成的一个相对较为复杂的交互音乐,可以看到运用了上述几乎所有的标记,以及parameter,这是一个完全无缝的交互音乐设计,但从功能上来说运用了Fmod的交互设计内容,看似复杂但如果理清播放规则,可以很有逻辑性的完成设计制作。
Fmod在交互音乐的过渡中相比Wwise和CRI-ADX2少了一个同时播放的过渡,例如白天和黑夜的切换过程,一般同一个地区的白天和黑夜,音乐设计上是只改变配器不改变其他,因此如果同时播放,到达时间点按照小结进行切换会非常平滑,而Fmod中不具备时间同步切换的功能。
3·Wwise
Wwise现阶段在国内的发展迅速,从腾讯大批量使用Wwise后,Wwise在国内音频的普及量得到了迅速的发展。
Wwise的界面如下:
wwise和ADX2以及Fmod的界面差别较大,没有类似DAW式的编辑区,取而代之的是各个参数图形,这使得wwise的理解和学习相对于Fmod和ADX2稍微有一点难度。
Wwise工作原理
声音设计师设计制作完成素材文件后,将素材文件根据播放规则放在wwise编辑器中的各种Container中,而后将各个Container放在Event中,并将Enent指定到Bnk中,并生成Bnk文件,Wem则是选择使用流播放后生成的文件。将Bnk文件交付程序员后,程序员根据Bnk和Event名称来播放音频。
Wwise包含大量的Container,这决定了基础播放规则
Random Container随机播放容器
Sequence Container顺序播放容器
Switch Container条件播放容器
Blend Container混合播放容器
这些容器可以相互混合使用,使得播放效果可以各种嵌套,有着非常大的灵魂性,类比于Fmod的Event嵌套,Instrument嵌套以及ADX2的Cue嵌套,他们都提供了强大而灵活的播放规则设计。
Wwise针对参数做了三种类型,RTPC,Switch和State,他们其实都是参数的范围内,只是RTPC是连续变化的,而Switch和State则是跳变的状态转变,不具备连续性。对于Switch和State的区别则是:State是全局变化,而Switch是单个变化。
简单来说就是State变化后,整个游戏和该State挂钩的会全部变化,而Switch变化时则时该event单独变化不影响其他。
RTPC:
State
在交互式音乐层面,Wwise则使用独立的交互式音乐设计方案,他与其他音频设计位置不同有专用的Interactive Music Hierarchy。
如图所示:
这里通过构建Switch和State作为播放条件设计填充了整个音乐播放架构,在Transition中进行转变的设计,从而达到无缝切换音乐。
使用思路上Wwise利用了原本的State和Switch作为条件管理整个音乐播放规则。
图中展示的就是通过条件来完成的播放规则内容。
Wwise除了征程Event外还提供了一个新的功能:Dynamic Dialogue动态对话。
以一个正常多选择向游戏,当玩家选择不同的对话时需要有不同的音频内容来播放,Wwise的Dynamic Dialogue动态对话功能就为这种音频设计提供了方便
图中所示的就是一个动态对话的应用方式,他类似于交互式音乐设计也是通过Switch和State作为条件决定最终的播放内容。
4·综合
CRI-ADX2,Fmod和Wwise各自的界面应用方式不同,但他们都能为设计者和程序提供方便以及提供更强大的设计效果。
除上述简述的内容外,三个引擎都支持2D,3D效果,DSP(Wwise中称之为Bus),以及各种各样的Plug-in,他们的各自功能并非以上内容能够涵盖的,且在使用上由于都具有各种应用效果,嵌套等可以实现多种多样的需求。
简述三个音频中间件没有任何对比的意思,只是各自用法不通用,实际用哪一个要看读者自行选择。
结语:
音频中间件的引入极大的优化的音频设计,降低了效果实现的难度,同时也为更好的沉浸式音频做好了技术支持。
笔者致力于研究音频中间件,音频中间件的内容之多绝不可能一文即可全部讲述完毕,三个音频中间件各自的用法也会在后续过程中逐渐向大家介绍。
最后也希望国内游戏的音频能够达到最高级的水准。