Play audio when walk on surface

Hey there everyone, I’m working on a project where I’m doing the sound design for a 3rd person game and I’m trying to set it up so that the player will make certain sounds when they walk on certain surfaces. Walk on grass it plays a shuffling grass sound, walk on stone, it plays metal on stone, and so on. This is DIFFERENT than adding sound cues to the walk cycle, but instead trying to allow for multiple different sounds to play depending on what the player walks on.

Above is the animation blueprint that I have so far working with Surface types and audio cues. I believe my blueprint is solid (if it’s not please tell me) but from here, how do I set it up so that the players actor will refer to this blueprint? Or if there is an easier way, how do I do this?

Thank you for your help.

looks solid…I like having as little in my Anim_BP as possible so I can reference it all in the Player_BP…so I’d take all of this logic and paste it in the Players_BP under Walk_Sound_Function or something like that…So just call this every time instead…Really just about everything in my Anim_BP calls a Function in my Player_BP…just how I do it…

So, feel free to treat me like I’m stupid… how do I do that?

I would use Interfaces between AnimBP and PawnBP, The PawnBP implements an Interface “FootstepInterface” with your logic you posted above. The AnimBP calls this Interface via Messages with the Notifies on the Pawn Owner.
This way the AnimBP doesn’t care about the concrete type of your pawn, only that it implements this interface.

€dit: You can however just use the AnimBP completely, all you have to do is to replace “GetPlayerCharacter” with “Try Get Pawn Owner”.

So in your Character Blueprint under Add Event…Add Custom Event… I’ll call this added event Walk_Sound from here on but you can name it whatever you’d like…

In your AnimationBP you’ll have an Event_Blueprint_Update_Animation and likely a cast to “MyCharacter” or whatever your player_BP is…from that cast “As My Character” pull the blue wire off and type to search for whatever you just named your Walk_Sound Event…From your Anim_Notify_walk_Sound (that you already have pictured above) Connect the True wire from that Branch attached to your speed variable to this Event you’ve just placed …Copy All the code here that is no longer being called (cause you just took the execution wire away and plugged it to the new Event being called from your “MyCharacter” cast)…

Back to your Player Blueprint…Paste the code you copied to your Walk_Sound event and plug it in…From that LineTracebyChannel you can remove the get player character as it’ll just get self in get Actor Location…That should be that…

You can call this Walk_Sound Event anytime now from somewhere else in your blueprint if needed…