简介
随着游戏行业的发展以及大型赛车游戏和模拟器的涌现,大家对高品质发动机声音的需求也日益增长。现代赛车游戏具有精美逼真的画面,而且会对车辆本身的细节精雕细琢。同样地,声音设计也要做得无可挑剔。
声景要基于游戏物理和事件实时变换,远不止播放预先录制的样本那么简单。
录制真实的发动机声音会有很大的成本:要费心思去租汽车,而且价格也不便宜。另外,录音过程本身需要专业的设备、特定的条件还有专业技能。对于小型工作室或团队开发的项目,这些有时是可望而不可及的。
幸运的是,技术的发展从未停步。如今,我们可以选用多种方法构建发动机模型,来灵活地满足不同配置和预算下的需要。
目录
文章概要
使用样本构建发动机模型
使用样本
源素材:从哪获取以及如何选用
内容准备:分割、处理和调节循环
Wwise 整合
调整 Pitch 参数
Wwise 效果器:做最后的优化并为声音增添质感
使用样本构建发动机模型:最终效果
使用粒子合成构建发动机模型
粒子合成:什么是 REV 2 以及为何要使用它
选择合适的内容
DAW 处理:准备 RAMP 录音以用于粒子合成
发动机模型构建与 RAMP 捕获
REV 2 参数微调
Wwise 整合:设置参数和效果器
使用粒子合成构建发动机模型:最终效果
总结:如何选择发动机模型构建方法
利弊权衡
结语
文章概要
本文的主要目的是跟大家分享我在为游戏项目构建各种发动机模型的过程中积累的经验。文中将着重阐述相关的一些实用理念和方法,并为面临类似挑战的开发者指明正确的方向。
其中涵盖以下主题:
- 在 Wwise 中基于样本构建发动机声音模型。
- 结合 Wwise 使用 Crankcase 的 REV 2 插件来通过粒子合成构建发动机模型。
本文中描述的方法全部基于 Wwise 音频引擎;不过,必要时也可适当调整并用于其他自己喜欢的工具。
使用样本构建发动机模型
使用样本
目前最简单、最常用也最高效的方法是使用样本构建发动机模型。
为此,可基于发动机的转速 (RPM) 实时控制循环声音的 Pitch 参数。
除此之外,也可选择使用两个不同的发动机录音分层:一个用于发动机无载运转,另一个用于发动机有载运转。同时,根据对车辆的影响来利用游戏引擎的参数在不同分层之间切换。
这种方法适用于有车辆出现但发动机声音并非重点的小型项目。
优点:
- 成本低
- 处理少
- 易整合
这种方法的主要缺点是模型有时听起来不怎么逼真 – 在 Pitch 值比较高的时候,发动机听着有点像割草机。
要获得更好的效果,可使用 Blend Container 和包含汽车发动机在不同转速下的静态循环录音的源文件。
下面我们就以 Ferrari Testarossa 发动机为例简单展示一下:
原理还是一样的,就是控制 Pitch 参数。只是通过 Blend Container 调整 RPM 参数,播放与不同发动机转速对应的循环录音。
源素材:从哪获取以及如何选用
- 亲自录发动机声音:成本最高也最麻烦。
- 专用发动机声音库:一般成本比较高,但提供各种视角和场景的优质音频源,是音频预算充足的项目的理想选择。
- 基于云的订阅服务:最为经济实惠,但有一些缺点。比如资源欠缺、选择有限,不一定有自己想要的资源。
- 免费音效库或网站:全靠运气。有时可以找到适合小型项目的资源,但一定要查看音频源分发许可协议。
使用音效库
在大多数包含车辆录音的音效库中,一般都会有一个 Steady RPM 文件夹,其中存有发动机在静态 RPM 下的录音。这正是我们需要的。在理想情况下,我们要设置多个静态循环(如 Idle、1000 RPM、2000 RPM、3000 RPM 等)。这些循环稍后将通过 Blend Container 中的交叉淡变功能合并成单个音频源。对此,稍后我们会做进一步的探讨。
内容准备:分割、处理和调节循环
我们可以根据转速将录音内容分割成多个独立的循环 – 比如,拆成五个文件(四个 RPM 循环和一个 Idle 循环)。
在使用样本时,可根据需要随意处理源素材,而不会影响信号的音色特征 – 在使用粒子合成时,情况就不太一样了。
信号的音色特征是在 DAW 中实施处理时要重点考虑的因素。发动机声音越清晰,粒子插件越容易捕获没有杂音或失真的信号快照。我们会在介绍如何使用 REV 2 插件构建发动机模型时对此做更进一步的探讨。
在处理过程中,可根据需要使用各种插件。比如,通过饱和度突显音色特征,或利用 EQ 增强低频成分。工具随选,任您创作!
处理循环
遵循平衡原则:每个循环在频率响应和基调上都要跟前一循环保持一致,因为所有这些独立的片段最终会合并到同一个长文件中。
技巧:在创建循环时,建议先完成所有的处理和编辑,然后再针对循环做相应的设置。
Wwise 整合
我们要设置一个参数用以从游戏引擎接收发动机的转速值。
我个人会选择使用 RTPC,并将最大值设为 1,将最小值设为 0。
随后将准备好的渲染文件导入到 Wwise 中的 Blend Container。
技巧:最好为文件采用一致的命名规范。Idle 循环应当命名为 CARNAME_0RPM_IDLE 之类的。在按降序顺序对素材自动排序时,将按转速值递增的顺序对内容排序。这样可在混合过程中节省大量时间。
对 Blend Track 做淡入淡出处理
按照上图所示方式对循环音轨实施交叉淡变 – 确保中间没有间隙。文件相互重叠,形成网格结构。
技巧:做不同的 Fade-in 和 Fade-out 设置,以尽量减小过渡期间的音量波动。比如,分别采用 Sine (Constant Power Fade In) 和 Logarithmic (Base 1.41)。
若对默认设置的效果不满意,还可手动调整交叉淡变曲线。
淡变曲线
调整 Pitch 参数
在将文件整合到 Blend Container 中并与控制 RPM 的 RTPC 关联后,便可在这些文件之间过渡。不过,这种切换不怎么平稳,有时音高会出现跳变,导致发动机声音听起来不自然。
在设置淡变后,关键一步是调整循环过渡的音高来消除这种跳变。
为此,我们需要另外创建 RTPC 来单独控制各个循环的 Pitch。
一般会设置两个控制点 – 一个在声音的开头,另一个在末尾。第一个控制点的音高降低,第二个控制点的音高升高。通常,最佳取值范围为 -100 ~ +200-300。
然后,将播放光标放在交叉淡变交叠位置,并使用附加控制点对 Pitch 进行微调,直到两个循环无缝融合,听起来就像连续的发动机运转声。
对所有其他交叉淡变控制点重复此过程,直到每个样本之间的过渡都很平滑自然。
建议对整套发动机设置做最后检查,然后分别试听各个部分的实际效果,确保没有异常噪音且全部正常运行。
Wwise 效果器:做最后的优化并为声音增添质感
我一般比较喜欢使用 Wwise 内置的效果器来做最后的优化并为声音增添质感。藉此,可让整个信号的频率响应更平滑,或让发动机声音更有冲击力。
下面是一些实用的工具:
- Wwise Guitar Distortion – 为信号增添特色或加入谐波。比如,增强发动机在高转速下的轰鸣声。
- Wwise Parametric EQ – 调节信号的频率响应。
- Wwise Harmonizer (Optional) – 增加声音的宽度和深度。在源信号为单声道时,效果尤其显著。
使用样本构建发动机模型:最终效果
大功告成。发动机模型构建好了!接下来,就看各位怎么用了。您可以根据需要使用 Wwise 中的内置效果器调节声音,添加额外的分层、引入新的参数、自动应用效果器…
基础已经打好,就看各位怎么搭建!
使用粒子合成构建发动机模型
粒子合成:什么是 REV 2 以及为何要使用它
在为驾驶模拟器和赛车模拟器这样的现代游戏设计声音时,大家都特别注重构建逼真的发动机声音模型。这当中也越来越多地用到粒子合成技术。
粒子合成是指将音频信号拆分成非常小的片段(粒子)以便营造复杂精细、动态变化的声音质感。这样可以把发动机音效打造得更加细腻、逼真。这一点对构建身临其境的游戏体验尤为重要。为此,我们可以使用 Crankcase 开发的 REV 2 插件。该插件可直接集成到 Wwise 中。它不仅能模拟特有的发动机声音,还允许根据需要灵活地进行微调,为开发人员带来与众不同的效果。
在此,我们不深入探讨插件配置的诸多细节,只重点说说如何想办法快速获得不错的效果。
选择合适的内容
在结合使用样本和 Blend Container 构建发动机模型时,我们采用了 Steady RPM(不带加速的静态发动机运转录音)。
REV 2 采用的是一种名为 RAMP 的不同录音格式。在录音时,车辆由怠速平稳加速到最高转速再平稳减速。
这个过程不涉及变速箱操作。
在使用粒子合成构建发动机模型时,主要困难在于如何找到合适的内容。音效库提供商的产品很少包含合适的 RAMP 录音。即使包含,插件也没有办法有效捕获所有的录音。
在购买音效库之前务必先查看文档,以确认其是否包含所需格式的素材。
另外,还要明白哪些录音适合使用,哪些可能会给自己带来麻烦。其中的关键判断标准是音调成分(之前说过这一点)。对于主要包含噪声的 RAMP 录音,插件可能无法准确地分析和捕获。遗憾的是,这个问题没有办法修复。
值得注意的是,REV 2 不仅捕获加速声音 (Accel),还会捕获减速声音 (Decel)。要在 REV 2 中构建理想的模型,我们需要三个源文件:Accel、Decel 和 Idle。不过,也可只用少量文件构建该模型。其中仅包含加速和静态怠速循环(在播放过程中通过反向播放加速声音并应用低通滤波器来模拟减速声音)。
下面我们来看看对创建快照来说怎样算好的和差的录音。
好的 RAMP 录音
差的 RAMP 录音
DAW 处理:准备 RAMP 录音以用于粒子合成
在整合到粒子插件中之前,通常要对内容进行预处理。实践表明,RAMP 音频源的处理过程跟“使用样本构建发动机模型”部分说的有所不同。这里的关键是不要破坏声音的基调。通常,在录音校正过程中,会着重修复音频中的瑕疵、调节动态范围以及信号的频率响应,并避免对声音做过激的处理以免影响捕获时的最终效果。若决定使用饱和度,请谨慎操作。最好通过激励器增强信号的高频成分。
参数自动化是个不错的解决方案。RAMP 声音是动态的,所以信号的频率响应要随发动机转速的加快/减慢变化。比方说,您可以使用 EQ 频段自动化功能在低转速下减弱低频成分并在高转速下予以增强。
下面我们以 Porsche 911 发动机为例说说参数自动化:
为此,我们要准备三个用于渲染的文件:Accel、Decel 和 Idle。
发动机模型构建与 RAMP 捕获
我们可以在 REV Tool 中执行内容分析和捕获。该工具专门用于处理发动机 RAMP 录音并创建包含 Accel 和 Decel 信息的 Partial Document 文件。
依次选择 File -> Open wav file 来加载之前准备好的内容。
在此,我们不对各项参数的设置细作探讨,只重点说说哪些因素对最终结果影响最大。
使用特殊标记来选择 REV 要在怎样的边界内分析 RAMP 文件。按下 Ctrl + LMB 设置左侧标记,按下 Alt + LMB 设置右侧标记。然后,捕获谐波。
我个人比较喜欢手动捕获。这样可以获得更大的控制权和更准确的结果。不过在大部分情况下,自动捕获的效果就挺好。
在手动捕获谐波时,要确保谐波线与选择器的虚线精准对齐。
使用 Min\Max Harmonic to track 调整垂直分析区域,以砍掉非常低的谐波和杂乱的高谐波。这样可避免低频噪声太多或高频出现杂音。
选择 Window Size 参数。个人建议根据 RAMP 文件的时长尝试设置不同的值。
简单来说:
Window Size 决定如何使用快速傅里叶变换 (FFT) 实施声音分析(FFT 常用于音频处理)。
- Window Size 参数可定义程序要对声音中的频率成分做多精细的分析。
- 若设为较大的值(如 32768 及以上),在处理的声音比较长或采样率偏高时可获得更准确的结果,但在声音突然发生变化时结果可能会很模糊。
- 若设为较小的值,可更好地追踪音高的快速变化,但也会导致频率分析不够精确。
单击 Start Cycle Tracking,等待 REV 构建 Accel 模型。
您可以在工作区中拖动滑杆或单击 Send to Simulator 按钮运行模拟器,来检查构建的模型听起来有没有杂音。
尝试设置不同的 Crossfade Style 参数。
Crossfade Style
3Layer – 在不同粒子之间过渡时可获得更平滑的效果,但信号的细节比较少,而且清晰度没那么高。
2Layer – 提供更多的细节,但能明显听出信号哪里做了交叉淡变。
在完成设置后,可保存 "Accel" Partial Document 并继续分析 Decel 文件。
Decel 文件的分析过程大致相同;对参数做不同的设置,直到获得最好的结果!
您可能会遇到 Decel 文件缺失或损坏导致无法正确分析的情况。不过,REV 可在没有 Decel 模块的情况下构建模型并自动予以调节。或者,您也可以利用 Reverse 功能来手动创建 Decel 文件。在此不要单击 Start Cycle Tracking 按钮,而是依次转到 Tools -> Reverse 并将 Reverse 文件保存到单独的文件夹。在此之后,像普通 Decel 文件一样分析生成的文件。
技巧:要实现多样变化,可使用两个不同的 "Accel" RAMP 录音(如有)– 其中一个用作 Accel 文件,另一个通过 REVERSE 算法处理用作 Decel 文件。这样可以更加富有变化,并产生略有不同的效果。
在创建好 Partial Document 之后,需要将其合并来构建模型。我们可以在 REV Tool 的 Model 选项卡中完成此操作:在 Accel ramp 窗口中选择 Accel 文件,并在 Decel ramp 窗口中选择 Decel 文件,然后选择 Idle Loop(如有)。
确保 Min\Max Freq 之类窗口中的值大差不差。这表明您已经正确分析 RAMP 文件;否则,完成的模型可能听起来不对劲。
合并 Partial Document
单击 Simulate 按钮,开始对完成的模型进行微调。
REV 2 参数微调
最好直接在游戏或游戏原型中测试结果来对模型的物理参数进行微调。事实上,在 REV Tool 的 Simulator 窗口中,可调整各种参数(从车辆重量到变速行为…)。
具体看自己有什么要求以及想要怎样的结果。有关各项参数的具体作用,请参阅用户手册。
在这里,我们对影响发动机声音特征的参数比较感兴趣。
在 Model Controls 分区中,可调节 Accel 和 Decel 之间的混合比例。
在 Accel 选项卡中,试着调整 Load Off Vol 参数,从 0.3 开始尝试设置不同的值。
在 Decel 选项卡中,根据需要设置 Load On Vol。注意,在调整此参数时 Accel 声音也会发生变化。
除此之外,还可单击 Edit 按钮来修改交叉淡变算法。
技巧:在模拟器模式下,为方便操作,可使用 Xbox 控制器。藉此,可轻松模拟游戏场景,并快速调整模型参数。
在模型听着效果不错且没有杂音、音量波动等问题时,可通过单击模拟器窗口中的 Save 按钮来保存模型。稍后随时都可以回过头去编辑模型。为此,只需在 REV Tool 的 Model 选项卡中加载模型即可。
Wwise 整合:设置参数和效果器
在对完成的发动机模型进行处理时,并没有一定之规,主要看自己想做什么。Wwise 提供有各种内置效果器。您可以利用其为发动机声音增添特色,并在必要时修复各种问题。
推荐新手使用以下效果器。感兴趣的话可以了解一下。
- Wwise Parametric EQ – 帮助修复频谱问题。EQ 方便对模型进行校正,去除过多的低频、噪声或粒子引擎处理过程中产生的杂音。通常可结合使用 EQ(削减频段)和 Distortion(增添谐波)获得很好的效果。
- Wwise Guitar Distortion – 尤其适合为信号增添特色。Distortion 可让模型更有力量感和冲击力。下面有几个例子,不妨对比一下前后的差别。
- Wwise RoomVerb – 用于将发动机置于特定空间中。
- Wwise Harmonizer – 用于为发动机模型增添低频成分。而且,还可增加声音的宽度和深度。
技巧:发动机声音会随着游戏引擎的参数不断变化。最好的办法是使用 RTPC 来自动调节效果器参数。对于像本例这样的情况,一般会使用 "RPM" RTPC。藉此,可控制要对信号的特定部分做多大力度的处理。比如,为信号的不同部分添加多少低频成分。
使用粒子合成构建发动机模型:最终效果
大功告成。发动机模型构建好了!接下来,我们可以添加额外的分层(如 Backfire、Compressor、Suspension、Car Foley 等)来让声音更加动态多变。为此,可添加更多变量、应用效果器自动化、实施随机化处理…随便怎么样都行,完全看创作需要。
下面我们把完成的 911 模型放到模拟器中测试一下。另外,也看看别的几个以类似方式构建的发动机模型。
总结:如何选择发动机模型构建方法
在本文中,我们介绍了现下常用的两种构建发动机声音模型的方法。在使用样本时可以兼顾制作成本、技术条件和声音品质,而在通过 REV 使用粒子合成时效果更加自然、动态多变。两种方法各有利弊。具体怎么选要看项目有什么要求。
利弊权衡
在 Wwise 中基于样本构建发动机模型
优点:
- 经济实惠:基于样本构建模型一般成本比较低。
- 易于整合:Wwise 提供原生 RTPC 支持,方便对参数进行实时调整。
- 稳定可靠:这种方法经过了充分的验证,并在游戏行业中被广泛应用。
缺点:
- 相对比较耗时:通过样本构建模型会花费更多的时间,尤其是在大批量地制作发动机声音时。
- 声音品质较差:最终模型的声音品质一般没通过粒子合成构建的模型好。
- 特定录音要求:汽车录音必须以特定的方式进行,而很多音频库并未考虑到这一点。
使用粒子合成构建发动机模型
优点:
- 灵活创作:允许根据需要尝试设置不同的参数,来构建自然而动态变化的声音模型。
- 突破局限:利用 REV 营造传统方法难以实现的复杂声音质感。
- 方便调整:方便根据不同的游戏情形轻松调整声音。
缺点:
- 设置起来比较复杂:需要对粒子合成和 REV 参数有深入的了解。这可能会延长开发周期。
- 有可能会产生杂音:使用不当可能会产生杂音,从而降低最终产品的质量。
结语
我们既可在 Wwise 中使用样本也可通过 REV 使用粒子合成来构建发动机声音模型。在使用粒子合成构建模型时,听起来通常更加自然、动态多变;在使用样本时,可兼顾制作成本、制作周期和声音品质。选用哪种方法取决于项目的具体情况以及可用资源。在某些情况下,可结合运用两种方法来获得最佳效果!
评论