毕业论文
您现在的位置: 拉力赛 >> 拉力赛介绍 >> 正文 >> 正文

赛车游戏如何做到对真实声音的模拟

来源:拉力赛 时间:2022/7/14

本文转载自知乎用户夏东平在《赛车游戏怎么做到对真实声音的模拟?主要是引擎那部分》问题中的回答。

曾经引擎类音效实现的原理是“转速分段+音高调制”,铺开来说大致是这样的:1,在规划阶段我们会把游戏中引擎的转速分成多个区间。例如所需引擎的转速会覆盖-rpm,以划分成三段为例,我们将-定义为低转速,-定义为中转速,-定义为高转速。

2,分别制作三段转速中,三个中间速度的音频循环样本,即rpm、rpm和rpm(取值出于简化说明目的,实际操作中不一定使用中间速度)。

3,在游戏中实时传送控制参数,首先判断车辆引擎在哪个转速区间运行,以循环播放对应区间的样本,同时参数也决定了该样本的音高调制比例。比如rpm时实际上播放的是rpm样本音高降低%的结果(还是出于简化说明目的,所谓“音高”的说法不是很科学,不过我们感受到最明显的变化确实是音高的升高或降低)。

上面的例子在如今两大主流音频中间件Wwise和Fmod当中呈现的形式:

Wwise里对应的功能模块是BlendContainer与RTPC(Real-TimeParameterControls)。由游戏中实时发出的转速信息决定播放的样本与其对应的音高变化。

Fmod中大同小异,参数控制播放内容。

4,在现有的基础上,会通过均衡器、失真等音频效果器来处理当前的结果从而表现不同的负载状况(比如空载高转速时失真会明显变大),原理同样是实时发送控制参数。有些引擎在不同负载情况下音色改变巨大,如果有表现需求的话,就需要分别录制不同负载的引擎在不同转速区间的样本。这是个多轨多参数音频事件问题,具体制作流程就不展开了。

这种方案最大的问题就在于它并没有线性地表现出引擎从到转速声音的变化,或者说它是伪线性的。因此为了尽量还原真实的引擎声音,在实践中根据不同情况把转速/负载拆分为二三十个样本也是有可能的,从而音频设计师往往需要耗费大量的精力来处理不同转速之间的衔接、调整音高升降比例、样本之间的响度关系、负载之间的切换等等问题。更大的问题在于,根据算法的不同,音高升降过程中的效果并不完全一样,因此这个环节很容易穿帮。比如我小时候特别喜欢玩儿极品飞车2,现在再听起来,最假的就是引擎加速过程中的声音,原因如上所述。

我相信很多大厂早已使用过更先进的技术手段,但真正在音频领域中普及新技术的是一家年成立的法国音频技术公司——AudioGaming。在到年间,AudioGaming连续发布了包括AudioWind、AudioSteps等多款基于物理建模或采样合成的ProceduralAudio程序(尚无统一的翻译,暂译成“演算音频”可能比较好理解,即由程序根据实时条件所生成的音频内容,而非实际录制的音频)。其中使得引擎类音效制作工艺实现全行业更新换代的程序是AudioMotors。

说到AudioMotors就需要提到一个声音合成手段:粒子合成(GranularSynthesis)(链接

转载请注明:http://www.0431gb208.com/sjszlfa/960.html