FMOD Studio User Manual 2.02

5. 使用发声器

FMOD Studio使用术语发声器来描述可以添加到事件的[轨道]中的各种触发区域。发声器可以添加到事件的操作单参数表中。参数表上的发声器在该参数的回放位置与发声器重叠时被触发,而操作单上的发声器在事件开始时被触发。一旦被触发,发声器就会启动与之相关的音频、事件、命令快照 。按住 Ctrl 修改键并选择要编辑的每个发声器,同时可批量编辑参数发声器。发声器之间共享的公共属性会以金色突出显示,编辑这些属性会导致所有选定发声器中得到编辑。如果属性不是所有选定发声器共有的,例如选择多发声器和单发声器时的播放列表选择模式,则这些属性不会突出显示。

5.1 发声器类型

FMOD Studio 有多种发声器类型可用。每个发声器的类型都写在其标签上。

默认情况下,每种类型的发声器都是不同的颜色。在 FMOD Studio 中,发声器的颜色可能更容易一目了然,但对其行为并没有影响,可通过右键单击发声器并从右键菜单中选择“设置颜色”来更改。改变发声器的颜色不会改变其类型。

5.1.1 单一发声器

单一发声器是 FMOD Studio 中最简单的发声器形式。一经触发,就会播放单个音频文件。

要创建单一发声器,请右键单击音轨播放列表并选择“添加单一发声器”,或者从资源浏览器文件管理器应用程序中将一个音频文件拖到一个音轨或播放列表。

5.1.2 多样发声器

多样发声器包含单一发声器、多样发声器、编程发声器和/或事件发声器的播放列表。一经触发后,会根据发声器的播放列表选择模式从播放列表中选择要播放的项目。多样发声器默认设置为随机播放列表选择模式,这是大多数情况下的推荐行为。

通常使用多样发声器来避免明显的音频重复,从而使游戏世界听起来不那么做作,更真实。

要创建多样发声器,请右键单击音轨或播放列表并选择“添加多样发声器”,或者从资源浏览器或文件管理器应用程序中拖动一个多选的音频文件到音轨上。

5.1.3 事件发声器

事件发声器是在触发时播放引用事件输出的发声器。包含事件发声器的事件称为引用事件的父项事件

事件发声器的输出被收发到包含该事件发声器的父项事件的音轨,而不是收发到调音台。

默认情况下,引用事件的参数包含在父项事件中,并在查看该父项事件时显示在传输栏中。未选中“通过事件发声器递归公开”复选框的内置参数和参数不会在父项事件中公开。如果引用的事件有参数表,则在父项事件中选择事件发声器时,这些参数的控件会出现在操作台中。

在父项事件中设置暴露参数的值也会在被引用事件中设置,除非事件发声器的参数控制在父项事件中是自动控制的(参见参数链接)。如果参数控制在父项事件中是自动控制的,则被引用的事件的参数也受自动控制。

与其他发声器类型不同,事件发声器的音量旋钮不会直接影响发声器的输出音量。相反,它在该事件发声器创建被引用事件的每个实例中设置主轨道的音量推子的值。

事件发声器可用于在项目的多个部分使用相同的内容,并且可以在一个发声器中使用事件的所有功能。

一些被引用的事件是嵌套事件。与其他事件不同,嵌套事件不会出现在收发浏览器中,并且无法在运行时间播放,除非播放其父项事件。每个嵌套事件都显示在事件浏览器中的特定父项事件下,并且不能在该父项事件以外的事件中引用。

要创建引用现有事件的事件发声器,请将该事件从事件浏览器拖到另一个事件的任何音轨上。要创建引用新嵌套事件的事件发声器,请右键单击事件的音轨并选择“添加事件发声器”。

5.1.4 发散发声器

发散发声器是一种特殊类型的发声器,可在其播放列表中不断生成 2D 或 3D 发声器的实例。

发散发声器以类似于多样发声器的方式在其播放列表中生成发声器实例。然而,与多样发声器不同,分散发声器可以从其播放列表中选择并生成发声器,无论其生成的前一个发声器何时完成播放,且可单独随机化每个生成实例的音量和音高,可以为每个生成的实例指定不同的位置,以便进行平移和其他位置相关的行为。

通过设置发散发声器的最小和最大生成间隔带状滑块,可以定义其时间随机化行为。发散发声器的最小和最大生成间隔带状滑块定义了该发散发声器生成的一个播放列表条目实例的开始与下一个播放列表条目实例的开始之间可以经过的持续时间范围。

将生成间隔的模式切换为“速度”只会在特定音符或小节上从播放列表中生成新实例。事件中节拍和小节的时间轴位置由事件的速度标记确定。如果事件中没有速度标记,则默认为每分钟 120 拍和 4/4 拍。

通过设置发散发声器的最小和最大距离带状滑块,可以定义其空间随机化行为。发散器生成的所有实例都被随机分配到一个位置(用于平移),该位置在随机方向上与事件发射器的距离随机。最小和最大距离带状滑块定义了可能距离的范围。将发散发声器的最小和最大距离设置为 0 会禁用该发散发声器的空间随机化。

发散发声器播放列表中的事件引用发声器使用引用事件的 3D 行为来实现空间随机化。这意味着缺少 3D 行为的引用事件(由于没有内置参数或空间化效果)不会以任何方式受到空间随机化的影响。

发散发声器播放列表中的单一发声器和编程发声器被声像平移,就好像受到具有线性平方滚降曲线和最大距离 20 的空间化效果的影响。将发散发声器的最小和最大距离设置为 0 将禁用此功能,并防止该发散发声器将声像平移应用于其播放列表中的单一发声器。

通过设置发散发声器的 vol rnd 和 pitch rnd 属性,可以指定生成的每个实例的音高和音量应该被随机化的程度。音高或音量调整的程度是为每个生成的实例独立确定的。

当放置在音频轨道上时,播放列表中播放的每个发声器都有自己的空间化效果器,允许其位置随机化,即使发散发声器被放置在 2D 事件中,也是如此。但如果发散发声器的播放列表包含 2D事件发声器,那么这些事件发声器的输出将是 2D 的。

发散发声器非常适合营造氛围,例如让蟋蟀在田野里鸣叫。

要创建发散发声器,请右键单击音轨并选择“添加发散发声器”。

5.1.5 编程发声器

编程发声器是一种生成回调的空发声器。这类回调然后用于播放程序员选择的任何音频文件——无论它是否是 FMOD Studio 项目的一部分。

编程发声器非常适合具有大量对话和本地化的游戏,尤其是与音频表结合使用时。

要创建编程发声器,请右键单击音轨或播放列表,然后选择“添加编程发声器”。

5.1.6 命令发声器

命令发声器是一种可以向游戏的 FMOD Studio 系统发出特定命令的发声器。该命令被视为如同通过 FMOD API 发出一样。

指令发声器

命令发声器可以发出许多不同的命令:

可在控制台中设置命令发声器的命令。

与其他发声器不同,命令发声器没有最小长度限制。

要创建命令发声器,请右键单击音轨或播放列表并选择“添加命令发声器”。

5.1.7 快照发声器

快照发声器是一种事件发声器。触发快照发声器时,将启动相应快照的实例,并且将该快照范围内的属性设置为它指定的值。

一旦回放位置离开发声器,快照实例就会停止,并且该快照范围内的属性将返回到它们的正常值。

快照非常适合在游戏中创建混响区。

要创建快照发声器,请将快照拖到音轨上,或右键单击音轨并选择“添加快照发声器”。

有关更多信息和触发快照的其他方式,请参阅调音章节的快照和轨道视图部分。

5.1.8 插件发声器

插件发声器是一种可以产生可能需要的任何自定义声音的发声器。

例如,可能会需要特定类型的合成器、程序生成的音频发声器,甚至是跟踪器文件回放发声器。

要创建插件发声器,请右键单击事件的音轨,然后从“添加插件发声器”的子菜单之一中选择一个插件。

默认情况下,FMOD Studio 与 AudioGaming 的 AudioWeather 和 AudioMotors 插件的试用版捆绑在一起。

您可以自由开发自己的插件发声器。有关如何执行此操作的更多信息,请参阅FMOD 核心 API 文档

5.2 同步和异步循环发声器

您可能需要在不同情况下以略微不同的方式触发发声器进行播放。有时,您可能需要对发声器进行固定的播放时间以便查找其中的内容,而有时您可能需要在触发发声器时播放所选资源的全部内容,而不考虑发声器的长度。

