目录
程序员已经为游戏中凡是需要音频响应的地方添加了程序代码,用来发消息给 Wwise,告诉 Wwise 在游戏中发生的事情。这样的消息被称为一个 Game Call(游戏调用)。Game Call 只是一些“嘿,刚才投掷了 Ice Gem”之类的简单消息,但这种消息在发往 Wwise 时其实是用一串编了码的文本或数字来表示的。当 Wwise 音频引擎收到这条消息的时候,它将采取的一系列反应是由你,即游戏音频设计师事先设计好的。
你需要做的第一件事是创建一个 Event,使 Wwise 能够捕捉到输入的游戏调用。可以把这个机制想象成一个游戏引擎和音频引擎之间的接球游戏。游戏引擎扔过来的球就是游戏调用,而事件则是 Wwise 内部设计好用来接住游戏调用这个球的对象。有很重要的一点需要记住:对于每个游戏调用,都需要准备一个事件来发给 Wwise,事件的名字要与游戏调用的名字完全相同。
-
选择主菜单的 Layout > Designer(设计师)或者按下 F5 键。
-
在 Project Explorer(工程浏览器)视图中,点击 Events 选项卡。
接下来,我们要转到 Events 选项卡。在此,可执行相应操作以便 Wwise 理解游戏引擎发来的 Game Call。
在 Project Explorer 的 Events 选项卡中你看到一个文件夹名叫 Events,在那个文件夹里面有一个对象叫作 Default Work Unit(默认工作单元)。Work Units(工作单元)是 Wwise 的基石。Work Units 包含工程中特定板块或者特定元素的信息,Work Units能帮助你整理工程。
在许多游戏项目中,会有很多人、甚至很多公司同时合作,分别负责打造游戏的不同部分。比如,某个团队负责所有魔法音效,而另一团队专门负责环境声。这种情况下,每个团队可以用自己的 Wwise 软件,创建自己独特的 Work Unit 来装入各自设计的事件。在开发后期,多个 Work Unit 可以整合到一个单独的工程中,这样可以把各单位创建的元素一起合并到游戏中。
Work Unit 实际上是 Wwise 工程结构中的 XML 文件。
Wwise 中创建的任何东西都称为对象。注意不要把这些对象与本课先前提到的 Game Object(游戏对象)弄混了,游戏对象指的是游戏中的东西。Wwise 界面上的对象由小方块图标表示。Wwise 有 20 多种对象,每个对象都提供独一无二的声音控制功能。对象都组织在一个层级结构(hierarchy)中,一般 Work Unit 位于层级结构的顶部。这些对象好比盖楼的砖瓦,既可以用于简单实用的应用场合,也可以组织成复杂和富有创意的结构。接下来,我们要在 Default Work Unit 内创建一个简单的 Event 对象,以此接收《Cube》游戏引擎发来的 Ice Gem(冰晶宝石)相关 Game Call。
-
点击 Events 文件夹中的 Default Work Unit。
当一个对象被选中后,在 Project Explorer 的图标栏上会显示出在选中的对象下面可以进一步创建些什么类型的对象。把鼠标停放在图标上面,会出现卷标提示你这个图标对应的对象类型。
-
把鼠标停放在第四个图标上,你会看到它是一个 Event 对象。
-
单击 Event(事件)图标来在 Default Work Unit(默认工作单元)内创建新的 Event 对象。
这时将创建新的 Event 对象并提示键入其名称。
Event 对象的命名至关重要。Event 对象的名称必须与游戏引擎发来的对应 Game Call 的名称完全一致。这就跟你打电话时,一旦拨号稍有偏差就会打不通是一个道理。
为了确保事件对接过程进行顺利,一般先由声音设计师来决定声音引擎需要知道什么事情,并为每件事情创建 Wwise Event。然后声音设计师再将这些 Event 的名称告知于程序员,以便其在游戏引擎中编写代码来使用相同的名称发送 Game Call。在本例中,《Cube》游戏引擎已经编好了代码,Game Call 的名称也已定义。在此,每次投掷 Ice Gem 都会发送名为 "Fire_IceGem_Player" 的 Game Call。
-
输入 Fire_IceGem_Player 并按 Enter。
Wwise 待会儿会为你的工程生成软件代码。在那些代码里面,所有对象的名字都会被自动转为小写字母来处理,所以对象名字不区分大小写。
在选中对象时,会在右侧的 Event Property Editor(事件属性编辑器)中显示与之关联的属性。这一点从视图的标题栏就可看出,其显示了 "Fire_IceGem_Player - Event Property Editor"。不同对象都对应有自己的编辑器,这些编辑器的复杂度各异。大多数编辑器都有一个 Notes(注释)栏,这一栏极其重要,因为你可以往里面写上附加信息,避免由于事件名称晦涩而引起误解。看着像 Fire_IceGem_Player 这样的名称,自然就会想到 Event 很可能跟 Ice Gem 投掷有关。不过,并非所有 Event 的命名都会这么直观。Notes 可提供更多相关信息以便本人和其他审查人员更好地了解工程中所作的设置。