Wwise Unreal Integration Documentation
Editor Integration

Asset synchronization

By default, the Wwise Unreal integration now automatically synchronizes the Unreal assets in the Content Browser with the Wwise project. These assets are created in the "Wwise Sound Data folder", configurable in the Integration Settings.

Note:
Note that creating an empty Virtual Folder will not be reflected in the Unreal Content Browser until it is populated with assets. Similarly, deleting a Virtual Folder in Wwise will delete all Unreal assets, but not the folders themselves.

If using WAAPI, Unreal assets are created whenever a corresponding object is created in Wwise. Likewise, renaming, deleting, re-parenting or moving a Wwise object is immediately reflected in the Unreal Content Browser. When WAAPI is disabled, this synchronization occurs when the Wwise project is saved.

When WAAPI is enabled, it is also possible to control the Wwise project from the Unreal content browser. For example, creating a new AkAudioEvent in the proper folder in the Unreal Content Browser automatically creates the corresponding object in the Wwise project. Note that Wwise-related assets can only be created in the Wwise Sound Data folder, and only in the sub-folder representing the correct object type. Moving, deleting, and renaming an Unreal asset is also immediately reflected in the Wwise project.

If you wish to opt out of automatic asset synchronization, it is possible to disable it in the Integration Settings.

Using Force Asset Synchronization

Force Asset Synchronization is found under the Build menu in the level editor window.

This feature will parse the Work Unit files found in the Wwise Project directory on the disk and add the new Wwise items as assets in Unreal. Unsaved changes in the Wwise Authoring application will not be reflected by using this feature.

How Automatic Synchronization is implemented

When opening the editor

When the editor has finished scanning all the assets for the Asset Registry, the Integration scans the Work Unit files in the Wwise project to create, rename, move or delete the corresponding Wwise assets. At the same time, a local cache of all Wwise Assets is populated, ensuring that querying the Event, AuxBus and SoundBank is timely, when generating sound data import definition files or WAAPI command arguments.

Note:
If the scanning process fails to parse a Work Unit, asset deletion will be skipped until all Work Units have been fixed.

Synchronization from Wwise to Unreal when the editor is running but WAAPI is disabled

A directory watcher is used to watch over the Wwise project. The work units are parsed when the project is saved.

Synchronization from Wwise to Unreal when the editor is running with WAAPI

Every change made in the Wwise project, (creating, deleting, renaming and moving) is reflected in real-time in the Unreal Content Browser. The WAAPI callbacks ak.wwise.core.object.nameChanged, ak.wwise.core.object.preDeleted and ak.wwise:.core.object.childAdded are used to properly reflect the changes of the Wwise project into Unreal.

Synchronization from Unreal to the Wwise Project (WAAPI only)

Synchronization from Unreal to the Wwise project is also supported when connected to WAAPI. It supports all operations, (creating, deleting, renaming and moving). The Unreal AssetRegistry callbacks OnAssetRemoved and OnAssetRenamed are used to monitor the asset changed, and WAAPI is used to modify the Wwise project.

Event Drag-and-Drop

When asset auto-synchronization is turned off, Events, Auxiliary Busses, Acoustic Texture, State, Switch, Game Parameter (RTPC) and Trigger can be dragged directly from the Wwise Picker or the WAAPI Picker into the Unreal Content Browser to create corresponding AkAudioEvent, AkAuxBus, UAkAcousticTexture, UAkStateValue, UAkSwitchValue, UAkRtpc, UAkTrigger objects:

  1. In the Unreal Editor, navigate to the Wwise object you want using the Wwise Picker.
  2. In the Unreal Editor, navigate the Unreal Content Browser to the folder in which you wish to create the asset.
  3. Drag the Wwise object into the Unreal Content Browser: a corresponding Unreal object is created.

Reverb Aux Bus Assignment and RTPCs

Aux Bus Assignment Map

In AkLateReverbComponent it is possible to automatically assign the aux bus. The Aux Bus Assignment Map is used for this purpose. For each decay value there is a corresponding aux bus asset. The decay estimate for the AkLateReverbComponent will be checked against the decay values in the map. The assigned aux bus will be the first aux bus in the map which has a decay value greater than the decay estimate for the AkLateReverbComponent. Therefore, a decay estimate that lies between decay value X and decay value Y in the map will be given the aux bus corresponding to decay value Y. If the decay estimate is above the maximum decay value in the map, it will be assigned the Default Reverb Aux Bus.

