Result:
With Quaternius humanoid base
With Quaternius Human base and Idle animation pose enabled. (Humanoid base as donor of PhysicalSkeleton)
Preparation
Asset (CC0):
Testing Playground and Godot Ragdoll Reference:
Start
- Let’s start by opening the
godot-demo-projects\3d\ragdoll_physics\project.2. - Create folder
characters_quaterniusin the project folder.- Copy the
AnimationLibrary_Godot_Standard.glbinto this folder. - Create a new Node 3D Scene
quaternius_ragdoll.tscnand drag this.glbfile into the scene.
- Copy the
- Let’s retarget the model’s skeleton to create a GeneralSkeleton.
This will allow for easier transfer of PhysicalSkeleton later on.
- Let’s mark the model as Editable Children
- Let’s create a Physical Skeleton.
- Let’s inspect the newly created PhysicalBoneSimulator3D by entering display overdraw.
- Let’s inspect the first Physical bone of the PhysicalBoneSimulator3D:
Physical Bone root.
This is clearly some kind of helper bone, so we are immediately deleting it. (it’s obstructing the physical bones of legs)
- Now that we have no more weird bones, let’s continue by enlarging the physical bones by clicking on CollisionShape3D and uniformly scaling them using scaling handles.
Tip: I generally have personal belief that rotation and positioning should be done on the entire PhysicalBone and scaling should be done by scaling the CollisionShape3D of the Physical Bone.
It took me around 11 minutes to complete scaling and rotating the bones and I still believe it’s far from perfect due to my limited knowledge as of now.
Full Video: https://github.com/BoQsc/quaternius-ragdoll-walkthrough/releases/download/0/2026-02-14.21-20-11.-.Copy.mp4
- Now that we have bones matching or outmatching the mesh of the model, let’s point out the obvious now: where is the head bone? I don’t know. We will figure it out along the way if anything can be done about it. in the worst case scenario we would just scale up the neck physical bone to accomodate for the head. However I maybe already figured out how to bring up head physical bone.
Creating Missing Head Physical Bone
We simply duplicate the neck physical bone and select Bone name Head then adjust the head physical bone location and size the CollisionShape3D so it fits the mesh of the head.
Remember to make the CollisionShape3D of the Head a Unique element:
And so after some scaling adjustments to the CollisionShape3D and transform adjustments of PhysicalBone itself we have a head PhysicalBone.
- Let’s collapse the PhysicalBoneSimulator node so we can easily select subnodes
- Let’s now change all bones joint types to cone join type.
- Let’s apply the joint constraints to all the joints.
- joint_constraints/swing_span: 20.0
- joint_constraints/twist_span: 20.0
-
Let’s apply friction and bounciness to all the bones.
- friction: 0.8
- bouncines: 0.6
- Now that we have all this setup we can go on and introduce this ragdoll into the demo.
- Let’s copy the
mannequiny_ragdoll.gdscript into our foldercharacters_quaternius
- Let’s edit our
mannequiny_ragdoll.gdby replacing/changing nodes paths in the script.
- Let’s attach our
mannequiny_ragdoll.gdto our top level Node 3D
- Let’s copy the
AudioStreamPlayersfrom themannequiny_ragdoll.tscn
19. Paste the
AudioStreamPlayers to our QunaterniusRagdoll scene.
- Let’s edit the
ragdoll_physics.gdso that pressing spacebar would spawn our ragdoll.
- Let’s run the
ragdoll_physics.tscnscene.
As we can see our ragdoll might not be perfect,
looking for your suggestions on how to make it more perfect.
Transfer PhysicalSkeleton/Ragdoll to Quaternius Human Base
To transfer the PhysicalSkeleton you have to duplicate it and then move it, instead of just moving or copying it.
- First, let’s download Quaternius Universal Base Characters
- Let’s do Skeleton3D retargeting and do reimport of our Superhero_Male_FullBody.gltf
- Let’s add Superhero_Male_FullBody.gltf into the scene.
- Let’s mark it as Editable Children
- Let’s duplicate the PhysicalBoneSimulator3D
- Let’s move the duplicated
PhysicalBoneSimulator3D2to the human base.
- Let’s rename
PhysicalBoneSimulator3D2toPhysicalBoneSimulator3D
- Done. We successfully transfered the PhysicalSkeleton to the Human base.
- Let’s delete the donor humanoid base (
AnimationLibrary_Godot_Standard)
- Let’s reintroduce the Human Base into Godot playground.
-
Let’s see what we have.
-
Let’s apply idle pose from previous animation library.
-
First let’s mark and reimport
AnimationLibrary_Godot_Standard.glbas animation library.
-
Retarget Skeleton3D of Animation Library
( We already retargeted animation library skeleton)
-
Add new animation player to the human base.
-
Load up animation library.
16 Select the Idle animation and start the ragdoll_physics.tscn ragdolls scene.
- Here is the result.



































