Rag dolls?

I’ve been trying to follow the tutorial here to make ragdolls for investigating physics engines. What I’m seeing is that as I drop the ragdolls into the space, the joints come apart and the segments fall separately, bouncing off one another.

I’ve given each limb segment a RigidBodyControl wrapping a CapsuleControlShape which wraps the limb, I’ve made ConeJoints between each pair of segments, I’ve added all the limb segments as children to the rag-doll node, and I’ve added the rag-doll node as a child to the root.

I note that further down the tutorial it talks about the KinematicRagdollControl, but notes that it is deprecated, and reading the javadoc it says

To use this control you need a model with an AnimControl and a SkeletonControl.

I see that SkeletonControl is now also deprecated in favour of SkinningControl, and AnimControl in favour of AnimComposer.

I don’t currently have an armature, and the ConeJoints are from com.jme3.bullet.joints so are presumable not compatible with the com.jme3.anim joints used in an armature. But it wouldn’t be hard to construct an armature structure as I construct the limbs; it’s essentially the same process.

Would there be any point in constructing an armature and adding a SkinningControl and AnimComposer, or is the problem to do with how I’ve glued the joints together?

1 Like

I’ve been trying to follow the tutorial here to make ragdolls

Unfortunately, that tutorial (along with most of the wiki) is at least 3 years out of date.

further down the tutorial it talks about the KinematicRagdollControl, but notes that it is deprecated

KinematicRagdollControl has been replaced by DynamicAnimControl, which is available in both jme3-jbullet and Minie. The version in Minie is more advanced than the one in jme3-jbullet.

I don’t currently have an armature, and the ConeJoints are from com.jme3.bullet.joints so are presumable not compatible with the com.jme3.anim joints used in an armature.

DynamicAnimControl works with both skeletons (old animation system) and armatures (new animation system).

ConeJoint is a physics joint (com.jme3.bullet.joints.PhysicsJoint) which is logically unrelated to the animation joints (com.jme3.anim.Joint) found in armatures. The name clash is confusing and unfortunate.

Would there be any point in constructing an armature and adding a SkinningControl and AnimComposer, or is the problem to do with how I’ve glued the joints together?

If your model had an armature, it would be fairly simple to create ragdoll animations using DynamicAnimControl.

Minie provides its own (incomplete) tutorial on ragdoll animation: An introduction to DynamicAnimControl :: The Minie project

2 Likes

Thank you very much, I shall explore.

1 Like