How to define custom physical material behaviour?

The collision of two actors will behave differently depending on the physics material that is used for each actor.

If I want my actor to slide smoothly past a wall, I make a physical material for the Wall and for the Actor and put both their Restitution and Friction values to 0.0.
But when I put the friction parameter of the wall to a higher value, the Actor no longer slides smoothly past the wall.

What should I do when I want my Actor to slide smoothly against any surface regardless of what their friction parameter is?

1 Like

Hi simmania,

Currently we take the average friction of the two physical materials. This is not ideal for many cases so I’m adding an override for this so that you can choose (average, multiply, min, max).
I’m hoping to have the change in github soon, let me know if you have any more questions.

Thanks :slight_smile:

This feature is now available in main. It likely won’t make it into an official release until 4.3, but it’s available in github if you’d like to take a look:
https://github.com/EpicGames/UnrealEngine/commit/a5290853c895857404a2e56b510fad21cd78857c

Thanks! This is exactly what was causing my issue when I tried to get a default friction object to slide over low-friction material (in my case, ice)

Q: Is this supported on decals as well? Let’s say I have an ice decal on the floor, will the object sliding over the surface respond to the decal material and not the original floor material?

I’m afraid decals do not have a representation in the collision system, so this will not work. It’s an interesting idea though, I can certainly see how it would be useful.

That’s really unfortunate! Could this be something for a future release?

I’ve tried a physics volume slightly above the decal to fake the effect, but it does not hold the same properties to give me a result that could be close to a slippery surface. Would you have any other workaround suggestions perhaps?

Physics volumes do not control surface properties. Maybe instead you can add an invisible (but colliding) static mesh just above the floor and override its physical material.

That could work for me.

Is this something that could be available in the future? (<- specifically: allow decal surface to modify physical response)

I can’t think of a way we can really do this in a general way, it very hard to think of a way to ‘collide’ against decals. Dealing with masking etc would make it extra tricky.

I completely get that. I’ll just have to work around this with your suggested approach, thanks for your help!