Created By: Game Audio Resource Ltd Date: 22/07/2019 Version: 2.00
In this guide we will implement only the player character footsteps, as a unique hierarchy structure is needed only for the player character.
In Chapter 07 we will also fix/add the following content:
- Use all available default material types that come with the game
- Use a different approach to fix timing of footstep spacing
- Trigger unique underwater movement content
- Silence the footstep assets when the player is underwater
TIP: In a professional environment you may find that all material types do not have unique footstep assets made for them. At the start of a project scoping, material types may be combined into a few main types e.g. Rock, Stone, Tile = Rock, as the character of these 3 material types are very similar.
Guide Steps:
- STEP 01: Wwise Hierarchy Structure
- STEP 02: Wwise Fixing Footstep Spacing
- STEP 03: Test & Integrity Report
Task Time Needed: 1>2 Hours
Video Guide
Written Guide
Chapter 07 A – Step 01
Wwise Hierarchy Structure
This step sets up Wwise data with hierarchy and assets for the player characters footsteps.
Hierarchy:
First, we set up the basic hierarchy structure.
- Navigate to the Project Explorer > Audio tab > Actor Mixer Footstep Wwise Work unit.
Right click and select New Child > Switch Container.
Name the new Random Container Footstep_Human_Player. - Select the new Switch Container (Footstep_Human_Player)
In the Property Editor > General Settings tab > Output bus, change it to the Master-Mixer Footstep audio bus. - Now we need to assign child content to affect the switch.
Right click the Footstep_Human_Player switch container, select New Child > Switch Container. Name it Footstep_Human_Player_State - Next, we can split the hierarchy into 2 main sections underwater and above water.
First, we add bubbles.
Right click the Footstep_Human_Player_States Switch Container. Select New Child > Random Container.
Name it: Footstep_Underwater_Bubbles. - Now add the a few one-shot underwater bubble audio assets to the Random Container.
In the import window change the path to SFX > Footstep > Underwater. - Also drag a Water Wades Loop) into the Footstep_Human_Player_States Switch Container. Again, in the import window place it under SFX > Footstep > Underwater
- Select the Underwater Loop, then in the Property Editor add a tick to the loop tick box.
- Right click the Footstep_Human_Player_States Switch Container. Select New Child > Switch Container.
Name it Footstep_Human_Player_Run. - Right Click the Footstep_Human_Player_Run Switch Container, then select New Child Sequence Container.
- Copy and paste the new Sequence Container, so you have 9 Sequence Containers.
- Now name each container a different material type:
Concrete, Grass, Gravel, Metal, Sand, Stone, Tile, Water and Wood - Next, we need to add audio assets for each footstep material type.
Drag all audio assets into one of the Sequence Containers.
In the import window change the Import file path to
SFX > FOOTSTEP > HUMAN.
then, move the audio assets to the correct corresponding material Sequence Containers.
- TIP: For speed, I suggest dragging all footstep assets into on material type sequence container. Then drag move the assets into the corresponding container.
Assigning switches:
Next, we need to tell the structure how to handle the switches we have assigned.
- Select the Footstep_Human_Player Switch Container. Then in the Property Editor we shall assign a switch.
Under Switch > Group > Select the arrow button, then navigate to Switch Groups > Default Work Unit > Foot - Set the Default Switch/State to Left.
- In the Content Editor Drag the Footstep_Human_Player_State onto the Left / Right Assigned Object variables.
- Select the Footstep_Human_Player_State Switch Container. Then in the Property Editor we shall assign a state.
Under Switch > Group > Select the arrow button, then navigate to State Groups > Default Work Unit > PlayerInWater - Set the Default Switch/State to None
- In the Contents Editor Drag the Switch Container Footstep_Human_Player_Run on to the Assigned objects variables None and No.
Then drag the Underwater Wade Loop audio asset and the Random Container: Footstep_Underwater_Wades to the assigned objects Variable Yes.
- TIP: This tells Wwise only to play the footstep asserts above water or if there is no material type available.
- Select the Footstep_Human_Player_Run Switch Container. Then in the Property Editor we shall assign a switch.
Under switch > Group > Select the arrow button, then navigate to Switch Groups > Default Work Unit > Material. - Set the Default Switch/State to Concrete
- Then drag each Sequence Container material type to the corresponding Assigned Objects switch variable. E.g. Wood onto Wood, Grass on to Grass.
Events:
To get the hierarchy working in-game we need to associate the correct sound events
- In the Project Explorer > Events tabs, locate all Foot_(X) sound events.
Then drag them into the Events > Default Work Unit > Footstep Wwise Work Unit. - Select the sound event called Foot_Player.
Now drag from the Actor-Mixer Hierarchy the main Parent Switch Container Footstep_Human_Player onto the Play entry target column in the Events editor.
(Currently assigned to TEST_Footstep)
Extra Properties Needed for the underwater content:
Next we assign a few properties for underwater content
- In the Project Explorer > Events tab select the Event SplashOutPlayer
- Then right click New Action > Stop > Stop
- Drag the Underwater Wades Loop audio asset into the new Stop Target column
- Return to the Audio tab. Then navigate to the Footstep_Underwater_Bubbles Random Container. In the property Editor > Play mode, change to continuous, Tick Transitions, select Type Trigger rate. Set Duration to 3 and then set the randomizer Max offset to 2
- In the Property Editor > Advanced Settings tab,
Tick Ignore Parent
Tick Limit Sound instances to 2 Globally.
Then in the “when priority is equal” drop-down menu, set it to Discard newest instance. - Then change to the States tab. Select Add State Group > Default Work Unit > PlayerInWater.
Set No – Voice volume to -96
Set Yes – Voice Low-pass to -40 - Select the Underwater Wades Loop
In the Property Editor > Advanced Settings tab,
Tick Ignore Parent
Tick Limit Sound instances to 1 Globally.
Then in the “When priority is equal” drop-down menus set it to Discard newest instance. - Change to the States tab. Select Add > State Group > Default Work Unit > PlayerInWater.
Set No – Voice volume to -96
Set Yes – Voice Low-pass to -40 - Save your Wwise project updates and generate the sound banks.
NOTE: If you boot up the game now, no footsteps will play as the sequence container have not been set up yet.
Chapter 07 A – Step 02
Wwise Fixing Footstep Spacing
There are a few ways you can address the issue with the player character footsteps being triggered too quickly.
This step will offer a different process to others found online.
- TIP: in a professional environment you would probably either be tagging an animation with footsteps or you may have a simple hardcoded value to determine the spacing between left and right footsteps.
- Change back to the Wwise Designer Layout
- Return to the Footstep_Human_Player_Run Switch Container, select the first Sequence Container called Concrete. Open the hierarchy
- We will now add a silent asset (Like we did in Chapter 4 Step 03)
Right click the Concrete Sequence Container, select New Child > Sound SFX
Name the sound Silence. - In the Content Editor, select add source > Wwise Silence.
- Now will need to assign a playlist for Concrete footsteps.
Select the Concrete Sequence Container.
Then in the Contents Editor drag 1 Footstep asset into the play list. - Then drag one Silence asset into the Playlist ensuing that it is after the footstep audio asset.
- Repeat the above points 5 + 6.
The playlist should then look like this:IND_Footstep_Human_Run_Concreate_01
Silence
IND_Footstep_Human_Run_Concreate_02
Silence
- TIP: You must keep the playlist the same order for each sequence container material type (but obviously using the corresponding material asset types)
- Copy and paste the Wwise Silence into each of the Sequence Containers.
- Repeat this process for each material type listed: Grass, Gravel, Metal, Water, etc…
- Generate the sound banks and save your Wwise Project updates
- TIP: In our previous Wwise Cube 2017 guide we mentioned that changing the Silence duration value would adjust how quickly the footsteps would trigger.
However, this does not seem to be the case with the Wwise 2019 version.
Chapter 07 – Step 03
Test & Integrity Report
We have only fixed half the bugs associated with the footstep player content, but it is a good time to test all Wwise updates as no more Wwise data is needed.
- Boot up the Cube game and connect Wwise to the game.
- Change Wwise to the Profiler Layout.
- Move the player character around the default map (Metl3)
You should notice the Sand and Metal assets trigger on the corresponding area when the player moves over different texture tile types. E.g. sand/desert floor texture triggers the footstep sand assets.
NOTE: You may notice a log entry in the Profiler as you move the player character around the map: Message Missing material for ikbase\…..This is due to all floor material types not being correctly set up in the Cube game scripts.
We will fix this issue in the next Chapter 07 B: Fixing Material Types guide - Close the game and run an integrity report.
You should now notice that 2 switches have now disappeared from the list: Material and Foot. This is due to them now being used in the Wwise hierarchy.
- TIP: if you see a load of errors, I suggest you may have missed a point of this guide. Retrace the guide until you find the missed point.
- If you have added any balancing updates, save your Wwise Project updates & generate the sound banks