Hello everyone!
I am very proud to present you with PuppetMaster, an advanced character physics tool making it’s way towards the Asset Store. Alongside it’s kinematic brother Final IK, it is the missing link in professional production quality procedural animation tools available to Unity.
What can we do with PuppetMaster?
Create active ragdolls that can follow the character’s animation using muscle forces and/or physically pinning the ragdoll bones to their animated targets.
Simply continue animating your characters after they have fallen/died. In the GIF below, the character’s animation (represented by the cyan skeleton) is simply cross-faded between two animation states, based on the ragdoll’s height from the ground.
Determine muscle/pinning properties for each individual muscle or muscle group. In the following sequence, the upper body was released to muscle animation only while the lower body remained pinned to the animation in world space.
The same logic applied to 2 characters…
The animated puppet can also be linked to a kinematic Rigidbody using a simple Joint.
PuppetMaster can be extended with Puppet Behaviours that provide a pattern for developing functionalities that dynamically adjust muscle and pinning weights, strength and other properties or make kinematic adjustments to the target pose. The behaviour used below (BehaviourPuppet.cs) loosens pinning on collision. If the ragdoll bones get too far from their targets, the puppet will loose balance.
…this behaviour can also be used on more complex character controllers. Triggering falling/getting up animations is also handled automatically by the BehaviourPuppet.
The video above in more length and better quality:
And the full overview video of the entire package:
For your convenience, PuppetMaster also contains tools for automatic ragdoll generation and editing colliders/joints visually in the Scene View.
Cheers,
Pärtel