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...
导入音频采样
支持的音频格式
Godot 提供了三个选项来导入音频数据:WAV、Ogg Vorbis 和 MP3。
不同的格式各有优点:
WAV 文件使用原始数据或轻度压缩(IMA ADPCM 或 Quite OK Audio)。目前它们只能以原始格式导入,但 Godot 允许在导入后进行压缩。播放这种格式的 CPU 开销很小(同时播放上百个都没问题)。缺点是会占用大量的磁盘空间。
Ogg Vorbis 文件使用更强的压缩,因此文件更小,但需要更多的处理能力才能播放。
MP3 文件使用的压缩比使用 IMA ADPCM 或 Quite OK Audio 的 WAV 更好,但比 Ogg Vorbis 差。这意味着与 Ogg Vorbis 质量大致相同的 MP3 文件将明显更大。不过从好的方面看,与 Ogg Vorbis 相比,MP3 播放所需的 CPU 使用率更少。
备注
如果你从源代码编译 Godot 编辑器时禁用了特定的模块,某些格式可能无法使用。
以下是一个比较图表,展示了每种格式一秒音频的文件大小:
格式 |
一秒的音频 |
|---|---|
WAV 24-bit,96 kHz,立体声 |
576 KB |
WAV 16-bit,44 kHz,单声道 |
88 KB |
WAV IMA ADPCM,44 kHz,单声道 |
22 KB |
Quite OK Audio,44 kHz,单声道 |
17 KB |
MP3 192 Kb/s,立体声 |
24 KB |
Ogg Vorbis 128 Kb/s,立体声 |
16 KB |
Ogg Vorbis 96 Kb/s,立体声 |
12 KB |
请注意,MP3 和 Ogg Vorbis 的大小可能会因编码类型而异。为简单起见,上表中使用 CBR 编码,但你可以在网上找到的大多数 Ogg Vorbis 和 MP3 文件都使用的是效率更高的 VBR 编码。VBR 编码使有效音频文件大小取决于源音频的“复杂程度”。
小技巧
请考虑使用 WAV 来实现短且重复的音效,使用 Ogg Vorbis 来实现音乐、语音和长音效。MP3 对于 CPU 资源有限的移动端项目和 Web 项目来说很有用,特别是在同时播放多个压缩声音(例如长环境声)时。
导入音频采样
在文件系统面板中选择 WAV 文件后,导入面板中会提供多个选项:
在文件系统面板中选择 WAV 文件后,导入面板中的导入选项
选择 Ogg Vorbis 或 MP3 文件后可用的选项有所不同:
在文件系统面板中选择 MP3 文件后,导入面板中的导入选项。Ogg Vorbis 文件的选项相同。
导入声音后,可以使用 AudioStreamPlayer、AudioStreamPlayer2D 或 AudioStreamPlayer3D 节点进行播放。请参阅音频流了解更多信息。
导入选项(WAV)
强制 > 8 位
启用后,如果源文件为 16 位量化或更高,则强制导入的音频使用 8 位量化。
通常不建议启用此功能,因为 8 位量化会显著降低音频质量。如果你需要较小的文件大小,请考虑使用 Ogg Vorbis 或 MP3 音频格式。
强制 > 单声道
启用后,如果源文件是立体声,则强制导入的音频为单声道。通过将左右声道合并为一个,文件大小可减少 50%。
强制 > 最大频率
如果设置为大于 0 的值,则会强制音频的采样率降低到低于或等于这里所指定的值。
这可以在不影响质量的前提下,显著减小某些音频的文件大小,具体取决于实际音频的内容。详情见最佳实践。
编辑 > 修剪
源音频文件可能在开始和/或结束时包含长时间的静音。这些静音是由 DAW 在保存到波形时插入的,这不必要地增加了它们的大小并增加了播放时的延迟。
如果标准化之后 音频的开头和结尾低于 -50 dB,启用修剪将自动修剪掉它们(请参阅下面的编辑 > 归一化)。修剪时会添加一段 500 个采样长的淡入/淡出,以避免发出爆音。
编辑 > 归一化
如果启用,音频音量将被归一化,使其峰值音量等于 0 dB。启用后,归一化将使音频听起来更响亮,具体取决于其原始峰值音量。
编辑 > 循环模式
与 Ogg Vorbis 和 MP3 不同,WAV 文件可以包含元数据来指示它们是否正在循环(以及循环点)。默认情况下,Godot 将遵循此元数据,但你可以选择应用特定的循环模式:
Detect from WAV:使用 WAV 元数据中的循环信息。
Disabled:不要循环音频,即使元数据指示文件应该循环播放。
Forward:标准音频循环。从起始点正向播放至循环终点后返回起点,重复。
Ping-Pong:向前播放音频直至循环终点,然后向后播放至循环起点,然后重复。
Backward:从循环终点反向播放至循环起点,然后重复。
当选择 Forward、Ping-Pong 或 Backward 循环模式之一时,还可以定义循环点以仅让声音的特定部分循环。Loop Begin(循环起点)以采样数表示,相对于音频文件开头设置。Loop End(循环终点)同样以采样数表示,相对于音频文件开头设置;但如果设置为 -1,则将使用音频文件的结尾。
警告
在 AudioStreamPlayer 中,当循环音频到达音频文件末尾时,不会发出 finished 信号,因为音频将无限期地继续播放。
压缩 > 模式
WAV 文件可以选择三种压缩模式:PCM (Uncompressed)、IMA ADPCM 或 Quite OK Audio(默认)。IMA ADPCM 略微减少了文件大小和内存使用量,但代价是可察觉地降低音频质量。Quite OK Audio 比 IMA ADPCM 更能减少文件大小,质量下降也没那么明显,但代价是 CPU 占用率略高(仍远低于 MP3)。
Ogg Vorbis 和 MP3 不会降低那么多质量,并且可以更大程度地减小文件大小,但相应代价是播放期间 CPU 使用率更高。这种更高的 CPU 使用率通常不是什么问题(尤其是 MP3),除非是在移动端/Web 平台上同时播放数十个压缩过的音频。
导入选项(Ogg Vorbis 和 MP3)
循环
如果启用,播放至音频末尾后会从开头开始播放。
警告
在 AudioStreamPlayer 中,当循环音频到达音频文件末尾时,不会发出 finished 信号,因为音频将无限期地继续播放。
循环偏移
循环偏移用于确定当播放到达音频末尾后,音频再次开始循环的位置。这可用于仅循环音频文件的一部分,对于某些环境声音或音乐会很有用。该值由相对于音频开头的秒数确定,因此设置为 0 将循环整个音频文件。
仅当启用循环时才有效。
高级导入设置对话框中提供了更方便的循环偏移编辑器,它可以让你预览更改,而无需重新导入音频。
BPM
音轨的每分钟节拍数(Beats Per Minute)。该数值应该与用于创作曲目的 BPM 相匹配。该功能仅与希望利用交互式音乐功能的音乐相关,与声音效果无关。
高级导入设置对话框中提供了更方便的 BPM 编辑器,它可以让你预览更改,而无需重新导入音频。
拍数
音轨的节拍数。该功能仅与希望利用交互式音乐功能的音乐相关,与声音效果无关。
高级导入设置对话框中提供了更方便的拍数编辑器,它可以让你预览更改,而无需重新导入音频。
节拍
音轨中单个小节内的节拍数。该功能仅与希望利用交互式音乐功能的音乐相关,与声音效果无关。
高级导入设置对话框中提供了更方便的Bar Beats编辑器,它可以让你预览更改,而无需重新导入音频。
高级导入设置(Ogg Vorbis 和 MP3)
双击文件系统面板中的 Ogg Vorbis 或 MP3 文件(或者在导入面板中选择高级...),就会出现一个对话框:
双击文件系统面板中的 Ogg Vorbis 或 MP3 文件时的高级对话框
除了 BPM、节拍数和小节节拍之外,此对话框还允许你通过实时预览编辑音频的循环点。这 3 个设置目前未启用,但将来将用于交互式音乐的支持(允许在不同音乐曲目之间平滑过渡)。
备注
与 WAV 文件不同,Ogg Vorbis 和 MP3 仅支持“循环开始”循环点,而不支持“循环结束”点。循环也只能是标准的向前循环,而不是乒乓类型或向后循环。
最佳实践
使用合适的质量设置
虽然在执行编辑时保持原始质量的音频源很重要,但在导出的项目中没有必要使用相同的质量。对于 WAV 文件,Godot 提供了多个导入选项,以便在无需修改磁盘上源文件的前提下减小最终的文件大小。
为了减少内存使用量和文件大小,请为音频选择适当的量化、采样率和通道数:
使用 24 位音频并没有听觉上的好处,尤其是在经常同时播放多种声音的游戏中(这种时候难以分辨单个声音的细节)。
除非你要在运行时减慢音频速度,否则使用大于 48 kHz 的采样率没有任何听觉上的好处。如果你希望保留具有较高采样率的源来进行编辑,请使用强制 > 最大频率导入选项来限制导入声音的采样率(仅适用于 WAV 文件)。
许多音效通常可以转换为单声道而不是立体声。如果你希望保留立体声的源文件来进行编辑,请使用强制 > 单声道导入选项将导入的声音转换为单声道(仅适用于 WAV 文件)。
语音通常可以转换为单声道,还可以在不明显降低质量的前提下(除非音调非常高)将采样率降低到 22 kHz。这是因为大多数人的声音永远不会超过 11 kHz。
使用实时音频效果降低文件大小
Godot 有一个庞大的总线系统,提供了内置的效果。因此 SFX 艺术家无需在音效中添加混响,从而大大缩减了文件大小并且能确保剪辑正确。
如上所示,在添加混响后音效使得文件大小增大许多。
参见
可以使用运行时文件加载和保存在运行时加载和保存音频样本,包括导出的项目。