Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

音频总线

前言

Godot的音频处理代码是为了游戏而写的, 以达到性能和音质之间的最佳平衡.

Godot的音频引擎允许创建任意数量的音频总线, 并且可以向每个总线添加任意数量的效果处理器. 运行游戏的设备的硬件会限制总线的数量, 以及在性能开始下降之前可以使用的效果.

分贝标度

Godot的声音界面是为了满足声音设计专业人士的期望而设计的. 因此主要采用分贝标度.

对于那些不熟悉它的人, 可以用一些事实来解释:

  • 分贝(dB)标度是一个相对标度. 它等于声功率比的常用对数的20倍(20 × log10(P/P/0)).

  • 每增/减6分贝, 声幅就会加倍/减半.12dB代表系数4,18dB代表系数8,20dB代表系数10,40dB代表系数100, 以此类推.

  • 由于比例是对数的, 因此无法表示真零(无音频).

  • 0 dB 是数字音频系统中可能的最大振幅. 这个限制不是人为的限制, 而是声音硬件的限制. 因振幅太高而无法完全反映在0dB以下的音频, 会产生一种被称为 削波 的失真.

  • 为了避免削波,你应该调整混音,使master 总线(后面会有更多的介绍)永远不超过 0 dB。

  • 低于0dB限制的每6dB, 声能就会 减半 . 这意味着-6dB的音量是0dB的一半. -12dB是-6dB的一半, 依此类推.

  • 使用分贝时, -60dB和-80dB范围内的声音被认为是听不见的. 也就是说你的工作范围一般在-60dB和0dB之间.

这可能需要一点时间来习惯, 但最终会变得友好, 并且可以让你与音频专业人员更好地进行交流.

音频总线

音频总线可以在Godot 编辑器的底部面板中找到:

../../_images/audio_buses1.png

音频总线 (audio bus)(通常也称为 音频通道 (audio channel) )是音频从扬声器播放出来之前通过的地方. 它可以 修改重路由 音频数据. 音频总线有一个 VU表(播放声音时亮起的条形), 表示通过的信号的幅度.

最左边的总线是 主总线 . 此总线将混音输出到你的扬声器, 因此, 正如之前 分贝标度 部分所述, 请确保主总线中的混音水平永远低于 0 dB. 其余的音频总线可以灵活地进行路由. 在修改声音后, 它们会将其发送到左边的另一条总线上. 非主总线的目标总线可以被单独设置. 而右侧总线的音频会被路由至左侧总线, 这避免了无限循环.

../../_images/audio_buses2.png

在上图中, Bus 2 的输出被路由到了 总线.

通过总线播放音频

要测试将音频传递到总线, 请创建AudioStreamPlayer节点, 加载AudioStream并选择要播放的目标总线:

../../_images/audio_buses3.png

最后将 Playing 属性勾上 On , 声音就开始播放了.

参见

你现在可能有兴趣阅读 音频流

添加特效

音频总线可以包含各种效果. 这些效果以某种方式修改声音并按顺序应用.

../../_images/audio_buses4.png

有关每种效果效果的作用的信息,请参见 音频特效

自动总线禁用

你不需要手动禁用闲置总线,Godot在检测到总线已经静音数秒之后, 就会禁用它(以及所有效果).

../../_images/audio_buses5.png

已禁用的总线VU表为蓝色, 而不是红绿色.

总线重排

流播放器使用总线名称来识别总线, 允许在保留对总线的引用时添加, 删除和移动总线. 然而, 重命名总线会导致引用丢失, 流播放器将输出到主总线. 之所以选择这个系统, 是因为重新排列总线相比重命名总线更为常用.

默认总线布局

默认的总线布局会自动保存到 res:// default_bus_layout.tres 文件中. 自定义总线布局可以从磁盘中保存和加载.