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。