The Global Decay Absorption value effectively acts as a global scaling factor for the decay estimations. It controls the absorption constant that will be used in the Sabine equation when estimating the T60 decay. The default value is 0.5.

Global Reverb RTPCs

In AkLateReverbComponent it is possible to drive global reverb RTPCs using values calculated from the parent Primitive Component of the AkLateReverbComponent. These RTPC fields determine which RTPCs will be set using the reverb parameter estimations from AkLateReverbComponent. The RTPC asset fields take precedence over the name fields. If no asset is assigned, the string in the name field will be used when setting the RTPC. If the name field is also empty, no RTPC will be set.

Note:
In order for AkLateReverbComponent to use the global reverb RTPCs, the reverb component must have a sibling AkRoomComponent (in other words, an AkRoomComponent that shares the same Primitive parent component). The RTPC values will be set on the Room IDs.

The WAAPI Picker

The Wwise Unreal integration makes extensive use of the Wwise Authoring API in the WAAPI-enabled Wwise Picker.

Note:
If you do not wish to enable WAAPI on your machine, the old Wwise Picker will still be available. If a WAAPI connection is unavailable, the WAAPI picker will be disabled. If a WAAPI connection is available, the old Wwise Picker will be disabled.

Please refer to Wwise Authoring API (WAAPI) for instructions on how to enable WAAPI on your machine.

The WAAPI picker is populated in real-time from the running Wwise Authoring application. All changes made in Wwise are immediately reflected in the WAAPI picker, whether the Wwise project is saved or not.

The WAAPI Picker enables much more than the Wwise Picker. Here is an overview of all of its features.

Sound Preview

The WAAPI picker allows one to preview sounds directly from Wwise, without having to generate SoundBanks. To do so, select an Event or an Actor-Mixer from your project, and press the space bar. Alternatively, you can right-click on an Event or Actor-Mixer and select Play/Stop. To stop a playing sound, press space bar again, or right-click and select Stop All.

Renaming Wwise Objects

You may rename elements directly in your Wwise project. To do so, select the element you wish to rename in the WAAPI picker window, and press F2. Alternatively, you may right-click on the element and select Rename. You may then rename the object and press Enter to commit the changes. The name change will then immediately be reflected in the Wwise Authoring application.

Deleting Wwise Objects

You may delete elements directly in your Wwise project. To do so, select the element you wish to rename in the WAAPI picker window, and press Delete on your keyboard. Alternatively, you may right-click on the element, and select "Delete". The deletion will then immediately be reflected in the Wwise Authoring application.

Finding the associated WorkUnit on disk

You may locate the associated WorkUnit to an object in a file explorer using the WAAPI picker by right-clicking the element, and selecting "Show in Folder".

Finding the associated object in Wwise

You may focus a Wwise object directly in Wwise. To do so, select the element you wish to focus in Wwise, and press Ctrl+Shift+1on your keyboard. Alternatively, you may right-click on the element, and select "Find in the Project Explorer". The element will then be focused in the currently running Wwise Authoring application.

Radius Visualization

With WAAPI enabled and the Wwise Authoring Application running, the radius of the relevant assets are drawn when an AkAmbientSound is selected. If changes are made in Wwise Authoring, the radius is updated in real time:

  1. Select an AkAmbientSound in the Actor Browser.
  2. In the Wwise Authoring Application, make changes to any object associated with the Event assigned to the AkAmbientSound.
  3. The corresponding sphere in the Unreal Editor resizes at the same time.

If the Wwise Authoring Application is not running on your machine, it is still possible to see the attenuation sphere in Unreal. In your Wwise project settings, under the SoundBanks tab, make sure to select Generate Per Bank Metadata File, Generate JSON Metadata, and Max Attenuation. The next time the SoundBanks are generated in the Unreal Editor, the Max Attenuation information will be added to all UAkAudioEvents, and the attenuation spheres will be visible in your level viewport.

Editor Listener

Starting with Wwise 2017.2.0, one listener is now activated when in edit mode. This allows, for instance, to properly preview Level Sequences containing positioned audio. This listener's position is determined by the camera position of the focused viewport. Clicking between multiple viewports will make the editor listener "jump" from one position to another.

This listener is also used in the Animation Editor viewport. This allows all 3D-spatialized sounds to properly be previewed while working on animations.

Note that when starting a Play in Editor (PIE) session, this listener is deactivated, and the traditional listener on the Camera is enabled. When ejecting from a PIE session to start a Simulatie in Editor (SIE) session, both the Editor listener and the Camera listener are active at the same time. Switching back to PIE mode will disable the Editor listener again.