I have a KinematicBody (3D) that has simple gravity (every physics process tick: add the gravity value to the y coordinate via "moveandslide"). It moves smoothly on one StaticBody but if it reaches the next StaticBody (which is - in this case - a copy of the same body directly next to the first StaticBody) it bounces a little bit up for a very small moment.
I think it's a very simple task to move a KinematicBody over different collision shapes of the environment without bouncing or stuttering. What do I miss here?
To try it for yourself just create a scene with two StaticBody boxes next to each other but on the same y level and a KinematicBody with this script:
const GRAVITY = 1.0
const SPEED = 1.0
var linear_velocity = Vector3(0, -GRAVITY, 0)
if Input.is_action_pressed("ui_up"): linear_velocity.z -= SPEED
if Input.is_action_pressed("ui_down"): linear_velocity.z += SPEED
In my case, the KinematicBody is on y position 0.80902 when it's colliding with one collision box and on 0.817xxx (the last 3 digits differ each physics frame) when it's colliding with both boxes at the same time.