Why does character bounce off obstacles?

When the character moves into a curved surface, it bounces off it. This happens with both jumping and falling.

The character is set to not simulate physics and only gravity is applied. The movement does not use root motion and is confined to the XZ-plane.

Why does lateral velocity get added? Is it possible to disable this so that the character falls directly down?

When you jump and collide with a cylinder, your vertical jump velocity is projected into lateral velocity each frame relative to the collision normal until contact with the surface is broken. Because the surface is curved, the collision normal changes every frame, which results in sideways motion.

This is kind of natural behavior when you jump and contact a curved surface. If you don’t want that, you can increase braking / friction values in the CharacterMovementComponen, which will cause the character to slide less during contact and then fall straight down once contact is lost.

If you want to interfere not slide in between, you don’t have to modify actually base code or custom movement you can just increase movement friction and braking settings to make character reduce bounce, still it will slide on curve till contact is lost. Think this would be something you would like to play with.

If you don’t want that at all (stop on contact) which would be an unnnatural behaviour, you can modify code not to project movement laterally.

1 Like

Thank you for clarifying that this is intended behaviour for the movement component. I will look into removing this.

1 Like