blackears / cyclopsLevelBuilder

A Godot plugin to let you block in levels inside the Godot editor.
MIT License
1.04k stars 43 forks source link

Collisions on edges of ramps interacts strangely with CharacterBody3D #84

Closed PangolinMontanari closed 1 year ago

PangolinMontanari commented 1 year ago

https://youtu.be/lll9c4caBCM

This wild behavior occurs in Godot v4.1.1.stable.official [bd6af8e0e] with Cyclops 1.0.1.

This is the default template for a CharacterBody3D script included with Godot. Coming into contact with ramp edges has this effect.

Disabling features of CharacterBody3D(such as 'stop on slope, constant speed, block on wall, snap length) doesn't appear to have any effect.

blackears commented 1 year ago

I think this is just a problem with Godot physics. The physics object being generated for the block is a ConvexPolygonShape3D. The sharp corner of the cylinder is likely causing a problem with the angle of the slope. I'd suggest switching to a Capsule for your player, or maybe a 'lollipop' shape with a Sphere for the top and a Ray for the bottom.

You can also try using Jolt physics, which many in the community are talking about, although switching to that will be a big task and is not something I could help you with.