Version
menu_open
Wwise Unreal Integration Documentation
Wwise Unreal Assets

Wwise Unreal Assets

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 Unreal Objects
Wwise Object TypeUnreal Asset ClassDescription
Acoustic TextureUAkAcousticTextureWrapper for ShortId, which identifies it to the SoundEngine.
RTPCUAkRtpc
TriggerUAkTrigger
Auxiliary BusUAkAuxBusContains the ShortId and also ensures that the required media and SoundBank resources are loaded into memory and packaged in the built game.
EventUAkAudioEvent
Effect ShareSetUAkEffectShareSetWrapper 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 BankUAkInitBankEnsures that the Init Bank file is packaged in the game and loaded before other SoundBanks.
State ValueUAkStateValueWrapper 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 ValueUAkSwitchValue

WwiseObjectInfo Structures

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.

FWwiseObjectInfo

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:

  • WwiseGuid: The GUID that identifies this asset in the Wwise project.
  • WwiseShortId: 32-bit integer that represents the asset in the Wwise SoundEngine.
  • WwiseName: String name of the asset in the Wwise project. It does not have to match the name of the Unreal asset that contains it. However, in the rare case in which all identifying fields in the WwiseObjectInfo are blank when the asset is serialized, the WwiseName field is updated to match the Unreal asset name.
  • HardCodedSoundBankShortId: 32-bit integer that identifies which SoundBank the asset must load as a dependency. For example, if an Event is included in multiple SoundBanks, you can specify which SoundBank to package and load with that asset. If the field is not set, all SoundBanks that contain the Wwise object are loaded with it.
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.

FWwiseEventInfo

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:

  • SwitchContainerLoading: "AlwaysLoad" to load all switched media with the event that uses it, or "LoadOnReference" to only load media when the switch or group values are also in memory. For more information, refer to Optimizing Memory Usage with Reference-Loaded Switch Containers.
  • DestroyOptions: "StopEventOnDestroy" to stop Event playback when it is destroyed or "WaitForEventEnd" to wait for the event to stop playing.

FWwiseGroupValueInfo

Subclass of FWwiseObjectInfo for Switch and State Value assets. The FWwiseGroupValueInfo also contains the State or Switch Group's ShortId.

Additional Properties:

  • GroupShortId: 32-bit integer that identifies the Group that includes the asset.

Wwise Asset Cooked and Loaded Data

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, and UAkAcousticTexture assets do not need to load additional resources. They do not interact with the WwiseResourceLoader, and their CookedData structure only contains their ShortId.

Wwise Unreal Asset Types

UAkAudioType

Base class for all Wwise Unreal Assets.

Properties:

  • AutoLoad: Determines whether to load Wwise data (banks and media) automatically with the Unreal Asset.
  • UserData: Array of user data. Can store anything useful for a custom feature that uses the Wwise integration. For example, UserData can store subtitle data for voiceover events.

Blueprint functions:

  • LoadData: Loads the resources (.bnk and .wem files) required by the asset. Use this when AutoLoad is disabled to load Wwise resources manually. It is safe to call multiple times, but might cause resources to be reloaded unnecessarily.
  • UnloadData: Unloads the resources (.bnk and .wem files) required by the asset. If the resources are required by other loaded assets, they are not unloaded until all of those assets are unloaded as well.

UAkAudioEvent

Subclass version of UAkAudioType for Events.

Properties:

  • MaxAttenuationRadius: Maximum attenuation radius.
  • IsInfinite: Indicates whether the sound played by the Event loops endlessly.
  • MinimumDuration: Estimate of the minimum duration of the sound played by the Event.
  • MaximumDuration: Estimate of the maximum duration of the sound played by the Event.
  • EventInfo: FWwiseEventInfo that fills the EventCookedData property when in the editor.
  • EventCookedData: Transient FWwiseLocalizedEventCookedData that contains the mapping from languages to language-specific FWwiseEventCookedData.
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:

  • Play Event: Posts the Event.
  • Stop Event: Stops all currently playing Events.

UAkInitBank

Subclass of UAkAudioType for the Init Bank.

  • InitBankCookedData: Transient FWwiseInitBankCookedData.
Note:
The Autoload property of UAkAudioType does not affect this asset type.

UAkAuxBus

Subclass of UAkAudioType Auxiliary Busses.

  • AuxBusInfo: FWwiseObjectInfo that fills in the AuxBusCookedData property when in editor.
  • AuxBusCookedData: Transient FWwiseLocalizedAuxBusCookedData that contains the mapping from languages to language-specific FWwiseAuxBusCookedData.

UAkEffectShareSet

Subclass of UAkAudioType for Effect ShareSets.

  • ShareSetInfo: FWwiseObjectInfo that fills in the AuxBusCookedData property when in editor.
  • ShareSetCookedData: Transient FWwiseLocalizedShareSetCookedData that contains the mapping from languages to language-specific FWwiseShareSetCookedData.

UAkGroupValue

Subclass of UAkAudioType and base class for UAkStateValue and UAkSwitchValue.

  • GroupValueInfo: FWwiseGroupValueInfo that fills in the GroupValueCookedData property when in the editor.
  • GroupValueCookedData: Transient FWwiseGroupValueCookedData.

UAkStateValue

Subclass of UAkGroupValue for State values.

UAkSwitchValue

Subclass of UAkGroupValue for Switch values.

UAkRtpc

Subclass of UAkAudioType for RTPC / Game Parameters.

  • RtpcInfo: FWwiseObjectInfo that fills in the GameParameterCookedData property when in the editor.
  • GameParameterCookedData: Transient FWwiseGameParameterCookedData.
Note:
The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type.

UAkTrigger

Subclass of UAkAudioType for Music Triggers.

  • TriggerInfo: FWwiseObjectInfo that fills in the TriggerCookedData property when in the editor.
  • TriggerCookedData: Transient FWwiseTriggerCookedData.
Note:
The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type.

UAkAcousticTexture

Subclass of UAkAudioType for Acoustic Textures. For information about how to use this with Spatial Audio features, refer to AkAcousticTexture.

  • TriggerInfo: FWwiseObjectInfo that fills in the AcousticTextureCookedData property when in the editor.
  • AcousticTextureCookedData: Transient FWwiseAcousticTextureCookedData.
Note:
The Autoload property and the LoadData and UnloadData Blueprints of the UAkAudioType do not affect this asset type.

Deprecated Asset and Data Types

The following classes and structs are deprecated, and are only used for migration from older projects:

  • UAkAssetData
  • UAkAssetPlatformData
  • UAkAudioBank
  • UAkExternalMediaAsset
  • UAkFolder
  • UAkLocalizedMediaAsset
  • UAkMediaAsset
  • UAkMediaAssetData

Viewing Asset Links in Unreal

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.


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise