NokiMo
Paul Strong
Paul Strong

patreon


One-click TF Rig Solved!

FINALLY... I solved the puzzle I've been working on for months! Erm, worked on when I've had the mental energy to try. I'm no Maya guru, but I will claim this as a level-up.

The goal was to create a one-click-does-it-all script that would simplify rigging for "TF" meshes that transform shape. As I've mentioned before, I use mesh "blend shapes" to represent stages of a transformation, but when you drive a mesh using joints, and the mesh blends to a new shape such that the joints need to move, Maya (and all 3D software I know of) won't allow you to change the positions of joints without creating unwanted deformations.

For Vince, I figured out a cumbersome way around it (using "joint rotate pivots"), but it was quite painful and error-prone, and the resulting rig was unnatural to work with because the joint controls stayed in the initial position and didn't visually move along with the rig. Naturally I've dreaded having to build another rig like that for animations.

I did come up with a partial solution later that simplified it a few months ago, but it still took a number of steps and it was just as messy to work with when animating. I wanted something better, but I couldn't figure it out back then.

Now I have finally figured out the matrix math needed and come up with some tricks using a couple of barely-documented Maya node properties to get exactly what I wanted.

Take a quick look at a simple demo showing it working:

VIDEO: https://r2y.com/vid/joints-rig-solved.mp4 1080p 60fps

In the video, the arm grows in length using a blend shape. The joints moving inside may seem like nothing special, but it actually is quite unusual because the joints are not what's making the arm grow. The arm has an initial shape and a "transformed" long shape, and it blends between them on its own. When using blend shapes, normally the position of the joints would sit still and the arm would grow away from them, and when the joints are animated they would bend the mesh from the wrong places and distort it badly. If you try to move the joints along they stretch the arm twice as long and it distorts even worse.

My joint positions have to be dynamic. 3D software and game engines don't support dynamic joint adjustments out of the box because, well, who would want to have a mesh change shape while being animated? Oh, TF animators would.

Initially I created "nodes" manually in Maya to get what I wanted, but that took a lot of trial and error. Here I use a second skeleton to animate the joint adjustments, which is easy to manage through the animation workflow. A bit of matrix math is done in these nodes, a couple of multiplications and inversions to convert from one local space to another to build adjustment matrices, and I feed those into some special joint and "skin cluster" properties in Maya.. that are not documented... and few people seem to know about them.

Once I got it working, I wrote a Mel script to hook up everything with one click. The result looks like this for the demo, just five joints:

Most of what is created are the purple nodes. My rigs tend to be 50+ joints which would be a lot of nodes, but I won't have to do any of this work. And that's the win here. Now I just need to remove the mental block that has been such a hang-up for me taking a sculpt to the next stage.

I'm so happy, it's time to celebrate 🎉... and I hope your weekend will be as great as mine will be, ha ha!

Thanks everyone.

Paul

One-click TF Rig Solved!

Comments

Wow so cool!

eliswansigurado

Maybe one day your ideas can be used in films to make super realistic tf’s

preston

Well I am not a ‚techy‘ but can clearly see where this is going! Great job! Hope to see some less ‚innoscent‘ samples soon 🤣

Cock69

Your brain is fascinating. 😁

zack stantz

This is so exciting!

Sharky

P.S. Special thanks to @mostlyhuman for the many ideas and encouragement that helped get this done!

Paul Strong


Related Creators