第 9 课

目录

Wwise Initialization Settings

虽然每次加载 SoundBank(音频包)中的内容时都会分配相应的内存,不过我们还是需要为系统初始化和素材管理来分配专用内存,并将其预留做为内存池。每种类型的内存池都有自己的用途,并可在 AkWwiseInitializationSettings Asset 文件中进行指派。此文件通常会在绑定到 WwiseGlobal 游戏对象的 AkInitializer 组件中引用(除非像在《Wwise Adventure Game》中一样手动添加到了另一游戏对象),并且默认情况下会自动添加到新的场景中。AkInitalizer 和 AkTerminator 组件对启动声音引擎至关重要,它们须绑定在同一游戏对象上,并且只能各有一个。

[备注]

AkTerminator 负责在退出游戏时终止声音引擎。

接下来,我们将确保在每个场景中创建 AkInitializer,并在所引用的 AkWwiseInitializationSettings Asset 文件中察看其中一些场景的关键属性。

  1. 在 Unity 菜单栏中,转到 Edit 并选择 Wwise Settings...

  2. 在 Asset Management 下,确保选中 Create WwiseGlobal GameObject 复选框,然后单击 OK

  3. 在 Hierarchy 中,选中 WwiseGlobal 游戏对象,然后双击 AkWwiseInitializerSettings Asset 文件。

    现在,我们会在 Inspector 中看到 AkWwiseInitializerSettings Asset 文件。

  4. 展开 Common User Settings 切换组。

    在 Common User Settings 和 Common Advanced Settings 切换组内,我们会看到所有内存池属性以及各种其他相关属性。

内存池属性值可能会因所制作游戏的类型和规模而存在很大差异,不过一般情况下只需要调节以下两个内存池。

  • Default Memory Pool(默认内存池):包含所运行场景中游戏对象的所有属性和结构,如注册的游戏对象、游戏同步器值、位置等。

  • Lower Engine Memory Pool(底层引擎内存池):用于播放所触发的声音。它是主要的处理管线,负责解压所有的声音、处理 Effect(效果器)及其他各种相关操作。

试想一下您正在开发一款侦探扮演游戏。该游戏可能会包含大量的对白,进而生成很大的 SoundBank。但是,同时播放的声部数却非常少(基本上最多也就 4-5 个)。对于像这样的一款游戏,Default Memory Pool 可能会比较大,因为素材结构本身就很大。但是,Lower Engine Memory Pool 可能会小一些,因为同时要处理的声音很少。

在《Wwise Adventure Game》中,Lower Engine Memory Pool 要比 Default Memory Pool 大很多。比如,在进入 Woodlands(林地)并与三个 Evil Spit Plant(喷弹怪)展开战斗时,Number of Voices (Total)(声部数(总计))会达到大约 40。

内存池大小在制作过程中可能会有所调整,一般在快要完工时才会最终敲定。不过,Wwise Unity Integration 中提供的默认值对入门来说已经足够了。

[备注]

如需进一步了解内存池及相关优化方法,请参阅“Wwise 251 认证课程(针对移动设备的进阶优化和开发技巧)– 第7 课(运行时管理)”。