在AtomCraft中实现对白

本文介绍了如何使用AtomCraft在游戏中实现对白。

概述

在这个系列教程中,我们已经介绍了如何实现音效和音乐。在你的游戏中,对白同样重要,而且扮演着关键性的角色!我们将介绍对白集成的基本要点、分支以及本地化。我们将演示如何运用AtomCraft的一些最重要的功能来高效地在工程中实现交互对白。

AtomCraft中的对白实现

在大多数情况下,对白的集成与音乐和音效非常类似。在ADX2中,所有这些元素都是使用Cue来进行集成的。不过,对于对白来说,本地化是一个新概念,而且非常重要,我们将稍后介绍它。

 

串流VS内存:

当你将对白音频文件添加到AtomCraft中时,你需要决定它们是串流播放还是从内存中播放。这通常取决于文件的大小,也就是它们的时长,有时候也取决于它们会被播放多少次。比如说,一段很长的过场动画对白,只播放一遍,一般来说比较适合使用串流。

串流VS零延迟串流:

当串流音频时,引擎需要先将足够的数据载入到缓冲区,然后才能播放,这会产生一点点延迟。在某些情况下,这会造成一些问题(比如当对白需要与动画精确同步时)。

对于那些要求精确同步的场景,你可以出踹死零延迟串流选项。在这种方法中,数据在播放之前就已经被准备好(第一批缓冲数据已经载入),因此不会产生延迟。

音频编码器:

除了各平台提供的编码器之外,ADX2还提供了三种自主音频编码器,它们分别是ADX、HCA和HCA-MX。你可以从这篇文章了解关于ADX2音频编码器的更多信息。

当进行音频编码时,AtomCraft为每个编码器提供了5个级别的音质(压缩率)选项:

你可以根据工程的类型、平台以及所需要的音质水平,选择合适的编码器和压缩率。你可以从这个视频教程中了解更多关于编码器的信息。

导入音频文件

要在你的游戏中实现对白,首先需要将你的音频文件导入到工程中。下面我们来看看如何导入。

第1步:

前往Materials(素材)面板,右键点击你的对白目录。

第2步:

点击Add Material(添加素材),选择你要导入的文件,然后点击Open(打开)。

* 你还可以从Windows资源管理器中直接导入文件:当你将音频文件拖拽到素材目录、CueSheet或Cue上时,这个音频文件会被自动导入到素材的根目录。

第3步:

现在你可以调整串流类型,也可以选择编码器并设置压缩率。只要点击你的目录,所有关于音频文件的设置就会出现在中间的面板中。

本地化

有些工程要求本地化成几种语言。要管理工程中不同的语言,你需要在语言设置中添加这些语言,并在素材中创建一个Multi_language目录。

 

第1步:

前往项目树状菜单中的Global Settings(全局设置),打开Language Settings(语言设置)目录。在这里你可以向工程添加语言。要添加一个新的语言,右键点击语言设置目录,选择New Object(新建对象)→Create Language Settings(创建语言设置)。

第2步:

添加新语言。你可以创建自己的语言设置,也可以从预设的模板中选择。

新语言对象现在已经可用,点击它可以查看或编辑它的属性。注意,你也可以在语言设置目录中直接编辑所有关于语言的属性。

第3步:

现在你可以在中间的面板中调整语言属性。对于Reference Folder Name(参考目录名)一项,填入你为这个语言创建的子目录名称。对于Output Folder Name(输出目录名),指定你希望将这个语言的二进制文件输出到哪个目录。在这里,你还可以指定当该语言中缺少文件时,应该使用哪一种语言作为默认语言。最后,如果你的本地化文件名包含前缀或者后缀,你也可以在这里设置它们。

第4步:

在向多语言设置导入文件之前,我们需要先创建一个multi-language目录。前往工程树状菜单中的Materials(素材),右键点击素材根目录,选择Creation of folder for localization(创建本地化目录)。

第5步:

要导入你的对白文件,双击Multi_Language目录,然后将每种语言的音频文件拖拽到相应的子目录中。

第6步:

当本地化素材导入之后,你可以对它们进行预览。选择一个引用本地化文件的Cue,然后从主窗口顶部的LanguageSetting(语言设置)复选框中选择一种语言。

注意:在AtomCraft中,我们也可以将轨道指定为某种语言,这种方法在自动替换素材功能不够灵活时很有用。

要为轨道指定语言,先选中这条轨道,然后在属性面板中双击Apply Language(应用语言)。这时会弹出语言选择窗口,从中选择你要的语言并点击OK即可。

这样,当我们从语言设置复选框中选中一种语言时,每条轨道将只在选中与自身相匹配的语言时才会播放。

简单的对白集成

像其他类型的声音一样,所有对白也可以轻松地通过Cue来集成到你的工程中。只要创建合适类型的Cue,添加轨道,添加音频文件并调整Cue参数即可。如果你对ADX2的Cue系统还不熟悉,我们推荐你观看这个视频教程了解更多信息。

