Table of Contents

Grouping Objects in the Actor-Mixer Hierarchy

The Actor-Mixer is the ultimate memory and CPU saver because some of the Actor-Mixer's properties, such as positioning and RTPCs, are shared by all of its child objects. When considering how to organize different sound objects, think about grouping within Actor-Mixers to:

  • Share property settings so they are processed only once.

  • Limit overrides to avoid processing the overrides for each object.

To optimize memory usage, consider grouping objects into Actor-Mixers to share the following properties:

  • Positioning

  • RTPCs

  • States

  • Randomizers

Let's say you have an Actor-Mixer containing 10 sounds and you want to set the sound positioning to 3D. You could set the sounds individually to 3D by using the override parent option for each sound. However, doing it this way uses 10 times more memory at run time than if you had set the Actor-Mixer positioning properties to 3D. Now if you wanted some of the sounds to be 2D, you would still be optimizing memory if you set the Actor-Mixer's positioning to 3D game-defined. In this case you would override the Actor-Mixer and apply 2D to the specific sounds because 2D sounds do not require additional memory.

Illustrating the memory saving benefits of hierarchy property inheritance

While the Actor-Mixer is usually your best choice, in certain situations, you can decide to apply properties in containers to optimize memory consumption. If you are only applying positioning to specific objects within a container, for example, footstep sounds in a random container, you could save memory by applying the positioning properties to the container and not to the parent Actor-Mixer. If, however, you want all the objects in the structure to share the positioning properties, you would apply these at the Actor-Mixer level.