赛车游戏是怎么做声音的模拟?

如题所述

曾经引擎类音效实现的原理是“转速分段+音高调制”,铺开来说大致是这样的:

在规划阶段我们会把游戏中引擎的转速分成多个区间。例如所需引擎的转速会覆盖 1,000-7,000 rpm,以划分成 3 段为例,我们将 1,000-3,000 定义为低转速、3,000-5,000 定义为中转速、5,000-7,000 定义为高转速。分别制作 3 段转速中,三个中间速度的音频循环样本,即 2,000rpm、4,000rpm 和 6,000rpm(取值出于简化说明目的,实际操作中不一定使用中间速度)。在游戏中实时传送控制参数,首先判断车辆引擎在哪个转速区间运行,以循环播放对应区间的样本,同时参数也决定了该样本的音高调制比率。比如 1,000rpm 时实际上播放的是 2,000rpm 样本音高降低 100% 的结果(还是出于简化说明目的,所谓“音高”的说法不是很科学,不过我们感受到最明显的变化确实是音高的升高或降低)。

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

Wwise 里对应的功能模块是 Blend Container 与 RTPC(Real-Time Parameter Controls)。由游戏中实时发出的转速资讯决定播放的样本与其对应的音高变化。Fmod 中大同小异,参数控制播放内容。在现有的基础上,会透过均衡器、失真等音频效果器来处理当前的结果,从而表现不同的负载状况(比如空载高转速时失真会明显变大),原理同样是实时发送控制参数。有些引擎在不同负载情况下音色改变巨大,如果有表现需求的话,就需要分别录制不同负载的引擎在不同转速区间的样本。这是个多轨多参数音频事件问题,具体制作流程就不展开了。这种方案最大的问题就在于,它并没有线性地表现出引擎从 1,000 到 7,000 转速声音的变化,或者说它是伪线性的。因此为了尽量还原真实的引擎声音,在实践中根据不同情况把转速 / 负载拆分为 2、30 个样本也是有可能的,从而音频设计师往往需要耗费大量的精力,来处理不同转速之间的衔接、调整音高升降比率、样本之间的响度关系、负载之间的切换等问题。更大的问题在于,根据算法的不同,音高升降过程中的效果并不完全一样,因此这个环节很容易穿帮。比如我小时候特别喜欢玩《极速快感:飙风再起 2》,现在再听起来,最假的就是引擎加速过程中的声音,原因如上所述。我相信很多大厂早已使用过更先进的技术手段,但真正在音频领域中普及新技术的是一家 2009 年成立的法国音频技术公司——AudioGaming。在 2011 到 2012 年间,AudioGaming 连续发布了包括 AudioWind、AudioSteps 等多款基于物理建模或采样合成的 Procedural Audio 程序(尚无统一的翻译,暂译成“演算音频”可能比较好理解,即由程序根据即时条件所生成的音频内容,而非实际录制的音频)。其中使得引擎类音效制程实现全行业更新换代的程序是 AudioMotors。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-11

个人觉得分为事件响应和分段处理。从事件上分为油门事件和换挡事件。油门事件主要用于当前挡位通过转速提高引擎动力输出。而换挡事件的流程为踩离合松油门后换挡加油门。以前看过一些赛车音频文件,对这块不专业,抛砖。一些比较真实向的,分别有各个挡位升档的音频文件和该档踩死循环的声音文件。以键盘操作的自动挡为例最简单,即没有线性输入换挡也是设定好的自动换挡,假设每次换挡转速回2000,6500时换下一档,玩家按下键盘首先是点火音频播放-1档-加油门提转速-2档-加油门提转速-3档------6档急速全油门。简单理解一下,把上诉音频排成播放列表,油门是播放键,按住即播放,松开即回退,最后一档的急速稳定状态无限循环。

第2个回答  2017-12-11

我们公司现在在做跑车音效模拟器,也就是在低端车型上面实现跑车的声浪。这个过程比较复杂,首先A。声音的对应,油门深浅,发动机进气量,发动机转速,发动机时速,发动机加速度,扭矩等等 B。对应发动机声音,链条,排气,A和B的对应首先是相应速度的对应,如果响应速度慢了体验就差很多。另外发动机的声音出来本来及时混合的声音,汽车的时速和发动机的转速,进气量等等绝对不是一一对应,所以要有复杂的算法,A1,A2,A3---占比多少,对应B1比对少,对应B2,B3又占比多少?关于B的部分可以多了解下极品飞车的声音采样,他们也是在汽车不同部分分别录制,然后合成的,否则不真实。声音样品可以现场采样,也可以后期制作,也可以综合来,在车的不同位置,角度不同甚至出来的效果都千差万别。原来想简单了,做一款音效的真的很复杂。有感兴趣的可以扣扣:别饿饿别七零零。