Material Detection Audio
To have the footstep sounds actively change when the character walks over a different material, I created a component that simply casts a trace below the player whenever they take a step. The first surface hit is then checked for its physical material and any of the necessary attribute data is passed through to FMOD where the rest of the audio is handled.
Once the attributes have been sent from Unreal and set in FMOD, the footstep event is then fired with those attributes. The conditions of each step are checked between the character controller in C++ and the material detection component in Blueprints. It provides the info for the speed of the player, the surface material, the intensity of the step, and any additional info needed. A footstep sound is then dynamically played based on those parameters.
This gives us a lot of control over how each step should sound, as well as making sure that footsteps work with things such as occlusion and attenuation. The system will dynamically change how a footstep sounds from step to step to ensure continuity when quickly traversing over surfaces that transition between many different materials.