导入音频采样
支持的音频格式
Godot 提供了三个选项来导入音频数据:WAV、Ogg Vorbis 和 MP3。
不同的格式各有优点:
WAV 文件使用原始数据或轻度压缩(IMA-ADPCM 或 QOA)。播放这种格式的 CPU 开销很小(同时播放上千个都没问题)。缺点是会占用大量的磁盘空间。
Ogg Vorbis 文件使用更强的压缩,因此文件更小,但需要更多的处理能力才能播放。
MP3 文件使用的压缩比使用 IMA-ADPCM 或 QOA 的 WAV 更好,但比 Ogg Vorbis 差。这意味着与 Ogg Vorbis 质量大致相同的 MP3 文件将明显更大。不过从好的方面看,与 Ogg Vorbis 相比,MP3 播放所需的 CPU 使用率更少。
备注
如果你从源代码编译 Godot 编辑器时禁用了特定的模块,某些格式可能无法使用。
以下是一个比较图表,展示了每种格式1秒音频的文件大小:
格式 | 1秒的音频 |
---|---|
WAV 24 bits,96 kHz, 立体声 | 576 KB |
WAV 16-bit,44 kHz, 单声道 | 88 KB |
WAV IMA-ADPCM, 44 kHz, 单声道 | 22 KB |
WAV QOA, 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 编码。 VBR 编码使有效音频文件大小取决于源音频的“复杂程度”。
小技巧
请考虑使用 WAV 来实现短且重复的音效,使用 Ogg Vorbis 来实现音乐、语音和长音效。 MP3 对于 CPU 资源有限的移动端项目和 Web 项目来说很有用,特别是在同时播放多个压缩声音(例如长环境声)时。
导入音频采样
在文件系统面板中选择 WAV 文件后,导入面板中会提供多个选项:
The set of options available after selecting an Ogg Vorbis or MP3 file is different:
导入声音后,可以使用 AudioStreamPlayer、AudioStreamPlayer2D 或 AudioStreamPlayer3D 节点进行播放。请参阅 音频流 了解更多信息。
导入选项(WAV)
强制 > 8 位
启用后,如果源文件为 16 位量化或更高,则强制导入的音频使用 8 位量化。
通常不建议启用此功能,因为 8 位量化会显着降低音频质量。如果你需要较小的文件大小,请考虑使用 Ogg Vorbis 或 MP3 音频格式。
强制 > 单声道
启用后,如果源文件是立体声,则强制导入的音频为单声道。通过将左右声道合并为一个,文件大小可减少 50%。
强制 > 最大频率
如果设置为大于 0
的值,则会强制音频的采样率降低到低于或等于这里所指定的值。
这可以在不影响质量的条件下,显着减小某些音频的文件大小,具体取决于实际音频的内容。详情见 最佳实践。
编辑 > 修剪
源音频文件可能在开始和/或结束时包含长时间的静音。这些静音是由 DAW 在保存到波形时插入的,这不必要地增加了它们的大小并增加了播放时的延迟。
如果标准化 后 音频的开头和结尾低于 -50 dB,则启用 修剪 将自动修剪掉它们(请参阅下面的 编辑 > 归一化 )。修剪期间还使用 500 个样本的淡入/淡出周期,以避免发出爆音。
编辑 > 归一化
如果启用,音频音量将被 归一化 ,使其峰值音量等于 0 dB。启用后,归一化将使音频听起来更响亮,具体取决于其原始峰值音量。
编辑 > 循环模式
与 Ogg Vorbis 和 MP3 不同,WAV 文件可以包含元数据来指示它们是否正在循环(除了循环点之外)。默认情况下,Godot 将遵循此元数据,但你可以选择应用特定的循环模式:
Disabled: (禁用)不要循环音频,即使元数据指示文件应该循环播放。
Forward: (向前)标准音频循环。
Ping-Pong: (乒乓)向前播放音频直至播放完毕,然后向后播放并重复。这类似于镜像纹理重复,但适用于音频播放。
Backward: (向后)反向播放音频,播放完毕后循环回到末尾。
当选择 Forward 、 Ping-Pong 或 Backward 循环模式之一时,还可以定义循环点以仅制作声音循环的特定部分。 循环起点 在音频文件开始后的采样中设置。 循环终点 也在音频文件开始后的采样中设置,但如果设置为 -1
,将使用音频文件的结尾。
警告
在 AudioStreamPlayer 中,当循环音频到达音频文件末尾时,不会发出 finished
信号,因为音频将无限期地继续播放。
压缩 > 模式
Three compression modes can be chosen from for WAV files: Disabled (default), RAM (Ima-ADPCM), or QOA (Quite OK Audio). RAM (Ima-ADPCM) reduces file size and memory usage a little, at the cost of decreasing quality in an audible manner. QOA (Quite OK Audio) reduces file size a bit more than RAM (Ima-ADPCM) and the quality decrease is much less noticeable, at the cost of higher CPU usage (still much lower than 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 文件(或者在导入面板中选择高级…),就会出现一个对话框:
除了 BPM、节拍数和小节节拍之外,此对话框还允许你通过实时预览编辑音频的循环点。这 3 个设置目前未启用,但将来将用于交互式音乐的支持(允许在不同音乐曲目之间平滑过渡)。
备注
与 WAV 文件不同,Ogg Vorbis 和 MP3 仅支持“循环开始”循环点,而不支持“循环结束”点。循环也可以只是标准的向前循环,而不是乒乓类型或向后循环。
最佳实践
使用合适的质量设置
虽然在执行编辑时保持原始质量的音频源很重要,但在导出的项目中没有必要使用相同的质量。对于 WAV 文件,Godot 提供了多个导入选项,在无需修改磁盘上源文件的情况下来减小最终的文件大小。
为了减少内存使用量和文件大小,请为音频选择适当的量化、采样率和通道数:
使用 24 位音频并没有 听觉上 的好处,尤其是在经常同时播放多种声音的游戏中(这会使得欣赏单个声音变得更加困难)。
除非你要在运行时减慢音频速度,否则使用大于 48 kHz 的采样率没有任何 听觉上 的好处。如果你希望保留具有较高采样率的源来进行编辑,请使用 强制 > 最大频率 导入选项来限制导入声音的采样率(仅适用于 WAV 文件)。
许多音效通常可以转换为单声道而不是立体声。如果你希望保留立体声的源文件来进行编辑,请使用 强制 > 单声道 导入选项将导入的声音转换为单声道(仅适用于 WAV 文件)。
语音(voice)通常可以转换为单声道,但也可以在不明显降低质量的条件下(除非声音的音调非常高)将采样率降低到 22 kHz。这是因为大多数人的声音永远不会超过 11 kHz。
使用实时音频效果降低文件大小
Godot 有一个庞大的总线系统,提供了内置的效果。因此 SFX 艺术家无需在音效中添加混响,从而大大缩减了文件大小并且能确保剪辑正确。
如上所示,音效在添加混响后文件大小会变得非常巨大。
参见
可以使用运行时文件加载和保存在运行时加载和保存音频样本,包括从导出的项目中加载和保存音频样本。