I’m developing a personal application and I’m testing JME’s ragdolls. I have two questions about them:
If I want to create a custom ragdoll, I mean with 3d models instead of Geometric Shapes, is it possible? If yes, I would be happy if someone show me an simple example with a pseudo-code of how to do it.
I’ve noticed a problem when ragdolls fall from high heights, sometimes, their legs/arms get stuck on the floor (?) If you want to see it, the TestRagDoll.java is a good exemple about what I’m saying. Is there a way to fix it?
look at the ragdoll test code. Its all nodes, you can attach anything to them you like
Thats an artificial problem that only occurrs when the ragdoll falls perfectly perpendicular to the floor, a situation that should seldom happen in a game.
Thanks for the fast answer normen, I undertood your answer for question 1, but for question 2 you mean I should accept the issue? really, there is NO WAY to fix it?
Its a non-issue, you can provoke stuff like that in almost any game on the market when you create high enough forces and velocities. Thats what happens when you quantize time… You can avoid things going through walls with ccd but in this case you have multiple joined bodys pressing the leg through the floor so ccd will not help here. But as said this only happens when the ragdoll falls perfectly perpendicular and the joints are perpendicular to the floor too. You can tilt the joints or the ragdoll and it will not happen.
Did you even read what I wrote? Just tilt the joints a bit. It doesn’t even need to be noticeable. And if your ragdolls always fall orthogonal to the ground it must be the most boring game I ever saw Also, try the whole shebang with terrain and/or higher res meshes instead of a box.
I’m having now a few problems to use ragdoll’s limbs as boxes not cylinders. I can manage to make the correct tize, but the ‘axis’ system that CapsuleCollisionShape has, isn’t implemented in BoxCollisionShape, am I correct? If yes, how can I rotate the limbs us BoxCollisionShape? If I’m not, what am I doing wrong?