第 6 课

目录

使用 Event 来设置 State

现在,"Music_State" State Group(状态组)可以为目前配置好的 State 正确选择所要播放的音乐了。《Cube》 的游戏引擎没有发送给 Wwise 任何关于 Music_State State Group 的信息。不过,游戏引擎中已经编好了程会在游戏中适当场合发送简单的 Event 游戏调用。例如,当玩家穿过倒数第二扇传送门后,这就意味着与 boss 怪的战斗要开始了,游戏引擎向 Wwise 发送一个 Event 调用,表明这场大战正在进行。如果打败了大 BOSS 并到达了最后一扇传送门,就视为过了这一关。这时会将另一 Event 调用发送到 Wwise 以示玩家取得了胜利。你可以使用这些 Event 来设置游戏状态,这样 Wwise 201 Music Music Switch Container 就可以选择恰当的音乐了。

  1. 在 Project Explorer 中,选择 Events 选项卡,展开 Events 文件夹,然后选择 Music Work Unit。

    为了对流程有个大致印象,你先要为 boss 战创建一个 Event。因为这是从游戏引擎发送来的调用的名字,所以这里使用的名字应该和游戏代码里的 Event 名字完全匹配。

  2. 点击 Create New Event 图标,将其命名为 Boss_Start

    现在你需要用这个 Event 来将 Music_State State Group 设置为 Boss State。

  3. 选中 Boss_Start Event,接着在 Event Property Editor(事件编辑器)中单击 Add >>(添加 >>)按钮,然后依次选择 States > Set State(状态 > 设置状态)。

    这时 Event Property Editor 中新建了一行。

  4. 右键单击 Target 列中的空白区域,然后依次选择 Set Target > Music > Music_State > Boss(设置目标 > Music > Music_State > Boss)。

    接下来,针对玩家通过最后一个传送门并完成关卡的情况,重复上述步骤并设置新的状态。

  5. 创建一个叫作 Map_Completed 的 Event,然后用它将 Music_State 设为 Victory

    在大多数时间内,玩家都会处于通用的游戏玩法模式之中,你在 Music_State State Group 中将这个模式指派为 Gameplay State。目前这个状态设定为播放 Combat 音乐。为了确保 Wwise 201 Music Music Playlist 知道要在 Gameplay 模式时开始播放音乐,你可以将此信息添加到 Music Event Action 列表中。

  6. 选择 Music Event。

    可以看到,你已经将 Music Event 设为播放 Wwise 201 Music。同时,你可以让事件来设置 Gameplay State。

  7. 添加一个 Action 来将 Music_State 设为 Gameplay

    尽管这些 Action 几乎是瞬间就会发生(除非通过 Delay 属性修改了时机),但 Action 的执行顺序是按照排列顺序由上到下来的。Gameplay State 应该在先,这样在播放 Wwise 201 Music 对象之前,State 就被正确地设置好了。你可以拖动 Event Actions 列表中的各项以设定顺序。

  8. Set State Action 拖动到列表的顶端。

    这样新顺序就建立好了。

    另一个需要考虑的问题是,在有些情况下,Music Event 很可能发送了若干次,特别是在 Wwise 中测试的时候。这样的话可能会同时播放多个迭代的 Wwise 201 Music 对象,导致音乐之间相互交叠。为了不让这类情况发生,你可以添加一个 Stop Event Action 使得在开始新的播放之前关闭任何正在播放的音乐。

  9. 单击 Add >>(添加 >>)按钮,并依次选择 Stop > Stop(停止 > 停止)。

    你需要指定哪个对象应该停止播放。方法是将目标对象拖动到 Target 这一列。

  10. Wwise 201 Music 对象从 Project Explorer 中拖动到 Target 这一列 Stop Action 这一行。

    在所有 Action 中,Stop Action 需要最先发生,这样才能确保正在播放的音乐在重新播放之前已被关闭了。

  11. Stop Action 拖动到 Action 列表的最顶端。


此页面对您是否有帮助?