Footsteps System

Modular sound system for playing footstep sounds depending on the surface type

The system is quite simple. With the standard footstep sounds, the developer must resort to project settings, which isn't always convenient. For example, how could we integrate this feature, which is important for game's atmosphere, into the plugin if all the settings don't export?

To understand the system it is enough to open any kind of animation showed in project. For example, walking forward:

If we open it, we will see notifies at timeline. In fact, these are the places in the animation where the sounds are played.


If you click on one, you will see its settings:


Let's take a closer look at what each of these is responsible for.

Footsteps Data

This is a data asset that can be created through the context menu.

This is a map where the key is the Physical Material and the value is the structure for selecting and adjusting the sound.

This is how an empty new element looks like:

We specify a physical material, such as wood for example, in the key. Then fill in the structure and add as many elements as needed.

Tracing Settings

TraceSocketName is a socket or a bone from which a ray will go down to check the Physical Material the character stepped on. We recommend using sockets as they can have the same name on different characters, unlike bones. This also allows your new character to immediately walk with sounds without having to reassign each notification to the character's feet.

To create a socket, go to your character's skeleton and create sockets on your leg bones as shown below:

TraceDistance is the distance of tracing which you can change if necessary.

TraceCollisionChannel is a tracing channel for greater flexibility.

TraceComplex is the setting responsible for whether ComplexCollision will be traced.

DebugTrace is visual display of emitted rays. When activated, you can also customize the colors for hits and misses:

It looks something like this:

You can do this for just one animation or for all of them but after debugging turn it all off! Otherwise, it will be included in the final build of your project.

Last updated