-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move_and_collide
yields inconsistent results when moving overlapping StaticBody3D
#1001
Comments
Excuse the double post, but just confirmed that this doesn't happen in 0.12.0 stable. |
I haven't had a chance to look into this, but are you saying that you were able to reproduce this in 0.11.0-stable but not in 0.12.0-stable? |
Excuse me. I meant that is reproducible on the latest stable version (0.13.0) but not in the one before (0.12.0), so the problem has probably been introduced in the latest release. |
Ah, that makes more sense. I'm not sure why I didn't read it as such. I'll take a look. |
move_and_collide
yields inconsistent results when moving overlapping StaticBody3D
It does seem like this has something to do with the fact that you're moving a Intuitively this makes some kind of sense to me, since the physics engine should be free to make all kinds of assumptions about a static body never actually moving, but the symptoms presented here are undoubtedly quite strange none the less. I'll need to take a closer look at some later time as to what exactly is happening and whether this is a bug or just how it has to be. There have been other cases where Jolt has shown discrepancies with Godot Physics when it comes to moving static bodies, so I suspect this might just end up being another one. |
Thank you for looking into it. I'm using an static body because i usually create my own character systems. As you can't directly inherit Thank you for your time Mihe. |
If you only want the absolute bare minimum of a kinematic body, you can do what
For what it's worth, this is somewhat of an issue in Godot Physics as well, where Frankly, I wish that |
Hi, adding on to the above response. I'm currently writing a custom engine module to deal with some similar issues as yourself. So far, I've been able to get desired "total control" behavior from making a physics body 3D extension class, and in the constructor setting its mode to MODE_KINEMATIC as mihe mentions above. This is actually what CharacterBody3D does internally anyway:
The setup is extremely minimal, and is basically only just a method bind or two beyond that. It perhaps can be offered as a custom build (as I don't think this could be merged reasonably into Godot itself). But hey, you can always try a proposal to re-implement a "neutral" interface. In practice, I only plan to use this for one instance in a single-player game, so there's some assumptions made currently for my specific use, but it seems to play okay so far with the rest of Godot. |
Hi! This one is kind of weird to explain so i made a little video plus the reproduction files.
I noticed that, when using jolt, a simple trace down was failing sometimes. After battling with it a lot i been able to isolate it.
Notice how, when i press play, the body is usually reporting the collision with the floor. as soon as i move the upper body, it stops registering nothing. If i move it again it goes back.
2024-10-15.14-02-42.mp4
This is a much of a "reproducible" setup as i was able to make. But this happens in my project under seemingly aleatory reasons just as in this demo. The thing it confuses me is that it seems to be a perfect "On off" every time i move it.
I confirmed that this behavior is not present in Godot physics.
Reproduction project:
(The 25 mb file size makes impossible to provide the reproduction project, as jolt + a script + a scene is already over that size in a .zip)
I have to provide the MRP without jolt. Please, add the last stable version.
joltbug.zip
The text was updated successfully, but these errors were encountered: