第 6 课

目录

嵌套环境

在 Woodlands(林地)的黑森林里,你路过一个小木屋。出于好奇,你进去瞧了瞧,然后发现 Woodlands 的各种声音被厚厚的木墙大大减弱了。

在游戏中定义并构建环境区域触发器之后,您可以通过 Wwise 控制几乎所有的细节,比如利用环境混响来调节哪些声音或者为各个区域应用怎样的效果器。不过,有时可能会遇到两个区域嵌套在一起的情况,比如大的 Woodlands 区域内还有个小的 Woodlands Cabin(林地小屋)。在这种情况下,通常会将 Wwise 对象同时发送到多个辅助总线。然而,这会导致声学环境与游戏内容不一致。为此,我们需要控制各个区域的相对重要性,以便限制辅助总线发送。接下来,我们将为 Woodlands Cabin 创建一个单独的 Aux Environment(辅助环境),确保屋内的所有声音只使用 Woodlands Cabin 辅助总线。

  1. 在 Unity 菜单栏中,依次转到 Audiokinetic > Certification > 301 > Lesson 6,然后选择 Environments inside Environments

  2. 在 Hierarchy 中,右键单击 Aux Environments,然后转到 3D Object 并选择 Cube

    为了便于识别,我们来重命名 Cube 游戏对象。

  3. 右键单击 Cube 游戏对象,然后选择 Rename 并将其命名为 Woodlands Cabin

  4. 在 Inspector 的 Box Collider 中,选中 Is Trigger 复选框。

    此时,便可通过 Inspector 最上面的 Transform 组件来放置 Unity 中的各个游戏对象。假如要将某一游戏对象的位置设在另一游戏对象上,您可以直接将后者 Transform 组件的值复制并粘贴到前者 Transform 组件中。

    [备注]

    只要类型或脚本相同,就可将某一组件的值复制并粘贴到另一组件中。

    接下来,我们将 Woodlands Cabin 游戏对象放在 Cabin in the Woods 上,然后再调节大小。

  5. 在 Hierarchy 中,搜索并选中 Cabin in the Woods

  6. 在 Inspector 的 Transform 组件中,单击齿轮图标,并选择 Copy Component

  7. 在 Hierarchy 中,确保删除搜索字段中输入的内容,然后选中 Woodlands Cabin 游戏对象。

  8. 在 Inspector 的 Transform 组件中,单击齿轮图标,然后选择 Paste Component Values

    此时,我们会在 Woodlands Cabin 内部看到 Cube 形状;假如没有看到,请选中 Woodlands Cabin,然后将鼠标移到 Scene 视图中并按下 F。接下来,调节 Woodlands Cabin 以使其与 Cabin in the Woods 相称。

  9. 使用 Move Tool、Rotate ToolScale Tool 来调节 Woodlands Cabin 游戏对象,使其覆盖 Cabin in the Woods Mesh。

  10. 在 Inspector 中,禁用 Mesh Renderer 来将其设为不可见。

    接下来,我们要添加 AkAmbient 组件以及其余的 Rigidbody。

  11. 单击 Add Component,然后搜索并选中 AkEnvironment

  12. 在 AkEnvironment 组件中,单击 Add Rigidbody

    最后,我们要指派 AuxBus Name。在本次演示中,我们来使用具有类似房间设计的 PineForest_Hut Auxiliary Bus(辅助总线)。

  13. 在 AuxBus Name 中,依次转到 Auxiliary Busses > Default Work Unit > Master Audio Bus > World > AUX > Region_PineForest,然后选择 PineForest_Hut 并单击 OK

    接下来,我们利用 Profiler 测试一下整合效果。

  14. 在 Wwise 菜单栏中,转到 Layouts(布局),然后选择 Profiler(性能分析器)。

    因为要将 Player 移到 Trigger 之内,所以我们来筛选一下搜索结果,以便只察看 Player 声音。在开始执行性能分析前,我们来设置筛选器,以便只监控 Player 声音。

  15. 在 Advanced Profiler(高级性能分析器)中,单击 Filter(筛选器)旁的“浏览”按钮 [...],然后依次转到 Actor-Mixer Hierarchy > Default Work Unit > World > Player(Actor-Mixer 层级结构 > 默认工作单元 > World > Player)。

  16. Remote Connections(远程连接)视图中,选中 Wwise Adventure Game (Editor) 并单击 Connect(连接),然后在 Unity 中按下 Play 按钮进入场景,接着跑到 Woodlands Cabin击打木箱

    在 Advanced Profiler 中,我们会看到 Player_WeaponImpact Event(时间)被同时发送到了 Woodlands 和 PineForest_Hut 辅助总线。

    为了模拟 Woodlands Cabin 的小房间,应当只发送到 PineForest_Hut 辅助总线。为此,我们可以使用 AkEnvironment 组件中的 Exclude Others 功能,来避免将此 AkEnvironment 中的声音发送到其他 AkEnvironment Trigger。

  17. 在 Unity 中,按下 ESC 打开《WAG》游戏菜单,然后再次单击 Play 按钮退出 Play 模式。

  18. 在 Inspector 的 AkEnvironment 中,选中 Exclude Others 复选框。

  19. 进入 Play 模式,然后在 Wwise 中单击 Reconnect…(重新连接...)。

  20. 进入 Woodlands Cabin,并再次击打木箱

    在 Advanced Profiler 中,我们注意到,现在只将 Player_WeaponImpact Event 发送到了 Woodlands Cabin 辅助总线。