对白分支

某些游戏,特别是AAA级作品,需要更加高级的对白系统。例如,这些游戏可能会需要对白分支。在这一节中,我们将介绍如何在AtomCraft中实现这种类型的对白行为。

我们看下面这个简单的序列,其中对白需要根据特定的场景发生变化。

第1步:

要创建用于上述对白分支序列的测试素材,我们使用了Tsugi开发的Alto Studio。这是一款游戏对白工具,其中包含很多功能,包括占位语音合成器。我们只要输入文本,Alto Studio就可以自动生成音频文件并为它们命名。

第2步:

当我们所有的对白文件都导入到AtomCraft之后,我们接下来需要确定需要多少个Cue以及如何实现它们。我们会遇到各种不同的情况,但好在AtomCraft非常灵活。

对于上面这个例子,我们决定只用一个Cue来实现这个对白序列,这个Cue中包含一个切换Cue和一个游戏变量,如下图所示。

第3步:

我们已经创建了一个类型为Switch(切换)的Cue,其中有两条轨道。程序员需要根据游戏场景,决定具体播放哪条对白,并指定相对应的Selector Label(选择器标签)值。你可以通过这个视频教程了解更多关于选择器的信息。

这个Cue是这样工作的:如果玩家第一次去这个地方,会播放第2条轨道,玩家会听到“Let’s go there! Wow! Nice place!”如果玩家曾经去过这个地方,就播放第1条轨道,玩家会听到:“Let’s go there! I’ve been here before!”

第4步:

到这里我们已经完成了这个对白序列的第一部分。接下来,我们需要想办法实现第二部分,即根据玩家要去的方向,播放“Let’s go left”或“Let’s go right”。

为了实现这样的行为,我们使用了一个子序列和一个游戏变量。

子序列具有和Cue一样的功能,也可以添加轨道和波形,它们可以在子序列直接进行编辑和随机化。你可以将它看成是把一个完整的Cue装在了一条轨道里。

 

要创建子序列:右键点击一条轨道,选择“New Object”(新建对象)→“Create Sub Sequence”(创建子序列)。

有了新的子序列,我们就可以用两条轨道让对白进行“分支”了。

 

第5步:

我们需要使用一个变量让对白跟随玩家要去的方向。变量是一个来自游戏的值(程序员会设置这个值)。在这个例子中,0到0.49之间的值会触发第1条轨道,0.5到1.0之间的值会触发第2条轨道。

要创建一个新变量:前往Global Settings(全局设置)窗口,右键点击GameVariables(游戏变量)目录,选择“New Object”(新建对象)→“Create Game Variable”(创建游戏变量)。

要将新的变量指派给你的子序列:打开你的子序列,选择Selector/Random(选择器/随机化)标签,然后从下拉框中选择你的变量。

第6步:

现在来测试一下你的实现:打开Session Window(会话窗口),选择你的Cue。对白会根据选择器的和游戏变量的值播放相应的内容。

下面是视频演示(点击图片观看视频)

 

如果你想实际听一听和看一看一些实现交互式对白的例子,可以在下面下载我们为你制作的示例工程。

Blog_Dialogue

[注意:这个工程需要AtomCraft 2.27.01或更高版本]

使用REACT实现对白和闪避

最后我们还要介绍一个非常重要的功能:REACT,它是AtomCraft的闪避系统。

当同时播放另一个声音时降低当前播放的声音的音量,这叫“闪避”(ducking)。闪避系统在游戏音频混音流程中是一个非常重要的感受,当游戏动作十分拥挤时,它可以使得游戏音频引擎控制哪些声音需要被玩家听清楚。要完成这样的任务,REACT可以在游戏运行时对属于特定分类的Cue的音量进行控制。

ADX2的闪避系统叫做“REACT”,它可以在运行时控制不同音频分类之间的音量关系。通过在AtomCraft中配置REACT设置,你可以根据游戏动作自动调整分类之间的实时音量平衡。闪避的一个典型运用是在游戏中当开始播放对白时,稍微降低背景音乐的音量。这样可以在混音中为对白留出更多的空间,确保玩家可以听清楚。

 

第1步:在AtomCraft中创建两个分类

第2步:将Cue(可变&触发)指派到相应的分类

* 将你的Cue拖拽到相应的分类上

 

第3步:新建REACT

第4步:指派Changing Category(可变分类,即会被降低音量的分类)

第5步:指派Trigger Category(触发分类)

第6步:设置音量衰减(1 = 无衰减;0 = 静音)

第7步:设置闪避的Change Time(变化时间)、Hold Time(保持时间)以及Return Time(返回时间)

现在,当每次播放对白时,游戏就会稍微降低音乐的音量!

如若想要了解更多关于游戏内混音的相关教程,可以访问我们的另一篇博客文章:用AtomCraft进行游戏音频混音

以上就是关于ADX2交互式对白系统的介绍,如果你想了解ADX2的某个功能,快点告诉我们吧!

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据