Wwise Unreal Integration Documentation
A sample game containing the Wwise UE4 Integration is available to download in the Wwise Launcher. In order to build the demo game, you'll need to install the Wwise SDK and modify the Wwise integration in the sample game. Please refer to the Wwise Launcher for further details.
The game's map provides several demonstration stations.
Generate Sound Data for this project from the WwiseDemoGame Unreal Editor.
- Open the WwiseDemoGame in the Unreal Editor.
- From the toolbar, click the arrow next to Build and select Generate Sound Data... from the Audiokinetic category.
- Select all the desired platforms and languages and click OK.
On completion, multiple assets within .../WwiseDemoGame/Content/WwiseAudio should be marked as dirty. Select File > Save All.
An Animation Notify can be used to post AkEvents to the SoundEngine. A demonstration of its use can be seen in the FPP_Fire animation.
This area of the map demonstrates the use of the AkAmbientSound actor. The
AmbientNoise_Spatialized ambient emitter in the level is started by a Start All Ambient Sounds node in the Level Blueprint. To help locate the actor, its attenuation sphere is drawn in yellow when playing the game.
The Event used by this emitter is part of the
AmbientBank SoundBank, which is automatically loaded thanks to the Auto Load flag set on its AkAudioBank asset.
This area also helps to demonstrate the occlusion feature. By navigating the player pawn behind the wall situated close to the ambient sound (making sure to stay within the yellow zone), or behind the big box in the sphere, the effects of occlusion on the sound can be heard. Occlusion is enabled on the sound by setting it in the in the "Ambient Sound handling" (red) section of the Blueprint level.
This section of the map demonstrates the use of Event and RTPC tracks in the WwiseDemoSequence asset. Opening the level sequence in the Sequencer editor shows that the Event track plays a drum beat targeting the moving cube, while the
DrumKitModulation game parameter is driven by the RTPC track.
Near the Sequencer there's a invisible trigger box that will teleport you to the Spatial Audio Tutorial Map. This allows testing map transitions.
This section of the map demonstrates the use of the Set RTPCValue node targeting an actor, in the Level Blueprint (in the green comment sections). The mouse scroll wheel (the up and down D-pad buttons on a gamepad, and a two-finger swipe on a touch screen) is tied to a variable that is fed as the "Velocity" Game Parameter, which controls the pitch of the
VelocityLoop sound in the Wwise project.
The "Create RTPC button Event dispatchers" section of the level Blueprint also shows how to manually load and unload the VelocityBank (whose Auto-Load is unselected), using the Load Bank and Unload Bank Blueprint nodes. It also demonstrates how to post an Event that targets an actor, using the Post Event node.
This section of the map demonstrates the use of
AkReverbVolume. Inside the spherical cave, an
AkReverbVolume is used to add a Reverb Effect to the weapon sound. Note that the actor emitting the sound can be set to ignore the reverb volumes feature. This can be done by unselecting "Use Reverb Volume" on the
WeaponAkComponent in the
This section of the map demonstrates how to set a Switch using blueprints (in the "Switch Logic" section of the Blueprint level). Using the button (see instructions on the wall in front of the button) posts the Event to the SoundEngine. Pressing L or H on the keyboard (D-Pad left and right on a gamepad, three and four finger taps on a touch screen) changes the switch value.
This section of the map demonstrates the use of event callbacks from Blueprint, and the use of user data in Wwise assets.
The Event starts playing a sound file containing WAV markers. Registering the marker callback associated with the Event allows the updating of the subtitle on the wall in front of the button. To achieve this, in the Level Blueprint the
Callback mask input pin was set to
Marker. Then, the
PostEventCallback input pin was linked to a custom Blueprint Event, named
The actual subtitles are stored in a DataTable asset, found in
SubtitleTable was then set at user data in the SubtitleEvent properties.
HandleSubtitles event, we retrieve the user data asset using Get Ak Audio Type User Data. We then access the proper subtitle using the
Identifier field as an index in the table, and then apply that text to the TextRenderActor on the wall.
For more information on using callbacks in Blueprint, see Using Callbacks in Blueprint.
This section of the map demonstrates the use of External Sources from Blueprint.
The level Blueprint contains the
CurrentExternalSourceArray variable. It contains pre-filled
AkExternalSourceInfo structures. Posting the event will sequentially play the three files contained in the
For more information on using External Sources, see Using External Sources.
This section of the map demonstrates the use of Localized Voices from Blueprint.
The event plays a localized voice, as configured in the Wwise project. Use the left button to play the English line, and use the right button to play the French line.
For more information on using Localization, see Localization of Audio Assets.
This section of the map demonstrates how splitting switch container media interacts with Level Streaming.
The start up map in the demo game only uses the Metal switch value un the Footstep_Material switch container. Connecting the Wwise profiler shows that the only media loaded for this container are the metal media files. Pressing the button on the Sub Level Demo will load a streaming level that also uses the Wood and Grass switch values. In the Wwise profiler, the mdia associated with these switch values will now be loaded. Pressing the button again will unload the level, and thus the Grass and Wood media files as well.
For more information on splitting switch container media, see Splitting Switch Container Media.
This section of the map demonstrates how to use the WAAPI UMG Widgets to control Wwise directly from your game.
The demo on the left wall illustrates how to use Unreal Engine's built-in widgets along with Blueprint scripting to control Wwise. The keyboard in step 1 changes the text in the Editable Text Box. When that text is changed, a WAAPI Call is made using WAAPI Blueprint Functions to search for items in Wwise matching the entered text (as can be seen in step 2), as is shown in the "Search for an item" section in the Widget's Graph. WAAPI returns the list of matching items in a JSON objects, which is then parsed to populate the combo box found in step 3. Once an item is selected, it is possible to play or stop it using the buttons. The Blueprint script to control this behaviour is found in the "Play/Stop" the selected item section of the Widget's Graph.
Due to an Unreal Engine known issue on the Mac platform, updating ComboBox values in a 3D widget does not work. You can still experience the demo using the 2D version of these widgets, available by pressing "P" in game.
The demo on the back wall demonstrates how the Ak Wwise Tree and Ak Item Bool Properties widgets can be used to control a Ak Check Box. The tree can be used to find a Wwise object to control. That item can be dragged & dropped onto the UE Checkbox or the Ak Checkbox to set the item the checkbox controls. The same has to be done with the Bool Properties picker. Once the item and the property have been set on the checkboxes, you may use them to enable or disable the property directly in Wwise. Changing the property in Wwise will also be reflected on both checkboxes. The UE Checkbox showcases how you can use the built-in Checkbox widget and Blueprint scripting to accomplish this. The Ak Checkbox shows that the exact same behaviour can be accomplished without any Blueprint scripting.
Note that all three demos are also available in normal 2d UMG widgets by pressing the "P" key on your keyboard during gameplay.