You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello guys! I'm making some tests with ragdolls and they started pretty promising. But, now I'm struggling with something that I'm very convinced to be a bug...
Apply an impulse to the bone clicked by the mouse.
How am I doing:
I'm using intersect_ray() from the camera to the mouse position
Then I place a pink sphere in the result position (just for debugging). This part is working nicely!
If the collider of the raycast result is a Physical Bone, I'm starting the simulation of this bone, and applying the impulse to it. This is also working fine.
After I start the simulation of at least one bone, the Physical Bones transforms begins to follow the bones (and the animations). However, no other bone gets detected by the raycasts, no more. Only those that I've started simulating (and its children).
You can see that after I hit the character's hand, the bones capsules start moving but I can't detect other bones except the hand (the pink ball is always placed in the floor).
If I simulate all bones, though, It works. But obviously the character falls as a proper ragdoll...(watch the end of the first simulation)
Summaryzing:
In the beginning, no bone has started simulation, and I can detect any bone with the raycast. Then, when I start the simulation of one, no longer can I detect other bones except this one.
What have I checked:
Collision Masks and Layers are ok, since they work before I start simulating.
It happens even with no animation playing
I've set the physical bones as NOT toplevel, so they don't get frozen even though the Kinematic Body is moving. However, they still don't follow the animations until I start one simulation.
If I start the simulation and then stop it again, the problem persists. I can just detect the bones' bodies if I reload the scene.
The same happens in 3.3.stable;
Thanks in advance!
Steps to reproduce
Open the project;
Enable Debug Collisions;
Run the TestRagdoll.tscn scene;
Left Click the terrain to test the raycast detections (pink balls will appear in the hitpoints)
Try to left click the character's foot (in the mesh). It should not detect the character
Try to left click the same foot collision shape. It should apply an impulse to the character's foot.
The Physical Bones should now be following the armature.
Try to hit any other bone. Nothing will happen. (The pink balls appear in the terrain)
Try to hit the foot again, it will apply a new impulse
Press space to start simulating all bones. Now everything will respond to clicks.
Press space again to reload the scene.
Controls:
WASD: moves player
Arrow keys: move camera
Middle-Click + Mouse motion: rotates camera
Space: Start simulation for all bones
Space again: Restart scene
Calinou
changed the title
Physical Bones that aren't simulating don't get detected by RayCasts
[Bullet] Physical Bones that aren't simulating don't get detected by RayCasts
Aug 20, 2021
pouleyKetchoupp
changed the title
[Bullet] Physical Bones that aren't simulating don't get detected by RayCasts
Physical Bones that aren't simulating don't get detected by RayCasts
Oct 1, 2021
I seem to be having the same issue. My ragdoll is only switched on when the AI is dead, and I just discovered that the physical bones are otherwise stuck at the origin, where I instanced the AI, and are invisible but perfectly collidable.
Godot version
3.4.beta4
System information
Windows 10, GLES3, Intel UHD 620
Issue description
Hello guys! I'm making some tests with ragdolls and they started pretty promising. But, now I'm struggling with something that I'm very convinced to be a bug...
VIDEO DEMO: https://youtu.be/YWCvQ84bPNw
What I want:
Apply an impulse to the bone clicked by the mouse.
How am I doing:
intersect_ray()
from the camera to the mouse positionCode:
What's the problem?
Take a look at the video! There are 2 problems:
The Physical Bones don't follow the bones transforms (animations and move_and_slide) until I call
skeleton.physical_bones_start_simulation([...])
. So, to detect the bone, I have to first click "outside" the mesh, where the Physical Bones got frozen.P.S. Maybe, it shows that Collision shapes attached to physical bones don't transform with their bones when animated #24359 and Do not remove ragdoll collision layers after simulation disabled #34313 may not be fully resolved by PR #36008), from @AndreaCatania .
After I start the simulation of at least one bone, the Physical Bones transforms begins to follow the bones (and the animations). However, no other bone gets detected by the raycasts, no more. Only those that I've started simulating (and its children).
You can see that after I hit the character's hand, the bones capsules start moving but I can't detect other bones except the hand (the pink ball is always placed in the floor).
If I simulate all bones, though, It works. But obviously the character falls as a proper ragdoll...(watch the end of the first simulation)
Summaryzing:
In the beginning, no bone has started simulation, and I can detect any bone with the raycast. Then, when I start the simulation of one, no longer can I detect other bones except this one.
What have I checked:
Thanks in advance!
Steps to reproduce
Controls:
WASD: moves player
Arrow keys: move camera
Middle-Click + Mouse motion: rotates camera
Space: Start simulation for all bones
Space again: Restart scene
Minimal reproduction project
ragdoll-tests.zip
The text was updated successfully, but these errors were encountered: