FMOD Studio User Manual 2.02

13. 对话与本地化

在许多游戏项目中,对话有许多特点,不同于其他种类的游戏音频。大多数带对话的游戏都包含大量的单段台词,需要控制播放具体哪段台词;对话几乎总是限于特定的语言,因此在任何给定情况下播放的音频资源都取决于游戏设置的语言; 有时,直到游戏开发的较晚阶段,某些对话才可能完成录制并添加到 FMOD Studio 项目中。

虽然可为游戏支持的每种语言的每段对话创建一个独特的 FMOD Studio事件,但创建一个包含编程容器的对话事件会更快且更容易。然后,每当游戏中有一段对话时,游戏都可为此对话事件创建新实例,并且游戏代码可选择该实例要播放的特定对话。

可通过音频表音频文件构建到事件库中,而无需将其添加到发声器。因此,可将编程容器使用的音频文件包含在事件库中,从而使其受益于事件库的压缩和加载。此外,本地化音频表可更轻松地组织不同语言的音频文件,以便根据播放器的语言设置进行交换。

13.1 音频表

音频表是存储在 FMOD Studio 项目资源文件夹之外的音频文件列表。它们被分配给与音频表关联的事件库,并在构建时会被压缩并与分配给该事件库的其他资源捆绑在一起。然后,播放游戏时,这类文件可由项目中的编程容器播放。

要创建音频表,请在事件库浏览器中右键单击事件库并选择“添加音频表”。每个事件库只能有一个音频表。

音频表会自动在其源目录中包含音频文件。可通过在其“源目录”字段中输入路径,或单击“浏览...”按钮并从文件对话框中选择适当的目录来设置音频表的源目录。源目录字段中的路径可包含环境变量,例如 %HOME%$HOME。如果路径是相对的,例如../source,则被视为相对于 FMOD Studio 项目文件夹。

如果选中“包含子目录”复选框,FMOD Studio 会递归搜索源目录中每个子文件夹中的所有音频文件。如果未选中此复选框,FMOD Studio 将搜索目录本身,但不搜索其子文件夹。

编程容器允许在事件中播放这些音频文件。触发后,编程容器会在 FMOD Studio API 中生成回调,允许游戏选择发声器应该播放的音频文件。有关回调以及如何使用回调的更多信息,请参阅我们的虚幻引擎Unity 3D的 FMOD API 文档。

音频表可通过扩展处理数千个音频文件。因此,使用音频表可降低项目的复杂性,可使带有编程容器的事件在游戏中播放许多不同的对话。

在 FMOD Studio 中试听时,编程容器无法播放在游戏中被触发时将引用的文件。但可将音频文件或音频表拖到操作台中显示的编程容器“占位符”部分,以便在 FMOD Studio 中试听该发声器时播放该文件或音频表。将音频文件设为占位符不会自动将该音频文件分配给事件库。

13.1.1 本地化音频表

本地化音频表是一种特殊的音频表,具有辅助本地化的功能。如果游戏支持多种口语,或者打算在未来的补丁中添加对其他语言的支持,我们建议使用本地化音频表。

与其他音频表不同,本地化音频表会自动将区域代码附加到其源目录路径的末尾。即本地化音频表实际上有多个不同的源目录,每个目录对应于项目的区域

当构建包含本地化音频表的事件库时,FMOD Studio 会自动为每个语言环境生成一个已构建事件库的版本。每个这类事件库都包含它所代表的语言环境的音频文件,并以下划线分隔的后缀作为文件名的语言环境代码。

例如,如果游戏有两个区域设置,区域设置代码为“PRC”和“FRE”,并且游戏的“对话”库具有本地化音频表,其源目录为C:/Audio,本地化音频表的源目录将是/Audio/PRC and /Audio/FRE。构建项目时,FMOD Studio 会生成两个文件,Dialogue_PRC.bankDialogue_FRE.bank.。

可在[首选项对话框] (glossary.html#preferences-dialog)的资源选项卡中定义新的区域设置和区域设置代码。

要创建本地化音频表,请在事件库浏览器中右键单击事件库并选择“添加本地化音频表”。要使现有的非本地化音频表本地化,请右键单击选择“本地化”。本地化的音频表在事件库浏览器中标有“本地化”标签。

13.1.2 关键点

关键点是给包含在音频表中的音频文件的变量名称。当从音频文件创建声音时,关键点可用来代替音频文件的名称和路径。如果使用关键点创建多个不同的事件库或使用本地化音频表从多个不同的源目录创建事件库的多个版本,则可将相同的关键点分配给每个事件库中的不同音频文件。这样一来,可使用关键点来创建基于各种不同音频文件的声音,而所使用音频文件的名称则取决于使用该关键点时加载的事件库。

关键点主要用于本地化对话。如果为游戏支持的每种口语创建一个事件库版本,则可使用与某段对话关联的关键点,以当前加载的事件库的语言播放该对话,即使该段对话的音频文件名称会因载入的事件库而有所不同。

默认情况下,音频文件的关键点是该音频文件的文件名,减去文件扩展名。如果希望对事件库中的音频文件使用不同的密钥,请在事件库的音频表源目录中放置一个名为keys.txt 的文本文件;如果使用本地化的音频表,则可在每个音频表的源目录中放置一个名为 keys.txt 的文本文件。在这些文件中填写所要使用的关键点列表,以及它们对应的音频文件的名称,如下例所示:

Greetings,hello01.wav
Farewell,goodbye01.wav

在该例中,关键点是“Greetings”和“Farewell”,它们分别对应于hello01.wavgoodbye01.wav

未在源目录的 keys.txt 文件中列出的音频文件不包含在已构建事件库中。