Surface dependent footsteps system

LG7 - Code Plugins - Jul 10, 2024

This plugin handles playing different footsteps SFX, based on the Surface Type the owning Character walks on.

  • Supported Platforms
  • Supported Engine Versions
    5.4
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

This plugin handles playing different footsteps SFX, based on the Surface Type the owning Character walks on. It contains a dedicated Component (to be added to Characters) and an Anim Notify. Apart from using Anim Notifies, footstep sounds can also be played from code or BP with a dedicated TryPlayStep function.


Video Tutorial: https://www.youtube.com/watch?v=4X80CQ2vPzs

Documentation: https://docs.google.com/document/d/1GsI4vndHvOFP0iPuQHJj0Shye-Of7zLQ8r9fknKxPUY/edit?usp=sharing


Please note that:

  • The system works with Characters only, not Pawns
  • This is not a sound pack. The plugin provides a generic solution for playing surface dependent footstep sounds, but contains only a few sounds as examples (in its Content/Examples folder)

Technical Details

Features:

  •  Handle surface dependent footstep SFX in a few simple steps
  •  Play all footstep SFX for a Character with a single Sound Cue
  •  Surface tracing and sound playing logic implemented in C++ for optimal performance


Code Modules: SurfaceFootsteps (runtime)

Number of Blueprints: 0

Number of C++ Classes: 2

Number of Sound Cues: 1 (example)

Number of Sound Waves: 6 (examples)


Network Replicated: Anim Notifies handle replication out-of-the-box. If you want to play footsteps SFX by calling the TryPlayStep function directly, you will have to handle network replication on your own.


Supported Development Platforms: Windows

Supported Target Build Platforms: Windows


Updates:

v. 1.1:

  • Removed unnecessary IsFalling and min speed checks.

v. 1.2:

  • Increased default surface tracing distance (too small distance results in SFX not being played on steep surfaces).
  • tweaked log "no surface found" notifications.