在AtomCraft中创建环境音效

本文将介绍如何使用AtomCraft实现环境音效。

概述

我们一般认为,在沉浸式音频体验中主要需要4种类型的声音:音乐、环境音效、动作音效以及语音。其中每一种元素都在你的游戏音频项目中扮演着重要的角色。

 

环境音效的一个主要目的是当没有动作进行时,避免出现不自然的静音状态。它就像“胶水”将其他各种元素粘合在一起,创造出一种沉浸式的感觉。环境音效还可以在特定时刻创造特定的氛围,帮助更好地传达故事情节,比如足球游戏中的观众音效就是一个很好的例子。

需要涉及的ADX2基本功能

在这篇文章中我们将有机会涉及很多ADX2的功能,下面我们列出了这些功能,后面是相应的视频教程链接。

概念

我们有很多种方法在游戏中实现环境音效,在这篇文章中我们想要演示如何只触发一个Cue就能在整个游戏中播放所有的环境音效。

我们的环境Cue会根据当前位置播放正确的环境音效,并且还能配合一天中时间的进行。

每条轨道(白天/夜晚)由两个部分组成,第一个部分是背景循环,第二个部分是声音随机化器。

要实现这一需求,我们需要:两个切换Cue、选择器、AISACs、循环标记以及相应的音频文件。游戏只需要播放主控Cue,然后选择器标签会播放正确的环境轨道。在这里,AISAC系统负责根据时间改变环境音效。

这是AtomCraft中打开工程的截图,我们可以看到两个Cue:

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

https://pan.baidu.com/s/1gf9pQ9P

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

实现步骤

下面我们来一步一步地解释一下我们是如何实现这个环境音效Cue的。

1 – 导入音频文件

首先我们需要将所有的音频文件导入到素材中,以便它们能够被一个或者多个Cue引用。我们可以将音频文件拖拽到素材根目录来导入它们,或者也可以从Windows资源管理器中导入。

前往Materials(素材)面板,右键点击一个目录并选择“Add Material (Waveform) files”(添加素材(波形)文件)。

导入之后,所有音频文件都会被复制到工程素材目录,我们建议你将文件组织到不同的子目录中。

2 – 创建声音Cue

我们需要创建两个Cue。第一个Cue我们起名叫“Ambience”,程序员会使用这个Cue来播放我们所有的环境音效。第二个Cue我们起名叫“Randomizer”,我们用它来播放所有的随机化环绕音效。

要创建Cue,前往工程树状菜单的Work Units(工作单元)区域,右键点击所需的CueSheet并选择“New Object”(新建对象)。菜单中会出现很多不同类型的Cue,现在我们需要选择“Switch”(切换)。

现在我们可以看到这两个Cue了:

3 – 组织随机化Cue

我们将为每种环境音效创建两条轨道,一条用于白天,一条用于夜晚。当我们创建好所有的轨道之后,下一步就是在每条轨道上添加一个子序列。

子序列具有和Cue等价的功能,在子序列中可以添加轨道和波形,也可以直接编辑和随机化,可以将它看成是把一个完整的Cue放进了一条轨道里。每个子序列都将包含我们需要进行随机化的音效。例如,“Forest Night”(森林夜晚)子序列可以包含猫头鹰、狼和青蛙的音效。

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

从下图中我们可以看到4条轨道(两种环境音效)以及它们各自的子序列。

现在我们可以向每个子序列中添加音频文件了。要打开子序列,只要双击它即可,打开之后的界面和Cue完全一样:

最后,将Cue类型设置为“Random”(随机)并将音频文件拖拽到时间线上。所有的轨道都将被自动创建。不要忘记设置Cue的随机化参数,例如音量、音高、角度和内部距离。

当我们将所有的随机音效关联到相应的子序列之后,我们就需要插入循环标记,使得每个子序列中包含的随机音效都能够被无限次触发。

要插入循环标记:右键点击时间线,选择“New Object”(新建对象)→“Add Marker”(添加标记)。在“Add Marker”(添加标记)窗口中选择“Infinite Loop”(无限循环),然后点击“OK”。