FMOD Studio 可将发声器设置为同步异步模式。

在发声器的操作台的声音、播放列表占位符区域,点击“异步c”按钮以切换异步播放开关。如果按钮是黄色的,则表示是打开的,否则是关闭的。请注意,如果发声器无法更改其同步状态,则“异步”按钮将丢失。

异步按钮

请注意,放置在游戏参数中的任何发声器将始终是异步的。

这些是 FMOD Studio 中每个发声器的默认状态:

  • 单一发声器: 同步。
  • 多样发声器: 同步。
  • 事件发声器: 异步,无法更改。
  • 发散发声器: 异步,无法更改。
  • 编程发声器: 同步。
  • 插件发声器: 专用发声器。插件发声器可以设置为同步或异步,具体取决于它们的设计方式。
  • 命令发声器: 专用发声器。命令工具不产生音频,但可以启动或停止事件,或设置参数值。因此,命令发声器不能同步或异步。
  • 快照发声器: 专用发声器。快照不产生音频,但将效果属性应用于总线中的事件。因此,快照发声器不能同步或异步。

5.2.1 同步发声器

在同步模式下,发声器的长度决定了它的资源播放的时间。

如果发声器的长度比正在播放的资源的长度短,一旦播放光标离开触发区域,它将停止产生音频。

发声器的循环模式是一种使其重复其内容的方式。如果发声器设置为循环,它将在发声器的长度内重播其内容。默认情况下,没有发声器设置为循环。通过将资源拖到音轨上创建的发声器将该资源的长度或该多选中最长资源的长度相匹配。

在同步模式下,播放的波形部分是与回放位置重叠的波形部分。这使得可以在音频文件中搜索(或刷新),而不是总是从头开始播放。

您可以通过单击和拖动发声器的任一端向左或向右来裁剪发声器的开头和结尾,以指定它的开始和结束时间。

修剪发声器

如果使用过渡标记移动到设置为同步模式的发声器的中间,发声器将从资源中的那个点开始播放音频。

同步模式对于动态音乐中的音轨转换很有用。

请注意,同步发声器因参数条件而取消触发,而不是由回放位置离开触发区域而取消触发,则仅只会播放出AHDSR 调制器的释音期。

5.2.2 异步发声器

异步模式用于需要资源在触发后完整播放的情况。异步发声器就像开/关开关一样 —— 一旦回放位置进入触发区域的任何部分,与该发声器关联的资源将从头开始播放。

在不需要在音频文件中搜索的大多数情况下,异步发声器比同步发声器更实用。异步发声器在时间轴过渡标记过渡区域上更灵活,与调制器的搭配效果更好,时间轴位置和波形的解耦意味着在使用 发声器参数条件时,它们通常能够工作得更好。这是因为当满足参数条件时,异步发声器将从波形的开头开始播放。相比之下,一旦满足触发条件,同步发声器会从回放位置所在的位置开始播放波形,但这种行为并不总是理想的。

如果回放位置离开触发区域而取消触发,则异步发声器将播放AHDSR 调制器的释音期。由于这是取消触发发声器的最常见方式,因此在考虑调制器时使用异步发声器非常有用。

5.3 循环发声器

发声器可以设置为循环播放,这样就不会在播放完一个音频文件播放列表条目后立即停止。要使发声器循环,请在编辑器中选择发声器,然后单击其循环发声器循环播放列表控制台中的切换按钮。

只有多样发声器有循环播放列表切换按钮。当在编辑器中选择了多样发声器时,循环播放列表切换按钮就会出现在控制台中。打开时,循环播放列表切换按钮会导致多功能发声器在每次播放完播放列表条目时选择一个新的播放列表条目进行播放。

循环播放列表切换按钮

大多数类型的发声器上都有循环发声器按钮。当在编辑器中选择单一发声器编程发声器时,以及在多样发声器的播放列表中选择了单一发声器或编程发声器(glossary.html#scatterer-instrument)时,循环播放列表切换按钮会出现在控制台上。打开时,循环发声器按钮会导致选定的单一发声器或编程发声器重复播放而不是一次播放。如果仅为播放列表中的某些条目打开循环发声器按钮,则只有这些条目在被选择播放时会循环。

循环发声器切换按钮

切换任何一种循环切换按钮都会导致相邻的播放计数框变为活动状态且可编辑。

发声器的循环行为还取决于发声器的播放计数属性,发声器是同步还是异步), 以及播放时是否被取消触发。

