Hey all, I spent quite some time last night figuring out how to build a puppet completely from scratch with custom animation, and some of it's not very intuitive so I thought I'd share what I was able to discover.
If you want to do anything off the beaten path, like puppets with more or fewer than two legs, wheely robots, clay-mation characters (one sculpture per frame), etc but still want to take advantage of Mm's excellent character controller physics, you should consider starting from an empty puppet and using custom animations.
Follow along, and try entering play mode at various points to see how each change interacts with the puppet's physics.
Create a Basic puppet, and scope into it.
Tweak the puppet by pressing L1+Square on the circle around the puppet's feet. From now on this is how you'll tweak the puppet.
Disable procedural animation and procedural walk. I believe this is under the menu with the gears icon, but I don't recall exactly. It's at the very bottom of one of the tabs.
Once procedural animation is off, many of the puppet's settings and Puppet Interface gadget outputs will become useless to you, such as the upper and lower body sections, footstep events, etc.
Starting from the outermost limbs, delete all the puppet's parts. You have to press Triangle twice to delete a part, because the first triangle press puts you in a "Reposition Joint" mode, as all the limbs are connected together using ball joints and bolts.
We'll be creating new body parts and connecting them with joints.
Create a sphere or some other basic sculpt that will act as your character's body, and scope out once so you're back in the puppet.
Tweak the Puppet (L1+Square on the circle on the ground again) and go to the tab with the person icon. It's to the right of the upper and lower body tabs.
Click the hips button and connect the hips to the sculpt you created.
This seems to be important so Dreams knows to move the sculpt using the puppet's motion, though I'm not completely sure if this is necessary.
I think assigning more than one sculpt in this menu is unnecessary, and it seems like assigning a leg here will prevent the leg from being animatable.
Go to the physics tab, and change the vertical position of the puppet collider, the radius, and the height of the capsule to suit the type of character you want to make. If this is positioned far above the ground, it will cause your character to move up huge vertical gaps like they were stairs, so make sure it's touching the ground unless that's what you want.
Tweak your sculpt to disable colliision. Any sculpts that can collide with the character controller's capsule will cause your puppet to be able to stand on them and jump in midair or get otherwise pushed around, so you should be disabling collision on most sculpts, or at least tweaking the collision filters so the sculpt doesn't collide with the puppet's capsule.
Create another sculpt for a body segment such as a belly, or a limb such as an upper leg.
Connect it to the "hips" using a joint. Make sure the joint starts at the hips and goes to the new body part. This is usually a Ball Joint, but sometimes a Bolt if you want to restrict the range of movement (elbows, knees, robots with pivoting parts). The start and end points of the joint don't actually matter, all that matters is the pivot location.
Tweak the sculpt to disable collision.
Grab it and move it around to test the range of motion. Reposition the joint as needed to get the motion you want.
Note that from this point on, entering play mode will result in a floppy hanging limb, so you may want to create a keyframe with your default pose in it and just set it to always active until you start animating. I don't think ball joints have a way to make the limb not floppy, even if you tighten them all the way up, so just leave the joint loose and use a keyframe instead.
Repeat the last three steps as necessary, connecting parts to other parts to create your desired body shape and making sure your ball joints and bolts have the desired range of motion. Always make sure they have collision disabled so they don't hit the Puppet's capsule collider shape.
You may want to create invisible body parts if you need more range of movement. For instance, if you attach an arm directly to an upper body, your character won't be able to shrug. You can solve this by adding a shoulder segment, even if it's invisible.
You can create hidden sculpts and show or hide them to get animations that would be impossible with just jointed motions, such as facial expressions. Instead of creating just one sculpt, create multiple and group them together before connecting the joint. Groups that are made physical should move as one object. You could also use this if you wanted to make a character using purely hand-crafted animation (pixel art, clay-mation, or painted animation frames).
For some reason, assigning body parts as legs or feet seems to prevent me from animating them.
I haven't tested how keyframes interact with reconfiguring the joints after they are created, and I've had issues with a timeline that wouldn't update my character's pose until it played for a few seconds, so there's definitely a lot more experimentation required in the animation department.
Please sign in to leave a comment.