UE4 Layered Footstep Audio System
Using UE4 and Wwise I have created a footstep audio system that will play footstep sounds that are composed of multiple layers. With this system, rather than having to just play a generic water footstep, you can have another layer underneath, such as gravel or mud, which adds to the detail in the world and is more believable.
The main reason for creating this system was get a more detailed experience when stepping on certain materials like water, broken glass, or carpet. These materials sound different based on what is below them, my system can detect this and play multiple layers so a water footstep can actually sound like a watery gravel or mud, or a carpet could be carpet on wood or on stone, or broken glass could be on concrete or metal.
Another major reason I decided to create this footstep system was because I have had some experience creating footstep systems before and there’s a challenge I believe can be addressed quite easily with a bit of planning ahead. The issue is the need for 1000s of footstep assets in order to cover all the materials in your game as well as additional requirements like multiple stances, distinct characters, weight classes, or even things like the need for a distinction between a footstep above or below you. Breaking up a footstep into multiple layers can allow you to make far fewer assets.
Example
Let’s say you have 20 materials, 4 characters with distinct shoe types, and crouch, walk, and run variations. If we wanted 5 variations of each step you could be looking at a list of 1200 assets (20x4x3x5) but if you separated the shoe/foley layer from the material layer you’d only require 360 assets. 300 (20x3x5) for material sounds, and 60 (4x3x5) for character specific shoe/foley sounds. Having to handle fewer assets means you can actually have unique sounds for more materials because the cost of adding 1 more is minimal in terms of asset count.