5.3.1 播放计数

播放计数是发声器、播放列表(操作表除外)和播放列表条目的属性。播放计数属性的确切效果取决于它是与发声器或播放列表条目相关联,还是与播放列表相关联。

在发声器或播放列表条目的情况下,播放计数是发声器或播放列表条目在触发或选择时可以播放的最大次数。

对于播放列表,播放次数是触发多发声器时播放列表可以选择新条目的最大次数。

如果关闭循环发声器切换按钮或循环播放列表切换按钮,则其关联的播放计数框将显示为灰色且处于非活动状态。在此状态下,发声器、播放列表条目或播放列表的有效播放次数始终为一次。

5.3.2 同步和异步循环发声器

同步单一发声器和同步编程发声器在其触发区域显示其关联波形的多个副本。显示的波形图形数等于适合触发区域的副本数,最多为发声器播放计数属性的最大值。

如本章同步和异步发声器部分所述,同步发声器在不再与[时间轴]重叠时立即停止输出并停止输出 (glossary.html#timeline-parameter)回放位置。因此,不再与回放位置重叠的同步发声器会立即静音,即使它们尚未完成其循环计数属性指定的播放次数。

请注意,移动回放位置的循环区域过渡标记过渡区域从同步发声器触发区域的一部分到另一部分会在此过程中取消触发和重新触发该发声器。

取消触发时,剪切行为为“立即剪切”的异步循环发声器会立即停止生成输出。剪切行为为“播放至结束”的异步循环发声器会根据其播放计数属性播放至完成。如果单一发声器、编程发声器或多样发声器的播放列表在取消触发时的播放次数是无限的,则在此情况下,播放次数将被视为 1 而非无限。

5.3.3 发生器属性和取消触发行为

循环行为、播放计数、剪切行为和同步/异步性的组合决定了发声器在取消触发时的行为方式,如下表所总结。

循环 播放次数 同步/异步 取消触发时的行为
不适用 同步 不适用 立即停止。
不适用 异步 无特殊行为。
不适用 异步 立即停止。
同步 不适用 立即停止。
异步 播放到当前条目的结尾,然后停止。
异步 立即停止。
1 同步 不适用 立即停止。
1 异步 无特殊行为。
1 异步 立即停止。
? 同步 不适用 立即停止。
? 异步 无特殊行为。
? 异步 立即停止。

5.4 淡入淡出

放置在轨道上的每个发声器都具有淡入和淡出功能。这允许平滑地开始或结束发声器的声音,但与AHDSR 调制器的行为不同。

要为发声器添加淡入或淡出效果,请将鼠标悬停在发声器的左上角或右上角。鼠标光标变为弯曲箭头后,单击并拖动到所需位置。

淡入

可拖动形状手柄来调整淡化的速度。

回放位置在渐变曲线上的位置决定了当时发声器的音量。如果回放位置移动到发声器某个出现淡入或淡出的部分,则发声器的音量将是淡入或淡出曲线显示的水平。这与在发声器上使用自动控制的行为相同。

相比之下,AHDSR 调制器仅在触发和释放发声器时应用。

具有淡入淡出和 AHDSR 调制器的发声器将同时应用。

5.5 剪切和调制

当参数表上的发声器设置为异步模式时,还可以打开或关闭其剪切模式。与AHDSR 调制器结合使用时,异步模式可以影响发声器在回放位置离开触发区域后的结束播放方式。

5.5.1 剪切

剪切可用于异步发声器在回放位置离开其触发区域后不被触发。与同步发声器不同,当异步发声器以这种方式取消触发时,可以使用AHDSR 调制器播放出来。

可单击“异步”按钮右侧的“剪切”按钮来启用剪切模式。默认情况下不会启用剪切模式。当未启用剪切模式时,发声器将在触发后完整播放其资源。

如果在发声器上启用了剪切模式,那么 AHDSR 调制将完全覆盖此行为,无论它应用于哪个属性。一旦回放位置离开触发区域,发声器将变为取未触发状态,将应用释音效果。

5.5.2 AHDSR 调制

AHDSR(起音、保持、延音、衰减、释音)调制是一种包络,可用于控制事件或发声器的属性在事件或发声器启动时如何变化,其峰值是多少,以及当事件或发声器停止或取消触发时如何变化。有关如何使用 AHDSR 调制的更多信息,请参阅创作事件章节的调制部分。

在同步发声器上,如果回放位置离开触发区域取消触发,AHDSR 调制将不会应用释音效果。这是因为回放位置离开触发区域后,同步发声器将停止播放,同时也会应用释音效果。如果发声器的参数条件不再为真时,释音才会应用于同步发声器。

在异步发声器上,AHDSR 调制将被完整应用。当回放位置离开触发区域时,发声器将变为未触发状态并应用释放。

另一个发声器的播放列表中的发声器永远不会直接取消触发,因此多样发声器播放列表条目上的 AHDSR 调制器永远不会播放其释音周期。

5.6 延迟和量化

FMOD Studio 允许在参数表上设置一个发声器以便延迟回放直到某个特定时间、经过一定时间后或者直到特定的音乐节拍。如果需要仅在特定时间或之后回放发声器,则此功能非常有用。例如,动态背景音乐中的短促音效必须与歌曲的节奏相匹配,或者模拟篝火声效时需要随机播放爆炸声。

5.6.1 时间

发声器触发行为的时间属性可用于定义在播放该发声器之前要等待的时间段。虽然发声器在回放位置与其关联的触发区域接触时立即被触发,但实际上不必在此时开始播放发声器。

触发行为绘制器的延迟和量化部分有一个“时间”按钮,启用后会显示通过功能区滑块工作的“延迟间隔”属性。

滑块定义了发声器的条件在触发之前必须继续满足的最小和最大时间值(以毫秒或秒为单位)。如果在规定的最短时间内未满足发声器的触发条件,它将没有机会触发。

如果最小值和最大值都相同,则每次激活时都会对发声器应用固定延迟。如果最小值和最大值不同,则会及时创建一个窗口。FMOD Studio 至少会计算最小时间值且不超过最大时间值,并会在这两者之间随机选择一个延迟时间段以应用于该发声器。

延迟和量化 - 时间

可通过将带状滑块的末端拖动到所需值来定义值,或者双击显示的数字直接输入精确值。

5.6.2 速度

触发行为绘制器的延迟和量化部分有一个“速度”按钮,启用后会显示发声器的“量化间隔”行为。

延迟和量化 - 速度

当事件包含速度标记时,FMOD Studio 会应用节奏跟踪并计算常规时间。如果事件不包含任何速度标记,则默认速度为每分钟 120 拍和 4/4 拍。速度量化允许发声器稍微延迟,以便其能够按照定义的节奏触发,从而听起来更加“音乐化”。

可通过点击时间指示器区域上的“节拍”按钮,切换到显示节拍时间轴和时间指示器

将速度标记添加到事件后,当时间轴设置为显示节拍时,标尺线会更改以匹配小节和节拍格式表示节拍计量单位。可通过移动发声器触发区域以与这些小节对齐,但量化属性可确保它们与音乐小节同步触发。

量化属性可以设置为 1 或 2 的小节值,或半音符、四分音符、附点四分音符或八分音符的节拍值。

量化

5.7 触发条件

可以在参数表上为发声器设置某些触发条件

默认情况下,当回放位置与发声器的触发区域重叠时,参数表上的发声器会被触发。可在发声器的触发行为绘制器中添加更多条件。单击控制台中发声器面板左侧的显示三角形来查看这些设置。

要为发声器添加参数条件,请单击条件列表底部的“添加条件”按钮,然后选择希望发声器触发的游戏参数。如果游戏参数不存在,这会自动将游戏参数添加到事件中。在每个发声器的条件列表中,只能使用每个游戏参数一次。

只有当_所有_条件列表中的条件都满足且回放位置在发声器触发区域内时,发声器才会开始播放。同样,当_任何_条件不再满足时,发声器将取消触发。

如果存在任何延迟和量化设置,则发声器只有在到达量化点时同时满足所有条件时才会开始播放。当不再满足条件时,量化发声器将立即变为取消触发状态。

可通过启用随机化按钮(标有骰子)来进一步自定义触发条件。在概率条件中更改“概率”旋钮将为发声器触发提供一个百分比值。这些概率计算在满足所有条件时调用,并且在条件未满足然后重新满足之前不会重新计算。