バージョン
- 必要条件
Wwise Unreal Integration Documentation
|
One level above the WwiseFileHandler Module, the WwiseResourceLoader module handles Wwise project assets and their dependencies. Similar to the WwiseFileHandler, the two primary operations performed by the WwiseResourceLoader are loading and unloading various resources. However, the WwiseResourceLoader preforms these operations for all asset types.
For example, an Aux Bus can be associated with one SoundBank. It might also be dependent on another Aux Bus that's associated with a different SoundBank. Furthermore, it can be associated with media files as required by various Effect plug-ins. All of these SoundBanks and media files must be loaded before you can use the Aux Bus. When the WwiseResourceLoader receives a request to load the Aux Bus, the WwiseFileHandler will load all of these resources.
The most complex Wwise object to load is the foundation of Wwise actions: Events. A Wwise Event can contain all sorts of other types of Wwise objects. It can require external sources to be prepared and multiple mandatory SoundBanks and media files to be loaded. It might also have all these dependencies nested inside a Switch Container hierarchy. Moreover, AkAudioEvent assets have the LoadOnReference option, which only loads Switch Container resources when the combination of associated Switches and States is currently loaded in the map. This optimization is disabled by default but can save memory when used with large Switch Container hierarchies.
For example, a Play Footsteps Event using a Switch Container dependent on a ground material Switch, only loads sounds for the Switches in the currently loaded map. In addition, multiple layers of Switch Containers can exist, such as a high-quality version available only through a DLC, or dynamically selected conditions, such as the kind of footwear, the weight of the character, or their speed. Depending on these conditions, it’s possible to have a very complex hierarchy of Switch Containers, all of which can be loaded or not at any given time.
In the Integration, Switch Container Leaves help to organize these conditions, where each leaf represents a set of potential conditions (Switches and States) and the associated SoundBanks, media, and external sources that must be loaded when the conditions are met.
Although Group Values, such as Switches and States, can be included in a project as assets and packaged in deployed games, it is still possible to set them programmatically by directly calling methods exposed in the Sound Engine. In this case, when using the LoadOnReference option, it's important to send that information to the WwiseResourceLoader before setting a Group Value, so it can prepare to load the potential files. For example, code that sets the entire application to High Quality would need to inform the WwiseResourceLoader to consider that Group Value as set. It is possible to provide this data programmatically for Switches, States, and Game Parameters structures even when cooked.
If the application language changes, the WwiseResourceLoader reloads localized assets. This lengthy process unloads all localized SoundBanks and media and then loads the equivalent resources for the new language. During this operation, the affected assets are temporarily unavailable and could cause errors if posted.