音频总线

前言

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.webp

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

自动总线禁用

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

../../_images/audio_buses5.png

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

总线重排

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

默认总线布局

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