导入音频采样

支持的音频格式

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 文件后,导入面板中会提供多个选项:

在文件系统面板中选择 WAV 文件后,导入面板中的导入选项

在文件系统面板中选择 WAV 文件后,导入面板中的导入选项

The set of options available after selecting an Ogg Vorbis or MP3 file is different:

Import options in the Import dock after selecting an MP3 file in the FileSystem dock

Import options in the Import dock after selecting an MP3 file in the FileSystem dock. Options are identical for Ogg Vorbis files.

导入声音后,可以使用 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: (向后)反向播放音频,播放完毕后循环回到末尾。

当选择 ForwardPing-PongBackward 循环模式之一时,还可以定义循环点以仅制作声音循环的特定部分。 循环起点 在音频文件开始后的采样中设置。 循环终点 也在音频文件开始后的采样中设置,但如果设置为 -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 文件(或者在导入面板中选择高级…),就会出现一个对话框:

Advanced dialog when double-clicking an Ogg Vorbis or MP3 file in the FileSystem dock

Advanced dialog when double-clicking an Ogg Vorbis or MP3 file in the FileSystem dock

除了 BPM、节拍数和小节节拍之外,此对话框还允许你通过实时预览编辑音频的循环点。这 3 个设置目前未启用,但将来将用于交互式音乐的支持(允许在不同音乐曲目之间平滑过渡)。

备注

与 WAV 文件不同,Ogg Vorbis 和 MP3 仅支持“循环开始”循环点,而不支持“循环结束”点。循环也可以只是标准的向前循环,而不是乒乓类型或向后循环。

最佳实践

使用合适的质量设置

虽然在执行编辑时保持原始质量的音频源很重要,但在导出的项目中没有必要使用相同的质量。对于 WAV 文件,Godot 提供了多个导入选项,在无需修改磁盘上源文件的情况下来减小最终的文件大小。

为了减少内存使用量和文件大小,请为音频选择适当的量化、采样率和通道数:

  • 使用 24 位音频并没有 听觉上 的好处,尤其是在经常同时播放多种声音的游戏中(这会使得欣赏单个声音变得更加困难)。

  • 除非你要在运行时减慢音频速度,否则使用大于 48 kHz 的采样率没有任何 听觉上 的好处。如果你希望保留具有较高采样率的源来进行编辑,请使用 强制 > 最大频率 导入选项来限制导入声音的采样率(仅适用于 WAV 文件)。

  • 许多音效通常可以转换为单声道而不是立体声。如果你希望保留立体声的源文件来进行编辑,请使用 强制 > 单声道 导入选项将导入的声音转换为单声道(仅适用于 WAV 文件)。

  • 语音(voice)通常可以转换为单声道,但也可以在不明显降低质量的条件下(除非声音的音调非常高)将采样率降低到 22 kHz。这是因为大多数人的声音永远不会超过 11 kHz。

使用实时音频效果降低文件大小

Godot 有一个庞大的总线系统,提供了内置的效果。因此 SFX 艺术家无需在音效中添加混响,从而大大缩减了文件大小并且能确保剪辑正确。

../../_images/reverb.png

如上所示,音效在添加混响后文件大小会变得非常巨大。

参见

可以使用运行时文件加载和保存在运行时加载和保存音频样本,包括从导出的项目中加载和保存音频样本。