MoveAndCollide() tends to jump from one position to another, rather than lerp to it. Does anyone know a fix to this other than switching to MoveAndSlide(), which doesn’t have the same mechanics.
I think you’re missing what the actual issue you have, actually is. I can’t rly blame you. It’s in the docs but it’s not immediately obvious behaviour.
move_and_slide() automatically multiplies your velocity variable by delta (time elapsed between last 2 frames) and move_and_collide() does not.
So when you had your speed set to 100, for move_and_slide() it automatically gets converted to 100 per second as where for move_and_collide() you have to multiply it by delta yourself, or else you end up moving 100 per frame.
I multiplied it by delta, I believe it’s explicitly obvious to do that.
MoveAndCollide(Velocity * (float)delta)
My problem is that it jumps from one position to another based on velocity, not that it jumps too far.
How are you handling the collisions? What caused you to move from using move and slide?
I’m handling collisions with a capsule collider, using the Character3D’s Velocity vector3 + MoveAndCollide(). I moved from using MoveAndSlide() because I wanted the character to simply collide, and not slide.
Sounds like it’s doing that right. You may have to share more of your script, explain what you expect to happen versus what really happens, and maybe a video of what you are seeing in this case.
I’ll probably find my own solution, as I’ve recently discarded the script (I reorganized my project, made it object oriented entirely and now the script is obsolete.) I’ve only engaged in this to find a solution before I rewrite it. If I come across the issue again, I’ll make a more clear post on the matter, with video. And I doubt it’s my framerate, I checked.