Surface Detection
One AnimNotify event for each foot (for more precision, in some case we could save resources by only sending one raycast but I wanted more precision).
Raycast starting from the foot and going to the ground. Each floor object on the level as a physical material attached to him with a surface type that is used to control a switch in Wwise.
All the surfaces so far.
Example for the main floor physical material.
Wwise footsteps switch.
Water Depth
Raycast starting from the foot and upward if the character is in a defined « Water Zone ». The distance between the surface of the water and the ground is used to control an RTPC.
Water Depth RTPC used to control the basic footsteps sounds (making them really quiet when the water is deep enough).