第 5 课

目录

使用 State

在《Cube》中,Wwise Wwizard(魔法师)有机会拾获 Super Gem(超级宝石),其能在短时间内令投掷的其他宝石产生四倍的攻击力。在拾获 Super Gem 时,会向 Wwise 发送相应的 Event,以此设定 State 来表明要进入 Super Gem 模式。为此,无论在这段时间投掷任何宝石,都会附加 Super Gem 鸣响音效。你还可以利用 State 的变化来调整音乐。

接下来,我们要在玩家处于 Super Gem 模式时使用之前构建的 Arpeggio 音轨提供进一步的听觉反馈。

  1. 在 Project Explorer 中,选择 Combat-A Music Segment。

    目前,Arpeggio 音轨配置为了随机选择一条 Sub-Track。这条 Sub-Track 可能是不同版本琶音中的一个,也可能是条空的 Sub-Track。接下来我们要做一些修改,确保只有在玩家持有 Super Gem 时才会听到琶音声部。在玩家没有 Super Gem 时,不会听到琶音。这时,空白 Sub-Track 是多余的。

  2. 在 Music Segment Editor 中,右击 Combat-A-Arpeggio1 Music Track(音乐轨)中的空的 Sub-Track, 然后选择 Delete

    空的 Sub-Track 就移除了。

    对象将对游戏状态的改变如何作出反应,这是由 Property Editor 中的 States 选项卡进行管理的。

  3. 选中 Combat-A-Arpeggio1 音轨后,点击 Music Track Property Editor 中的 States 选项卡。

    当进入到一个特定的游戏状态时,你需要添加一条指令来指示需要做些什么。《Cube》中用于表明 Super Gem 是否生效的游戏状态叫做 PlayerHasSuperGem。在玩家拾获 Super Gem 时,会在一段时间内将 "PlayerHasSuperGem" State Group 设为 "Yes" State,提示 Wwise 在此期间 Wwizard 向怪兽投掷的任何宝石都会产生四倍的攻击力。一旦 Super Gem 失去效力,便会将 "PlayerHasSuperGem" State Group 设为 "No" State。我们可以依据 "PlayerHasSuperGem" State Group 的这些变化来调节 Arpeggio 音轨。

  4. 单击 Add State Group >>(添加状态组 >>)按钮,然后选择 PlayerHasSuperGem

    这时会显示几行信息,指示在 "PlayerHasSuperGem" State Group 被设为 "Yes" 或 "No" State 时会发生什么。

    当 State 发生改变时,每个可能的 State 都可以用来触发对各种属性的偏置。对于 Music Track,你可以偏置音量和滤波器。要做到让琶音声部显现或消失,你只需要用一个简单的音量偏置就行了。在本例中,我们不想在没有 Super Gem 时听到琶音。为此,在 "PlayerHasSuperGem" State Group 被设为 "No" State 时,要在音轨正常音量的基础上进一步降低数值。

  5. No 行,将 Voice Volume(声部音量)设为 -108

    音量衰减 108 dB 意味着声音是听不到的。此外,这也意味着该音轨的音量将会低于音量阈值,Wwise 将不会处理它,从而节省游戏系统的 CPU 资源。如果琶音不是在完整小节或者节拍上插入的,那么听起来会觉得有些违和。所以有可能需要推迟琶音音轨的插入时间,直到 Music Segment 中某个特定的时间点才播放。只有 Interactive Music Hierarchy 下的对象才有这种与音乐挂钩的功能。在本例中,我们要在 "PlayerHasSuperGem" State Group 变换 State 之后的下一小节切入或切出琶音过渡。

  6. Change occurs at 属性设为 Next Bar

    现在你可以用 Transport Control(播放控制)视图来测试你的工作成果了。

  7. 在 Project Explorer 中,选择 Combat-A Music Segment。

    Transport Control 视图目前聚焦在 Combat-A Music Segment 上。

    因为 Combat-A Music Segment 包含一个会对 State 做出响应的音轨,那么这个 State 可以在 Transport Control 视图中展示出来。

  8. 在 Transport Control 中,确保选中了 States 按钮。

    这时会显示 "PlayerHasSuperGem" State Group。你可以在 Music 播放时调节 PlayerHasQuad State Group,以检测 State 对音乐的影响。

  9. 播放 Combat-A Music Segment(音乐段落),然后变换 PlayerHasSuperGem State Group(状态组)的 State。

    [技巧]

    如果你愿意的话,在 Music Segment Editor 中,Solo(单独播放)一下 Combat-A-Arpeggio1 Music Track,这样更容易听到琶音。

    你可以听出,每次琶音声部过渡时,都会有一个很短的淡变。尽管过渡很简短,但听起来还是太长了。该淡变时间由 "PlayerHasSuperGem" State Group 的过渡时间控制。这一全局值影响着所有对 "PlayerHasSuperGem" State Group 的响应。因为在 "PlayerHasSuperGem" State Group 发生变动时并不会操控别的声音,所以我们可以放心地修改 State Group 的过渡时间。

  10. 在 Music Segment Editor(音乐段落编辑器)中选中 Combat-A-Arpeggio1 音轨的标题栏,然后在 Music Track Property Editor(音乐轨属性编辑器)中双击 PlayerHasSuperGem State Group(状态组)。

    State Group 的 Property Editor 就打开了。

    我们可以看到,过渡时间被设为了 1 秒。也就是说,在 "PlayerHasSuperGem" State Group 发生变动时,会插入一秒的淡入或淡出。这个过渡时间需要大幅减短。

  11. Default transition time(默认过渡时间)改为 0.1

  12. 通过在 Transport Control(走带控制)中变换 PlayerHasSuperGem State Group(状态组)的 State 来测试所作设置。

    现在你需要将同样的配置应用到 Combat-B Music Segment 的 Arpeggio 音轨上。State 的过渡时间是全局的,所以这次你不需要调整过渡时间。

  13. 对于 Combat-B Music Segment 的琶音音轨,重复当前练习的步骤 1 到步骤 9。


此页面对您是否有帮助?