Table of Contents
While memory will be allocated whenever you load the contents of a SoundBank, you also need to allocate memory for initialization and management of assets, reserved as memory pools. Each type of memory pool has its own purpose and is assigned in an AkWwiseInitializationSettings Asset file. This file is usually referenced in an AkInitializer component on a WwiseGlobal game object (unless manually added to another game object, like in the Wwise Adventure Game), which is automatically added to a new scene, by default. The AkInitalizer component, along with the AkTerminator located on the same game object, is vital to starting the Wwise Sound Engine, but no more than one of each can exist.
The AkTerminator will take care of terminating the Sound Engine when you exit the game.
In the following steps, you will ensure the AkInitializer is being created in every Scene and examine some of the key properties in the referenced AkWwiseInitializationSettings Asset file.
In the Unity menu, go to Edit and select Wwise Settings…
Under Asset Management, make sure that 'Create WwiseGlobal GameObject' is selected and click OK.
In the Hierarchy, select the WwiseGlobal game object and double-click the AkWwiseInitializerSettings Asset file.
You will now see the AkWwiseInitializerSettings Asset file in the Inspector.
Expand the Common User Settings toggle group.
Within the Common User Settings and Common Advanced Settings toggle groups, you will find each memory pool property, along with various other related properties.
The memory pool property values can vary considerably by type and scale of the game you are making, but typically you will only have to adjust the following memory pools.
Default Memory Pool contains all the properties and structures of objects in a executed scene, like registered game objects, game sync values, positions, and so on.
Lower Engine Memory Pool is used to play the sounds you have posted. It's the main processing pipeline, where every sound is being decompressed, Effect processed, and so on.
Imagine that you are making a game about being a detective. The game might feature a vast amount of dialogues (resulting in large SoundBanks), but you have a very small number of concurrent voices (rarely more than 4-5 sounds). With such a game, the Default Memory Pool might be larger due to the larger structure of assets, but the Lower Engine Memory Pool might be smaller as there is less to process at the same time.
In the Wwise Adventure Game, the Lower Engine Memory Pool is much larger than the Default Memory Pool. For example, when visiting the Woodlands and facing three Evil Spit Plants in combat, you would have a Number of Voices (Total) of approximately 40.
The memory pool sizes may change during the production process and are typically only finalized towards the end of the production. However, the default values provided in the Wwise Unity Integration are sufficient to get you started.
To learn more about Memory Pools and optimizations, check out the Wwise 251 (Advanced Optimization and Development for Mobile Devices) Certification Course - Lesson 7 (Runtime Management).