Ali Şahan Yalçın
DocsThe Footstep Database

Setting it up

The Footstep Database

The asset that maps state and surface to sound.

The database is where every sound decision lives. Change it and every character using it changes, without touching a single animation or Blueprint.

Structure

code
1
2
3
4
5
6
7
8
9
Footstep Database
├── State Effects
│   └── "Movement.Run"
│       ├── Surface Effects
│       │   ├── Grass  -> Effect Set
│       │   └── Stone  -> Effect Set
│       └── Fallback Effects        (surface not listed above)
├── Global Fallback                 (state not listed above)
└── Match Parent State Tags

How a lookup works

For a footstep with a state and a surface, in order:

  1. The exact state, then the exact surface.
  2. The exact state, then its Fallback Effects.
  3. The parent state tag, back to step 1, if Match Parent State Tags is on.
  4. Global Fallback.

An entry that exists but is completely empty counts as no match and falls through to the next step. So a half filled row never silently produces silence, it just moves on.

The effect set

Each row is an effect set. In the details panel it is grouped into four sections, and the collapsed header tells you what is in it, like 3 sounds, particle, decal.

Sound

FieldWhat it does
SoundsOne is picked at random per footstep. Put four or five in to stop repetition.
Volume Multiplier1 means the volume in the Sound asset itself.
Pitch RangeRandom pitch per footstep. 0.95 to 1.05 is usually enough.
Attenuation OverrideOptional. The plugin ships ATT_Footstep.
Concurrency OverrideOptional. The plugin ships SC_Footstep.

Particle Effect

FieldWhat it does
EffectTakes both Niagara Systems and Cascade Particle Systems.
Effect ScaleScale of the spawned particle.
Effect Rotation OffsetAdded on top of the surface normal.
WARNING: The plugin spawns Cascade by itself, but not Niagara. For a Niagara system, use a Footstep Action, which is a three node Blueprint.

Decal

FieldWhat it does
Decal MaterialA footprint in sand, a wet print on stone.
Decal SizeBox size in world units.
Decal Life SpanSeconds. 0 means it never fades.

Gameplay

FieldWhat it does
ActionsBlueprint logic to run for this surface. See Footstep Actions.
Effect TagsFree form tags passed to your logic. The plugin never reads them.

Effect Tags are worth using

Say you end up with fifteen surfaces but only three behaviours. Tag Footstep.Wet on water, mud and puddles, then check that one tag instead of comparing fifteen surfaces.

When someone adds a swamp surface later, they tick the tag and your existing logic already covers it.

Layering databases

The component takes a list of databases and searches them in order. Put a character specific one first and a shared one last, and the specific one only has to describe what actually differs.

You can also set project wide defaults in Project Settings > Plugins > Footstep System, which every component with Use Project Default Databases picks up.