Version
Wwise Unreal Integration Documentation
|
The Unreal Integration requires users to create assets to represent corresponding objects in the Wwise project. You can create these assets through Using the Drag-and-Drop Feature drag-and-drop from the Wwise Browser, or from the right-click menu in the Content Browser. Assets created through drag-and-drop automatically contain the information (GUID, ShortID, Name) required to link them to the Wwise objects they represent. When you create assets through the Content Browser, you must add this information manually. In both cases, you can edit assets afterwards to point to new or different Wwise objects. For more information about the Blueprint functions that use these asset types, refer to Blueprint Functions.
Note: When you directly reference Wwise assets in your maps and Blueprints, all of the Wwise resources (.bnk and .wem files) the assets require are automatically packaged in the game. However, if you choose to load these assets through code only, you must ensure that they are packaged correctly. |
The following table lists the Wwise objects types that have corresponding Unreal asset classes.
Wwise Object Type | Unreal Asset Class | Description |
---|---|---|
Acoustic Texture | UAkAcousticTexture | Wrapper for ShortId, which identifies it to the SoundEngine. |
RTPC | UAkRtpc | |
Trigger | UAkTrigger | |
Audio Device ShareSet | UAkAudioDeviceShareSet | |
Auxiliary Bus | UAkAuxBus | Contains the ShortId and also ensures that the required media and SoundBank resources are loaded into memory and packaged in the built game. |
Event | UAkAudioEvent | |
Effect ShareSet | UAkEffectShareSet | Wrapper for ShortId, also required to dynamically set Effect ShareSets from within the game. Ensures that its required media and SoundBank resources are loaded into memory and packaged in the built game. |
Init Bank | UAkInitBank | Ensures that the Init Bank file is packaged in the game and loaded before other SoundBanks. |
State Value | UAkStateValue | Wrapper for ShortId as well as the ShortId of the parent group. Required for the advanced setting SwitchContainerLoading::LoadOnReference of the FWwiseEventInfo structure in UAkAudioEvent assets to function properly. When enabled, loading and unloading these group value assets triggers dynamic loading of switched media resources. For more information, refer to Optimizing Memory Usage with Reference-Loaded Switch Containers. |
Switch Value | UAkSwitchValue |
Wwise Unreal assets contain a FWwiseObjectInfo information structure that points to a unique object in the Wwise project. Some asset classes use a subclass with additional fields that affect behaviors such as how data is prepared for loading. This structure is serialized in the asset when it is saved, but discarded when it is cooked for a packaged build. During cooking, the structure is passed to the WwiseResourceCooker to fetch the cooked data, which is serialized in the packaged asset. Refer to Wwise Asset Cooked and Loaded Data for more information about the CookedData structure.
The base information struct. When assets in the editor are loaded and cooked, this struct is used to query the WwiseDatabase to obtain the CookedData structure that is used to load all the asset's required resources (.bnk and .wem files) into memory.
Properties:
Note: The HardCodedSoundBankShortId property only affects UAkAudioEvent, UAkAuxBus, and UAkEffectShareSet assets, because they are the only assets that require SoundBanks resources. |
Searches in the Wwise Database prioritize fields in the following order: WwiseGuid, WwiseShortId, and finally WwiseName. For example, if the WwiseGuid is invalid, the WwiseShortId is used to search for the object.
If any of the three properties that identify the Wwise object in the WwiseObjectInfo (WwiseShortId, WwiseGuid, or WwiseName) are modified in the Unreal Asset inspector, the Wwise Project Database is searched for an object that matches the new property's value and the other two fields are updated accordingly.
Subclasses of FWwiseObjectInfo include additional information used to load data correctly. Any changes to the properties of the WwiseObjectInfo (or any of the fields of a subclass) in the inspector also cause the asset's Wwise resources to be reloaded.
Subclass of FWwiseObjectInfo for UAkAudioEvent assets. The FWwiseEventInfo contains additional options for users to customize the Event asset's behavior when it is loaded and destroyed.
Additional Properties:
Subclass of FWwiseObjectInfo for Switch and State Value assets. The FWwiseGroupValueInfo also contains the State or Switch Group's ShortId.
Additional Properties:
Wwise Assets contain a CookedData structure that is used to load their required resources (.bnk and .wem files), and to monitor their dependencies on other Wwise Objects (for example, which switches are used by Events that play Switch Containers). The WwiseResourceCooker module provides functions that accept FWwiseObjectInfo structures and return the CookedData structure for that Wwise object. It also provides functions that take FWwiseObjectInfo structures and stage the required resources for packaging.
When working in editor, the CookedData structure is transient and is not serialized to the asset. This prevents changes to the data or to relationships between Wwise objects from unnecessarily dirtying their corresponding Unreal assets. During packaging, the CookedData is serialized in the packaged asset and the Wwise info structure is discarded.
The WwiseResourceLoader module loads an asset's required resources into memory. It provides functions that accept a CookedData structure and manages the loading of the actual resources by calling methods in the WwiseFileHandler module. It then returns a reference to the "Loaded" structure.
Note: UAkRtpc, UAkTrigger, UAkAcousticTexture, and UAkAudioDeviceShareSet assets do not need to load additional resources. They do not interact with the WwiseResourceLoader, and their CookedData structure only contains their ShortId. |
Base class for all Wwise Unreal Assets.
Properties:
Blueprint functions:
Subclass version of UAkAudioType for Events.
Properties:
Note: The EventCookedData, MaxAttenuationRadius, IsInfinite, MinimumDuration, and MaximumDuration properties are filled in when the AkAudioEvent asset is loaded in the editor, and serialized to the asset when cooking it. The integration uses MaxAttenuationRadius to display additional information in the component visualizer, while the other three are used when displaying events in timeline tracks. |
Unreal Content Browser Context Menu Options:
Subclass of UAkAudioType for the Init Bank.
Note: The Autoload property of UAkAudioType does not affect this asset type. |
Subclass of UAkAudioType Auxiliary Busses.
Subclass of UAkAudioType for Effect ShareSets.
Subclass of UAkAudioType and base class for UAkStateValue and UAkSwitchValue.
Subclass of UAkGroupValue for State values.
Subclass of UAkGroupValue for Switch values.
Subclass of UAkAudioType for RTPC / Game Parameters.
Note: The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type. |
Subclass of UAkAudioType for Music Triggers.
Note: The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type. |
Subclass of UAkAudioType for Acoustic Textures. For information about how to use this with Spatial Audio features, refer to AkAcousticTexture.
Note: The Autoload property and the LoadData and UnloadData Blueprints of the UAkAudioType do not affect this asset type. |
Subclass of UAkAudioType for Audio Device.
Note: The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type. |
The following classes and structs are deprecated, and are only used for migration from older projects:
The relationships between Events and media are maintained through Unreal references. You can therefore use the Unreal Reference Viewer to view links between assets, as shown in the following image.
For more information about the Unreal Reference Viewer, refer to Reference Viewer.
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise