PuppetMaster - Advanced Character Physics Tool [RELEASED]

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

34 Likes

Looks like another great tool in the set.

2 Likes

Hi Pärtel, that looks great! I especially liked seeing it combined with IK. But where do you see the differences between your product and kavorka’s PBC?

Hi Pärtel,
This seemed like a nice complement to FinalIK.
It would be nice if FinalIK users can upgrade to this asset :wink: (like RTP users to Uber).

Wish you a great success and good luck with the remaining 5%!
Cheers,
Michael

Hey, thanks! :slight_smile:

I have not used Kavorka’s tool, so I’m not sure if I’m right, but the philosophical difference seems to me that PBC is some kind of a physically or at least semi-physically simulated character controller, whereas PM is more like a low level framework that you can apply to any character controller (your own or the one provided in the package). It has been designed as such to allow for expansion in the future, adding more intelligent behaviours like Stagger, CatchFall, Windmill and so forth… There is even a template behaviour so you can make your own. :slight_smile:

Thanks for the wishes!
It is not really a complement to FinalIK, actually it could be even thought of the other way around, they are quite similar in weight. Final IK handles the kinematics, PM handles the dynamics so they are both brothers of the same mother of procedural animation. :slight_smile:
But I’ve been thinking of making a “RootMotion Creative Suite” or something that incorporates both.

Tom Jackson, the creator of Surgeon Simulator has been helping me test this thing in their upcoming game Worlds Adrift, here’s a quick example.

2 Likes

Looks fantastic! When your tool creates colliders, are they standard so that I can use them with Unity 5’s cloth and skinned cloth?

Yes, they are just standard Unity colliders.

Ragdolls are so funny lol

This is looking amazing! Superb job man.

1 Like

Can character try to regain balance after its lost based on some conditions ?"
Or can it try to grab something , when falling ?

How does it look when you add a keep-upright constraint to the hip bone of an active ragdoll doing a running animation?

You mean like stagger for a few steps and try to regain balance not fall down?
This is the most complex behaviour to code, but theoretically it can be done, the framework was designed for stuff like that to be added at some point and I will definitely try in the future to make it happen.

Grabbing something I think is much easier, can be done with IK adjustments to the target pose or stuff like hugging grab can be done with just animation.

Bit weird. The feet would keep colliding with the ground as you’d expect, would probably be better to also keep the feet pinned to animation.

Is it okay to mobile gaming? I would like to know about the mobile performance

This looks cool! My obvious question is: does this only work for bipeds? I initially assumed it would be biped-specific, but other than the ragdoll-creator i didnt see any biped-specific stuff in the overview video, so now I’m hopefull :slight_smile:

Yes , like procedural behaviors in NaturalMotion Endorphin-Euphoria .
By the way , here are some links that can interest you ( with source code to look ) :
http://www.cs.ubc.ca/~van/papers/Simbicon.htm
http://www.cs.ubc.ca/~van/papers/2010-TOG-gbwc/index.html

Regards.

This looks great Partel.
I remember building a similar setup some time ago but there were a few problems. First, very fast animations could not be catched up by the physics system so the results looked nothing like the animations. And if an animation results high inertia movements like a butterfly kick, the results were a bit disappointing. Have you tested the system in similar cases?
Looking forward to try it…

This is kind of a silly idea, but do you think you’d consider realeasing an “Early Access” version of the asset that people could buy to test it out early? This looks absolutely fantastic!

Cool. Does this have Grounder like Final IK?

I was more interested in seeing what would happen if the hip was also un-pinned… The idea of an active ragdoll walking around under its own motive force is really cool.

We could then start judging different animations for their ability to actually move the character :smile:

I made a java applet a little while ago to prove the concept: http://www.openprocessing.org/sketch/84256 (though Java seems to be an antiquated protocol now (I had to use IE to see it), I think you’ll find it pretty interesting with respect to Puppet Master).

It is OK to have a couple of active puppets. If you can have a ragdoll in your mobile device, then you can think of having an active puppet as having 2 ragdolls or something like that.

Thanks!
It works on any creature. The ragdoll creator is specific for bipeds (as of now), but actually it too can be quite helpful for setting up other creatures as long as they have at least 4 limbs. The RagdollEditor works on all creatures as well.

Hey, thanks for the links, I’ll take a look :wink:

It’s quite OK to make fast animations when the puppet is pinned. Actually the BehaviourPuppet (which you see acting in the preview video) only blends in mapping when there is a contact, so most of the time you’ll have 0 animation accuracy loss.

It will be released as a Beta if that’s what you mean. It still has a long way to evolve so you can consider it “early access” sort of… :slight_smile:

No, but you can easily use the Grounder of Final IK with it.

Cheers,
Pärtel