Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
AudioEffectDistortion
继承: AudioEffect < Resource < RefCounted < Object
为音频总线添加失真音频效果。
通过使用非线性函数重新映射音频采样,从而实现声音失真。
描述
“失真”效果会根据波形样本的振幅,通过一个非线性数学函数(详见 Mode 中可用的类型)来修改波形。
注意: 在非线性函数中,一个振幅为 x 的输入样本,其振幅会根据函数在 x 处的值,被增大或减小为 y。这就是为什么即使在相同的 drive(驱动/强度)下,输出的声音也会因输入音量的不同而产生变化。如果想要在保持输出波形不变的情况下改变音量,请使用 post_gain(后置增益)。
在此效果中,每种类型都对应一种不同的非线性函数。可用的不同类型包括:clip(削波)、atan(反正切)、lofi(低音质/位深破碎)、overdrive(过载)以及 waveshape(波形整形)。这里提供的每种失真类型都是对称的:负振幅值受到的影响与正振幅值完全相同。
虽然失真通常会改变频率内容(通常是通过引入高频谐波),但不同的失真类型能提供一系列不同的声音质感;从“柔和”、“温暖”到“粗粝”和“刺耳”。
对于游戏而言,它可以非常高效地模拟声音从某些饱和设备或扬声器中发出的效果。此外,通过引入更高的频率并提升音量,它还能帮助音频在混音中脱颖而出。
注意: 虽然通常难以察觉,但即使 drive 设置为 0,启用的失真效果依然会改变声音。这并非程序错误(Bug)。如果不希望出现这种行为,可以考虑使用 AudioServer.set_bus_effect_enabled() 来禁用该效果。
教程
属性
|
||
|
||
|
||
|
||
|
枚举
enum Mode: 🔗
Mode MODE_CLIP = 0
以一种尖锐的方式将波形在 0 dB 处压平。drive(驱动)参数会以指数级的方式提升样本的振幅。如果将 drive 设置为 0,该模式会充当硬削波器(hard clipper),并且它是唯一一种会在 0 dB 处对音频信号进行削波的模式。
Mode MODE_ATAN = 1
以平滑的方式压平波形,遵循反正切(arctangent)曲线。如果音频事先经过了标准化处理,它的音量会先降低,然后将波峰压平至 PI * 4.0(线性值)。
Mode MODE_LOFI = 2
将音频位深降低,以获得从 16 位到 2 位的低分辨率音频信号。可用于模拟早期数字音频设备的声音。
Mode MODE_OVERDRIVE = 3
模拟通常用于固态乐器放大器的场效应晶体管产生的暖失真。drive 属性在该模式下无效。
Mode MODE_WAVESHAPE = 4
以平滑的方式压平波形,直到在 drive = 1 时达到一个尖锐的峰值,遵循一个通用的绝对 Sigmoid 函数。
属性说明
失真强度。它通过让音频从线性函数向非线性函数过渡,来控制输入音频受失真曲线影响的程度。该值的取值范围是 0 到 1。
高通滤波器,单位为 Hz。高于此值的频率不会受到失真的影响。该值的范围为 1 至 20000。
失真类型。用于更改用来扭曲波形的非线性函数。具体可参考 Mode 枚举。
该效果后的增益,单位为分贝。取值范围从 -80 到 24。
该效果前的增益,单位为分贝。取值范围从 -60 到 60。