第 3 课

目录

保存解码后的 SoundBank

通过将媒体编码为像 Vorbis 这样的压缩格式,我们可以将交付的游戏包压缩得很小,然后在加载游戏时再解压 SoundBank。不过,要想把整个 SoundBank 进行解码,可能会占用很大一部分资源,尤其是在每次游戏初始化时都要解码的情况下。假如制作方并没有要求必须将游戏安装后的存储用量限制得很低,我们可以考虑使用 AkBank 组件中的 Save decoded bank 选项。该选项会将解码后的 SoundBank 保存到所生成 SoundBank 旁的 DecodedBanks 文件夹中。在将 AkBank 设为 Save decoded bank 时,会首先查看 DecodedBanks 文件夹中的 SoundBank。假如进行了修改,该组件会加载最新的 SoundBank。如此一来,便不必在加载时对 SoundBank 进行解码。这样可以彻底避免占用资源来对 Vorbis 编码媒体文件进行解码。

[备注]

假如选择保存解码后的 SoundBank,必须根据 SoundBank Manager 中的 Decoded Size 估值来设置存储空间。另外,在将 AkBank 设为 Save decoded bank 之前,要注意考虑用户可能拥有的存储资源。比如,台式机和笔记本的硬盘空间通常会比移动设备大一些。

接下来,我们要保存解码后的 Dungeon SoundBank。

  1. 在 Unity 菜单栏中,依次转到 Audiokinetic > Certification > 301 > Lesson 3,然后选择 Saving a Decoded SoundBank

    在启用 Save decoded bank 选项前,我们来看下用来存储 SoundBank 的文件夹。为了便捷地找到生成的 Soundbank,可在 Wwise 设计工具内选中 SoundBank,并打开所在的文件夹。这样还可确保要浏览的 SoundBank 全部都是由同一 Wwise 工程生成的。

  2. 在 Wwise 菜单栏中,转到 Layouts(布局),然后选择 SoundBank(音频包)。

  3. 在 SoundBank Manager(音频包管理器)中,展开 Region,然后右键单击 Dungeon SoundBank,并选择 Open Containing Folder (Dungeon.bnk)(打开包含该内容的文件夹 (Dungeon.bnk))。

    此时将打开 GeneratedSoundBanks 文件夹,并选中 Dungeon.bnk 文件。这里存储了生成的所有 SoundBank 以及用于流播放的各个文件(存档为 WEM 文件格式)。

    我们注意到,窗口中有很多 BNK 和 TXT 文件,另外还有一个 English (US) 文件夹。但是,目前并不能看出解码后的 SoundBank 保存在哪儿。接下来,我们保存解码后的 Dungeon SoundBank,然后再看下文件夹。

  4. 在 Dungeon Audio Environment 场景中,选中 Wwise 游戏对象。

  5. 在 Inspector 的 AkBank 组件中,选中 Save decoded bank

  6. 单击 Play

    我们只要初始化场景就可以了,因为在初始化时就会保存 SoundBank。

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

    在 GeneratedSoundBanks 文件夹中,我们会看到 DecodedBanks 文件夹。

  8. 打开 DecodedBanks 文件夹。

    在此,我们会看到解码后的 Dungeon.bnk SoundBank。我们注意到,因为解压了所有 Vorbis 编码媒体,所以它要比父级文件夹下 Wwise 生成的 SoundBank 文件大不少。

    在此之后,每次加载 Dungeon SoundBank 时,Wwise 都会检测到 DecodedBanks 文件夹中有个解码后的 Dungeon.bnk SoundBank,并加载该 SoundBank。如此一来,便不必占用资源来对 Vorbis 编码媒体进行解码。现在我们可以看到,Memory 选项卡中显示的 Dungeon SoundBank 跟其他 SoundBank 一样分配了专门的内存资源,而不必再使用 PreparePool 内存池。