循环标记将在时间上显示为绿色。

4 – 组织环境音效Cue

让我们返回主控Cue“Ambience”。现在我们需要为每种不同类型的环境音效创建一条轨道,并且为它们分别添加子序列。

现在,为了让我们的环境音效根据时间进行转换,我们需要在每个刚才创建的子序列里面再添加两个子序列,一个用于白天,另一个用于夜晚。

最后,每个子序列(白天/夜晚)都各自拥有两条轨道,第一条用于北京循环,第二条用于随机化Cue。

在第一条轨道上:将所需的背景音频循环从工程树状菜单的素材区域拖拽过来。在上面的例子中,我们已经添加了“Forest – Day”音频文件。

在第二条轨道上,有一个CueLink,它指向我们前面准备好的“Randomizer”(随机化器)。要将Cue关联到一条轨道,只要将其拖拽到时间线即可。

5 – 创建选择器

选择器是一些变量,它们可以为预先定义好的一组值,这些值称为选择器标签。在游戏运行时,Cue会检查选择器的值并只播放那些与特定选择器标签相关联的轨道。我们将使用这一功能让环境音效跟随地点变化。

首先我们来创建选择器。在工程树状目录的Global Settings(全局设置)区域中,右键点击选择器目录,选择“New Object”(新建对象)→“Create Selector”(创建选择器)。我们将新的选择器命名为“Ambience”。

现在我们需要创建选择器标签。右键点击选择器,选择“New Object”(新建对象)→“Create Selector Label”(创建选择器标签)。我们将新的选择器标签命名为“Forest”。我们需要为每种环境音效创建相应的选择器标签。

要将选择器指派给一条环境音效轨道:点击环境Cue的Random/Selector(随机/选择器)标签页,并通过下拉菜单指定所需的选择器。

现在我们可以将选择器标签与相应的轨道进行关联。例如,我们可以将“Forest”选择器指派给“Ambience”Cue的“Forest”轨道。

另外,我们还需要将相应的选择器标签连接到“Randomizer”Cue中的“Forest”轨道。

6 – 创建AISAC

AISAC是一个使用从游戏传递的值来控制音频参数的系统,这种功能通常也被声音设计师称为实时参数控制(Real-time Parameter Controls,RPC或RTPC)。

我们将使用AISAC根据时间变化来切换环境音效。游戏会发送值(时间)给我们的Cue所关联的AISAC,这样就可以实时地切换环境音效(白天/夜晚)了。

首先我们需要创建一个AISAC控制器将游戏与AISACs连接起来。AISAC控制器是一个识别名称,程序员可以从游戏向ADX2传递值,这些值会根据识别名称被映射到相应的AISAC曲线。

要创建AISAC控制器:前往工程树状菜单的Global Settings(全局设置),右键点击AISAC-Control目录,选择“New Object”(新建对象)→“Create AISAC-Control”(创建AISAC控制器)。我们将它命名为“Time”。

要添加一个AISAC:选中一条轨道(白天或夜晚),点击AISAC面板上的“+”按钮。

最后,在 “Add AISAC”窗口中,选择你刚才创建的AISAC控制器“Time”,然后选择“Volume”(音量)曲线类型。

现在我们可以绘制音量曲线了。我们希望让白天的音效淡出,同时让夜晚的音效淡入。要实现这一需求,我们需要为每条轨道(白天和夜晚)分别创建一条不同的曲线。

* 我们需要为“Day”和“Night”子序列绘制各自的音量曲线,包括“Randomizer”Cue和“Ambience”Cue。

7 – 测试和调整

现在我们可以试听一下环境音效Cue了,我们可以在Session Window(会话窗口)中测试我们的实现。

要在会话窗口中打开Cue:选中“Ambience”Cue,点击View(查看)菜单然后选择Session Window(会话窗口)。

以上就是关于AtomCraft中环境音效实现的介绍,如果你想了解ADX2的某个功能,快点告诉我们吧!

感谢Watson Wu(http://www.watsonwu.com)提供示例工程中使用的音频素材。

发表评论

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

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