Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

导入音频采样

支持的音频格式

Godot 提供了三个选项来导入音频数据:WAV、Ogg Vorbis 和 MP3。

不同的格式各有优点:

  • WAV 文件使用原始数据或轻度压缩(IMA-ADPCM)。播放这种格式的 CPU 开销很小(同时播放上千个都没问题)。缺点是会占用大量的磁盘空间。

  • Ogg Vorbis 文件使用更强的压缩,因此文件更小,但需要更多的处理能力才能播放。

  • MP3 文件使用的压缩比使用 IMA-ADPCM 的 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 16-bit,IMA-ADPCM, 单声道

22 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 文件后,导入面板中的导入选项

选择 Ogg Vorbis 或 MP3 文件后可用的选项集合有所不同:

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

在文件系统面板中选择 MP3 文件后,导入面板中的导入选项。 Ogg Vorbis 文件的选项相同。

导入声音后,可以使用 AudioStreamPlayer、AudioStreamPlayer2D 或 AudioStreamPlayer3D 节点进行播放。请参阅 音频流 了解更多信息。

导入选项(WAV)

强制 > 8 位

启用后,如果源文件为 16 位量化或更高,则强制导入的音频使用 8 位量化。

通常不建议启用此功能,因为 8 位量化会显着降低音频质量。如果你需要较小的文件大小,请考虑使用 Ogg Vorbis 或 MP3 音频格式。

强制 > 单声道

启用后,如果源文件是立体声,则强制导入的音频为单声道。通过将左右声道合并为一个,文件大小可减少 50%。

强制 > 最大频率

如果设置为大于 0 的值,则会强制音频的采样率降低到低于或等于这里所指定的值。

这可以在不影响质量的条件下,显着减小某些音频的文件大小,具体取决于实际音频的内容。请参阅 :ref:`doc_importing_audio_samples_best_practices`了解更多信息。

编辑 > 修剪

源音频文件可能在开始和/或结束时包含长时间的静音。这些静音是由 DAW 在保存到波形时插入的,这不必要地增加了它们的大小并增加了播放时的延迟。

如果标准化 音频的开头和结尾低于 -50 dB,则启用 修剪 将自动修剪掉它们(请参阅下面的 编辑 > 归一化 )。修剪期间还使用 500 个样本的淡入/淡出周期,以避免发出爆音。

编辑 > 归一化

如果启用,音频音量将被 归一化 ,使其峰值音量等于 0 dB。启用后,归一化将使音频听起来更响亮,具体取决于其原始峰值音量。

编辑 > 循环模式

与 Ogg Vorbis 和 MP3 不同,WAV 文件可以包含元数据来指示它们是否正在循环(除了循环点之外)。默认情况下,Godot 将遵循此元数据,但你可以选择应用特定的循环模式:

  • Disabled: (禁用)不要循环音频,即使元数据指示文件应该循环播放。

  • Forward: (向前)标准音频循环。

  • Ping-Pong: (乒乓)向前播放音频直至播放完毕,然后向后播放并重复。这类似于镜像纹理重复,但适用于音频播放。

  • Backward: (向后)反向播放音频,播放完毕后循环回到末尾。

当选择 ForwardPing-PongBackward 循环模式之一时,还可以定义循环点以仅制作声音循环的特定部分。 循环起点 在音频文件开始后的采样中设置。 循环终点 也在音频文件开始后的采样中设置,但如果设置为 -1 ,将使用音频文件的结尾。

警告

在 AudioStreamPlayer 中,当循环音频到达音频文件末尾时,不会发出 finished 信号,因为音频将无限期地继续播放。

压缩 > 模式

WAV 文件可以选择两种压缩模式: Disabled (默认)或 RAM (Ima-ADPCM)RAM (Ima-ADPCM) 稍微减少了文件大小和内存使用量,但代价是以可被听觉察觉的方式降低了音频质量。

Ogg Vorbis 和 MP3 不会降低那么多质量,并且可以更大程度地减小文件大小,但相应代价是播放期间 CPU 使用率更高。这种较高的 CPU 使用率通常不是什么问题(尤其是 MP3),除非在移动端/web 平台上同时播放数十个压缩过的音频。

导入选项(Ogg Vorbis 和 MP3)

循环

如果启用,播放至音频末尾后会从开头开始播放。

警告

在 AudioStreamPlayer 中,当循环音频到达音频文件末尾时,不会发出 finished 信号,因为音频将无限期地继续播放。

循环偏移

循环偏移用于确定当播放到达音频末尾后,音频再次开始循环的位置。这可用于仅循环音频文件的一部分,对于某些环境声音或音乐会很有用。该值由相对于音频开头的秒数确定,因此设置为 0 将循环整个音频文件。

仅当启用 循环 时才有效。

:ref:`高级导入设置 <doc_importing_audio_samples_advanced_import_settings>`对话框中提供了更方便的 循环偏移 编辑器,它可以让你来预览更改,而无需重新导入音频。

BPM

音轨的每分钟节拍数(Beats Per Minute)。该数值应该与用于创作曲目的 BPM 测量相匹配。该功能仅与希望利用交互式音乐功能(尚未实现)的音乐相关,与声音效果无关。

:ref:`高级导入设置 <doc_importing_audio_samples_advanced_import_settings>`对话框中提供了更方便的 BPM 编辑器,它可以让你预览更改,而无需重新导入音频。

拍数

音轨的节拍数。该功能仅与希望利用交互式音乐功能(尚未实现)的音乐相关,与声音效果无关。

:ref:`高级导入设置 <doc_importing_audio_samples_advanced_import_settings>`对话框中提供了更方便的 拍数 编辑器,它可以让你预览更改,而无需重新导入音频。

节拍

音轨中单个节拍内的小节数。该功能仅与希望利用交互式音乐功能(尚未实现)的音乐相关,与声音效果无关。

:ref:`高级导入设置 <doc_importing_audio_samples_advanced_import_settings>`对话框中提供了更方便的 Bar Beats 编辑器,它可以让你预览更改,而无需重新导入音频。

高级导入设置(Ogg Vorbis 和 MP3)

双击文件系统面板中的 Ogg Vorbis 或 MP3 文件(或者在导入面板中选择高级...),就会出现一个对话框:

双击文件系统面板中的 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 艺术家无需在音效中添加混响,从而大大缩减了文件大小并且能确保剪辑正确。

../../_images/reverb.png

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

参见

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