PDA

View Full Version : Free Automated Hand Rig for max


joconnell
07-19-2005, 12:18 PM
Heya Folks,

I've been working on an automated hand rig for max as part of a larger Automated Rig I'm setting up in house so I wanted to get peoples feedback on how the system works and what improvements can be made to either its interface, functionality or coding - I'm relatively new to automated character setup and maxscript and unfortunately have no one else in the company to provide feedback on some of the aspects so any comments are very welcome!

http://www.joconnell.com/MXS/handmaker.gif

The script itself is available at http://www.joconnell.com/MXS/MakeFingers_19.ms and there is a short windows media 9 screencap of its operation at http://www.joconnell.com/MXS/handmov.wmv .

To give you a head start on how it works, you type in a name for the character which is used for the various parts of the setup, the number of fingers you want and the number of joints you want in each finger.

Next you press the make points button which will generate a set of helpers that are position relative to the joints in your characters hand. It takes the length of a hand bone object you select and bases the positions of the helper objects on this. The Helper points are limited to only rotate on certain axis so you can't accidentaly make the fingers go all warpy and twisty.

Lastly you press the make bones button which then threads a set of bones through the helper points, assigns the bones controller, makes a helper shape and parents them all onto the original hand bone object.

When the hand is set up, it has three levels of control. The Rectangle floating above the hand bone is a master overall movement controller - if you rotate it horizontally it will make the fingers and thumb splay out in one go, if you rotate it up and down it will make all of the fingers and thumb curl to make a fist in one go. The first joint of each finger starting at the knuckle is an overall up and down controller, the second joint allows you to curl the rest of the finger in one go. In theory this means if you wanted all of the fingers to make a fist but one to point you can rotate the master controller down into a fist, use the first joint of the finger you want to point to rotate it out of the fist and the second joint of the same finger to uncurl it.

What I'm trying to do is have a system that's fast to set up with as many controls that make sense and allow you to animate things as quickly as possible with a minimum of keyframes. Again I've never worked in a large animation studio so I don't know what setups are generally used so If there are any really streamlined animators that have thoughts on functionality or any maxscripters that can look at my functions / coding flow and give tips on improving it that'd be fantastic!

Also just wanted to thank Paul neale as a lot of the ideas are based on his rigging dvds and Marcus tsang for the pointers on the controller assigning.

PEN
07-19-2005, 03:05 PM
That is looking good John, and thanks for the thanks;)

Looks like a slick way to work with the hand. I do tend to prefer Ca's but I always use my attribute holder so that I can store poses, will you be adding any functions like this?

I'm not sure that the point helper step is all that nessesary, why not just build the bones and rotate them into place?

Oh, and thanks for sharing, good to see that many people do this.

JHaywood
07-19-2005, 03:42 PM
I'm a little short on time right now, but I'm looking forward to seeing your rig in action. Using the bones themselves as quick curl controls sounds interesting.

And if it helps, I created a very similar script type of script a while ago. It's available on my site and isn't encrypted at all, so feel free to open it up and pick it apart.

Here it is: http://jhaywood.com/maxScripts.htm

Scroll down to "Hand Control Creator", where you can see a screen shot and some instructions. It works on a pre-built hand skeleton, and uses the CA approach, like Paul mentioned. It also uses his Attribute Holder to store poses, which I think is really the key component to a hand rig since it makes it so much quicker to animate.

joconnell
07-19-2005, 04:05 PM
Heya Paul, the helpers were mainly because I haven't looked at the reset scale functions in bonetools yet - you're right though, it'd cut out a stage of the generating so that goes high into the to do list.

I tried a ca based system on the previous rig we used here and it seemed to have a lot of problems when you tried to merge animation or merge objects from an earlier / later scene which contained earlier / later versions of the exact same ca definitions - they had this habit of unwiring the modifier sliders from the bones they were wired to - The viewport controller / object based system seems a little more robust to me in this case - A lot of it could be solved by educating people in how not to break the rigging but it'd be nice if it didn't happen in the first place.

I'm wondering about the pose storing system - Since there's four rotation controllers on each of the bones there's a load of different ways to achieve the same pose - how does the attribute holder configure itself to each objects controllers? Is this an automated process or does it recurse through each hierarchy and make an array of the objects and their respective controllers?

I want to change over the wiring stuff into script controllers instead as it'll make it easier to limit overshooting of poses so I'll probably be hassling you as regards node store and character rig database type stuff soon so I can save a copy of the hand rig parameters on the helper shape. Mainly I'll be using this as a way to export keyframe data to text files in a controlled environment (merge animation is a little clunky for me) - I'm messing around with setting up a max to XSI pipeline built on controlled rigs and keyframe data swapping scripts.

Pretty soon I'll be sticking out an automated rig tool - it's pretty much a click and drag rig based with a few configurable options (nothing really slick like changing bone count on the fly just yet) so hopefully it'll be more viable to play around with and get feedback rather than just a hand rig...

Any word on the advanced rigging dvds? Always nice to see what evil planes you have concocted :)

joconnell
07-19-2005, 04:15 PM
I'm a little short on time right now, but I'm looking forward to seeing your rig in action. Using the bones themselves as quick curl controls sounds interesting.

And if it helps, I created a very similar script type of script a while ago. It's available on my site and isn't encrypted at all, so feel free to open it up and pick it apart.

Here it is: http://jhaywood.com/maxScripts.htm

Scroll down to "Hand Control Creator", where you can see a screen shot and some instructions. It works on a pre-built hand skeleton, and uses the CA approach, like Paul mentioned. It also uses his Attribute Holder to store poses, which I think is really the key component to a hand rig since it makes it so much quicker to animate.

Heya James - I'll have a look at that tonight - I'd say there's lots of nice bits of clean code in it.

In my case the Tool is actually generating the rig as well as setting up all of the controllers - it bases a lot of the bone lengths on a user selected hand bone too as a sneaky first guess. I'd love to get your feedback on it at some point - I'll hopefully be releasing a full rig soon so that should be a lot more fun and accessable to play with.

eek
07-23-2005, 05:50 PM
Hi John,

Nice pipe,

If you make the bones use a script controller that does a look up at a cadef - it means you can tweak how each finger curls, meaning you could set this up for lots of characters and have them all tweaked differenly.

Maybe as you build the rig it creates a cadef with it called charactername_def, then you could tweak it. Im building little tools like this now, that lets you tweak,redefine and add new defs. It makes the system very flexible as multiple tds around a studio could look at one resourse dump of defs -ala server. I think we talk about this stuff while i was over at SS.

eek

joconnell
07-24-2005, 02:59 PM
Heya Charles - Will have a look at this next - I'm gonna read up Paul and martin breidts stuff on node store in the next few days and start transitioning over to script controllers - It's on the to do list at the moment but It'll be after the full working first version of the ss rig - I've gotta get something out that the guys here can use in the mean time (Won't be a compromise but as you say, not quite as flexible). Hopefully we can sort out some kind of collaborative resource for this stuff soon to get the best aspects of everyones systems.

Cheers for looking at it :)

CGTalk Moderation
07-24-2005, 02:59 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.