Created By: Game Audio Resource Ltd Date: 09/11/2019 Version: 1.00
Wwise Unreal: Chapter 04 A –
Character: Animation Tagging
In this guide we will set up basic SFX content to be triggered via tagged SFX Wwise Events to animation timelines.
Please Note:
Regarding footstep & Body land events, we will implement them to animation timelines for a simple introduction only.
For full details of a more advanced implementation method to include surface types, please see our other guides in Chapter 04.
GUIDE STEPS:
- STEP 01: Wwise Hierarchy
- STEP 02: Unreal Hierarchy
- STEP 03: Animation SFX Timeline Tagging
- STEP 04: Test
- STEP 05: Bug Fixing
Download the free associated written guide:
Wwise_Unreal_Chapter_04A_Character_Animations
Video Guide
Written Guide
STEP 01:
Wwise Hierarchy
In this step we set up Wwise data for the Player Character: Armour, Body, Footstep & Vocalisation audio content.
BASIC STRUCTURE
- Navigate to the Audio tab > Actor-Mixer Hierarchy > Default Work Unit > SFX > Character Work Unit
Right click then select: New > Child Actor Mixer
Name It: CHA_Armour - Add 3 more Actor Mixers.
Name each one individually the following:
> CHA_Body
> CHA_Vocal
> CHA_Footstep - Next, we associate an audio bus to each of the 4 new actor mixers.
Select the CHA_Armour Actor Mixer. Then in the Property Editor > General Settings tab > Output Bus, drag the Character Audio Bus on to the box called Master Audio Bus - Then assign the other 3 Actor Mixers with the same audio bus
- In each of the Actor Mixers, in the General Settings tab > Game-Defined Auxiliary Sends, tick the Use game-defined auxiliary sends tick box.
– TIP: This enables the reverb zone we implemented in Chapter 03 B to affect the child container content of each Actor Mixer.
ARMOUR
- Right Click the CHA_Armour actor Mixer, then select: New Child > Random Container.
- Copy this Random Container, so that you have 2 Random Containers.
Name each container individually the following:
> CHA_ARM_Leather_Action_Fast
> CHA_ARM_Leather_Run_Fast - Drag in One-shot armour leather fast jolting audio assets into both of the containers.
Place them under the File Importer > Destination Path:
SFX > New Folder – Character > New Folder – Armour
BODY
- Right Click the CHA_Body Actor Mixer, then select: New Child > Random Container.
Name it: CHA_BDY_Leather_Land - Drag in One-shot foot landing audio assets into the Random Container.
Place them under the File Importer > Destination Path:
SFX > Character > New Folder – Body
VOCAL
- Right Click the CHA_Vocal Actor Mixer, then select: New Child > Random Container.
- Copy & paste the Random Container, so that you have a 2 Random Containers.
Name it each one individually:
> CHA_VOC_Human_Male_Jump
> CHA_VOC_Human_Male_Land - Drag in One-shot associated vocal audio assets into the Random Container.
Place them under the File Importer > Destination Path:
SFX > Character > New Folder – Vocal
Footstep
- Right Click the CHA_Footstep Actor Mixer, then select: New Child > Random Container.
Name it: CHA_FSP_Generic - Drag in One-shot footstep run audio assets into the Random Container.
Place them under the File Importer > Destination Path:
SFX > Character > New Folder – Footstep
EVENTS
- Select each Random Container under the Character Wwise Work Unit. Right click, then select: New Event (One Event Per Object) > Play.
- Navigate to the Events tab. Select all the new Events we have just created. Right click, then select: Batch Rename
Under Replace
In find what, type: Play
In Replace with, type: SFX
Click the Rename All UI Button - Right click the Character Work Unit, then select: New Child > Virtual Folder
Copy & Paste the Virtual Folder so you have 4 Virtual Folders.
Name each one individually the following:
> CHA_Armour
> CHA_Body
> CHA_Vocal
> CHA_Footstep - Move the Events into the corresponding associated folders
ATTENUATION
- Navigate to the ShareSets tab > Attenuations > Default Work Unit > Character Work Unit.
Right Click the Work Unit, then select New Child > Attenuation.
Name it: ATT_CHA_Generic - Double the Attenuation to open the Attenuation window.
- Change the Max Distance value to 750
- In the graph, double click the red line to add a marker point.
Then move the marker to the following co-ordinates:
X = 150 and Y = 0
Close the Attenuation Window - Return to the Audio tab > Actor-Mixer Hierarchy > Character Work Unit
Then multi select the 4 Actor Mixers Armour, Body, Footstep & Vocal
Right click, then select: Show in Multi Editor
– TIP: This means, you are going to make changes in all 4 Actor Mixers selected - Navigate to the Positioning section, then add the following changes:
> Under Listener Relative Positioning > 3D Spatialization, in the drop-down list select Position + Orientation.
> Under Speaker Panning / 3D Spatialization Mix, change the value to 0
> Under Attenuation, right click the empty box, then select: Set Attenuation > Character > ATT_CHA_Generic
Close the Multi Editor window - Double check all 4 Actor Mixers positioning values have been updated.
SOUNDS BANKS
- Change to the Wwise Layout SoundBanks
- Generate all the Sound Banks
- Double click the SB_Character Sound Bank check that it now includes the new Character related content we have just added.
- Save the Wwise Project updates
STEP 02:
Unreal Hierarchy
Next, we add the new Wwise content into the Unreal hierarchy so the content is ready to be implemented to animations.
- Navigate to the Content Browser > Audio > Wwise_Events > Character Folder.
Then add 4 New Folders
Name them Individually the following:
> CHA_Armour
> CHA_Body
> CHA_Vocal
> CHA_Footstep - Open the Wwise Picker, then under: Events > Default Work Unit > Character Work unit drag each of the events into the corresponding Folders.
- Assign all Events to the SB_Character Sound Banks.
- Right click the parent Character folder, then select: Save All
- Generate the Unreal Wwise SoundBanks.
Import the Sound Bank updates via the popup message box in the bottom right of the screen
STEP 03:
Animation SFX Timeline Tagging
In this step we outline where to find character animations and how to attach a Wwise AK Event (e.g. SFX_CHA_VOC_Jump) to an animation timeline. You can then add as many Wwise Events to the animations timelines as you feel is needed.
- Navigate to the: Content Browser tab > FirstPerson > Animations folder.
– TIP: These are all the animations available with the default UE4 project
Double click on the animation called: FirstPerson_JumpStart to open the animation window. - The animation will start playing when the new window opened.
Stop and start the animation via the animation transport control UI buttons.
As you can see the model is misleading and only displays the arms.
We can just about see at the start of the animation the arms move upwards, we will take this indication that the start of the animation time line is the start of the jump action. - Right click the Notifies timeline, then select: Add Notify > AnimNofity_AKEvent
- Select the new Notify marker, then in the Details tab > Anim Notify> Event, in the drop-down menu, change to the Event: SFX_CHA_VOC_Jump
- The sound emitter position, needs to be attached to the skeleton bone.
In the skeleton Tree tab, you can pick a bone position you would like the sound to be played at.
Then simply add the skeleton bone name to the Anim Notify > Attach name Blank field.
g. We attached vocal Notify timeline markers to the bone: spine_03 (the closest position to the head of the model) - Change the Notify colour, so it is clear what this is a new AK Wwise marker.
– TIP: You may choose to divide your timeline markers into content colours
e.g. Vocal = Orange, Foley = Green.
This aid’s visual quick referencing - If you need to duplicate the timeline marker,
Right click the Notify marker, then select Copy
Then right click the timeline, then select paste. Then adjust positioning where needed. - Play the animation.
Make any marker adjustments needed. - Save the animation in the Asset Browser list.
- Boot up the test map.
Then order the player character to jump, you should now hear the jump vocal every time the player character jumps.
– TIP: In the associated Wwise event you could adjust the Events Probability of how often it plays. E.g. set the value at 50% this will stop the feeling of any vocal spamming issues with every character jump performed. - Progress on with the other animations, tagging which ever animations you think need SFX.
- Save all animation updates and save any Wwise balancing changes you make.
- Generate both Wwise and Unreal Sound banks.
STEP 04:
Testing
Lastly, we check our updates in game.
- Connect Wwise to the unreal engine
- Change to the Wwise Layout: Profiler
- Filter the capture log by the Character Wwise Work Unit
- Press Play to start the map.
- As you preform different animation actions, watch the Profiler log entry list for any new errors.
- Make any balancing updates
- Save the Wwise Project updates
- Generate the Wwise and Unreal Sound Banks.
STEP 05:
Bug Fixing
The default animation system has a few bugs that we need to address.
We offer 2 quick solutions for the SFX Vocal jump triggering when the JumpEnd animation is played (When the player character lands from a small jump)
Also, we stop the jumpEnd animation SFX triggering twice in a row.
As mentioned at the start of the guide, we will aim to address the footstep issue in Chapter 05
Vocal Jump SFX Plays When JumpEnd Animation Is Triggered
- First, we need to increase the audio asset length of the jump vocal audio assets.
In your preferred DAW (e.g. Pro tools)
Drag in your vocal assets into your DAW. Then simply increase the length of the assets with silence space, (Consolidation SHIFT+ALT+3 in ProTools) so that each audio asset length is around 1 second. - Export the new audio assets with the exact same audio asset naming used in Wwise.
- In Wwise delete the Vocal Jump audio assets.
- Then drag in the new longer versions of the same vocal jump audio assets.
Place them under the same File Importer Destination Path as the original audio assets. - The File Importer will recognise the asset names and ask if you wish to replace the Assets, confirm Yes by clicking on the Import UI button.
- Select the CHA_VOC_Human_Male_Jump Random Container.
Then in the Advanced Settings tab, add the following changes:
Under Playback Limit
Tick ignore Parent
Tick Limit sound instance
Change the value to 1
Change the drop-down menu to Globally
Change when priority is equal to Discard newest instance. - Save your Wwise Project updates. Then generate the Wwise and UE4 sound banks.
- Play the map, you should now hear when the player character lands, you no longer hear the vocal jump, just the vocal land.
Land Animation Double Trigger
- Navigate to & select the CHA_Body Actor Mixer
In the Advance Settings tab, add the following changes:
Under Playback Limit
Tick “Limit sound instances to”
Change the value to: 1
Change the drop-down menu to: Globally
Change When priority is equal to: Discard newest instance. - Navigate to & select the CHA_VOC_Human_Male_Land Random Container
In the Advance Settings tab, add the following changes:
Under Playback Limit
Tick Ignore Parent
Tick “Limit sound instances to”
Change the value to: 1
Change the drop-down menu to: Globally
Change When priority is equal to: Discard newest instance. - Save your Wwise Project updates. Then generate the Wwise and UE4 sound banks.
- Play the map, you should now hear when the player character lands, you no longer hear the SFX play twice.
REMINDER
Now we have character content triggering in the 3D world space you can start adjusting the reverb (e.g. REV_Outside) value settings we set up in Chapter 02.
Revisit Chapter 02 B if needed. Adjust & update reverb values where needed before moving on to the next guide.