Download

How to Detect What Texture a First Person Character is Touching

Hello! This is my first time ever developing in Unreal Engine so please excuse the noobyness of my post. I am trying to make it so that my First Person Character has footstep noises when the move on surfaces. I was able to create it all in blueprint (my project will have little to no animation so doing this was in our projects scope). I am also using the UE4 First Person Character as a base. It currently only plays one sound, but there will be multiple textures/surfaces that my character will walk on. I have the logic for playing and pausing sound w/ sprinting here:
https://forums.unrealengine.com/core/image/gif;base64

The methods that trigger the sounds are these:

https://forums.unrealengine.com/filedata/fetch?filedataid=130021&type=thumb

With the second method, is it possible to detect what texture my first person character is currently touching? I would then add logic to select the correct sound for the custom methods that I’ve made. If not, are there any possible solutions for this setup? Thank you!

Hey.

In the project settings of your project, under the Physics section, you can define up to 62 physical material types. Start there and define your base material types.

Next, create a new asset for each material type, under Physics>Physical Material. Name them accordingly, open them up, and set their Surface Type under Physical Properties, to match the surface types you just set in the project settings. (If you have no surface types in this rollout after setting them in the project settings, restart your editor)

Now, each regular material you create can have a Phys Material assigned to it. Assign the proper Phys Materials to the regular materials. You can bulk edit material instances if you have a lot of materials to edit.

Finally, your blueprint could look something like this. What we are doing is line tracing down from the centre of your character mesh (or actor if you dont have a mesh) and finding the object we are stepping on, determining which surface we are on, and then switching sounds based on that surface.

Let me know if you have any more questions, and sorry if the photos are out of order…

*Just a quick edit after reading your blueprint, you would want to put all the blueprint logic that I posted here after your MakeFoostepNoise exec ping