Make your own free website on Tripod.com
Tutorials
Home
Blank page
Our Services
Contact Us
New Page Title

handwave.jpg

Tutorial for an IK hand!!!

by Adrian Hoffman

 

This is a tutorial for an IK hand.  The basics of the tutorial were originally from Michael B. Comet’s tutorial on the IK design of a leg and foot.  A lot of the process was derived from and is given complete credit to Michael B. Comet.  I would like to thank him for the basis of the insights that led me to this model. 

 

I will assume that you have a basic knowledge of 3ds Max (pretty much where everything is located) and that you know how to read. 

 

The first thing that we need to do is create a basic hand.  You can use anything but for the first time you should use boxes.  I like to create one box, get the pivot set (more later) and then array it.  If you count the bones in your fingers you will find that you have 14 bone that define the joints and spaces between.  But, back to the pivot.  One thing that Mr. Comet neglects to mention and is one of the most crucial parts in order to set up the IK correctly is positioning of your pivots!!! Here we go.

 

 

Create a box that is more squareish and a little thin.  This is going to act as the palm.  Now, you notice how the pivots are in the center of the hand?  Well that means that is where the bone will be formed.  It would be more like a tettertotter than a palm.  So go to the hierarchy panel and go to pivot tab, select pivot only and move the pivot to the top center of the box. 

 

 

 

 

Now make a clone of that box and resize it to something that is smaller and more rectangular.  Array that by 14 copies and arrange the boxes so that they resemble a hand.  After that you should create two more boxes that will become the wrist bones.  By now you should have a series of boxes that look like this.  I know that this is a bit primitive but you can modify the boxes however you want later.  Now would be a good time to line up all of the finger boxes respectively with each finger so as not to get funky bone structure.  Also make sure that you adjust the pivots for the wrist bones just like the others.

 

 

 

Now we need a clean slate where every thing is set the same.  So highlight everything and go to the utilities tab.  Select resetxform then hit reset selected.  Now we need them mesh objects for exporting and such.  You could also incorporate a drape with sim cloth but that will be for another tut.  Go to the modifier tab, select edit mesh then select collapse stack.  By now my tut is looking a lot like Michael Comet’s.  That is because the major changes come after the IK bones are set up.  But to do that, we need dummies!!!!

 

 

 

You will need to create six dummies for this hand.  MAKE SURE TO CREATE THEM IN THE TOP PERSPECTIVE.  Everything that is done with the IK system is done in relation to the top view coordinates!!!  Name your dummies thumb, fore, middle, ring, and pinky for the fingers and one slightly larger dummy for the palm.  The palm dummy comes last but it is what makes the hand very easily animate-able (I love making up new words!!).  Your hand should now look similar to this.

 

 

Notice that the palm dummy is just out of the way right now.  That is the last dummy to be connected.  Now we need to do some serious linking!  I like to start at the pinky dummy and work in.  The general set up is to link all the fingers to the palm first, then the palm to the wrist.  I have shown the progression with numbers and arrows but I think it will be obvious what is going on.  Start with the dummies and make your way do the palm:  dummy-first bone-second bone-third bone-palm.  DO NOT LINK THE SMALL WRIST BONE TO THE LARGER WRIST BONE YET!!! We will link that later as a rotational and positional controller for the whole hand.

 

 

Now is when the magic happens.  Now we let 3ds max create the bones for our hand.  Make sure that you are on the create panel and click the tab for systems.  Choose bones and then click on pick root.  We will be making the small bone of the wrist our root for the bone tree.  Your hand should now have some really pretty bones in them.  Awww, look at the pretty colors:)  You must link bone 1 to the small wrist bone in order for you to manipulate the bones together.  Now you can grab the small wrist bone to see how things move and you will see that it doesn’t move like a hand at all...that all comes in the constraining of the movement of the bones.  Make sure to undo any movements that you do.

 

 

The first thing that we want to do is get our hand controller linked.  So  link the small wrist bone to the large wrist bone.  Next we want to UNlink the finger dummies from the fingers.  To do that just click on the dummies one at a time and hit the unlink button.  This will ensure that we can use them to create our end effectors which is the true power of IK. 

 

 

Again, lets start with the pinky, because once you do one finger it is just repetition until the thumb and wrist.

—- A word about the constraints.  Max uses global axis to determine the relative movement of the constraints.  So if you decided to create the boxes on the positive side of the axis then these number will work for you.  If you decided to create the boxes on the negative side of the axis then you will have to put a negative sign in front of them.  Max gives you a little semi-circle to show you movement of the constraints so if they end up funny looking then use the opposite numbers.

 

But first thing is first.  Highlight the bone that is going through the last box of the pinky and is connected to the dummy.  It should be bone 6 if you linked everything starting from the pinky dummy.  Under the motion panel  in the parameters section go to IK controller parameters.  In the thresholds section change the position and rotation thresholds to 0.  This makes for no variation in those constraints.  Under the solutions section change iterations to a high number, couple hundred will work, and change the end time to somewhere in the thousands.  The last is to make sure you have room to play.  If your computer boggs down too much when you are animating the hand then change the iterations to a lower number.  You can always raise it for a final production. 

Under the initial state section choose lock initial state.  Under the end effectors section click create under the position option. Then click on link and  choose the pinky dummy.  Now choose the last bones on the other four fingers and do the exact same thing.  What we just did was basically chose the dummies to control the whole finger that it is linked to.  Once we limit the rotation of the bones themselves, then we will have a very workable hand.

 

 

 

Speaking of which, let’s start our limiting.  Select the last pinky bone (6) again and open the hierarchy/IK panels.  Ignore everything else for right now except at the end under rotational joints.  For right now let us only worry about the opening and closing of a fist.  So turn off the y and z axis and limit the x axis from 3 to 170.  Also set the spring back to 5 and the spring tension to 0.3, this keeps the finger joints from locking up.  Now Highlight all of the finger bones separately EXCEPT FOR THE THUMB and limit them all the same.  You will see some strange rotations going on right now and that is ok.  These will work themselves out later.

Now if you grab the wrist to move it you will see that it works more like a hand.  If you wand to more detailed modeling then you can select the long bones running through the palm and give them a small z limiter along with the same x axis limiter that you gave the rest of the bones in the fingers.  I have chosen not to for this tutorial but the principal is the same.  However you must select the long bones going through the palm, bone 3, bone 18, bone 14 and bone 10 and limit the x axis to the same constraints as the rest of the fingers.  Now the only things that are moving funky are the thumb and the wrist.  First the wrist.  Limit the x axis of the small bone going from the base of the palm to the small box of the wrist, bone 2.  It can bend back further than a finger but it can not bend forward as far as a finger in total.  So use a from of -90 and a to of 90.  This limits the wrist movement of straight up and straight down relative to the rest of the arm.  Grab the wrist and see how this works.  Just make sure to undo all movements you do before constraining the thumb.

 

 

Aaahhh yes, I spent for ever trying to get the thumb to constrain correctly.  What makes it so difficult is that it is sooo versatile.  The first two bones are the easy ones because the tip of the bone only moves in the x axis.  It is the long bone that connects the palm to thumb that is the difficult one to get to move correctly.  First pick the first bone in the thumb and turn off the y and z axis.  Limit the x axis from –75 to 90.  Do this for the first two bones, bone 9, bone 8.  Now select bone 7, the long bone through the palm that connects the thumb.  Turn off the y axis but not the z axis.  Limit the x axis from 3 to 120 and limit the z axis from 0 to 90.  Now you will notice that the thumb has a kind of permanent crick in the joint.  Go back to bone 8 and limit the y axis from –45 to 90.  Go back quickly through all the bones and make sure that the spring back and spring tension is all set the same, 5 and 0.3 respectively.

 

 

Congradulations, you are almost done and my rear hurts from sitting in this uncomfortable chair for so long.  Anyway, the last thing that you need to do to make animating this hand a cinch is to link the finger dummies to the palm dummy (ha, bet that you had forgotten it even existed through all this).  DON'T LINK THE THUMB DUMMY TO THE PALM DUMMY, it doesn't like to work with the dummy.  Just animate the thumb seperately, which means there are only two dummys and the wrist to move for basic hand movements.  Make sure that you position the palm dummy on the inside of the hand, which was determined by which way you set the constraints.  Don’t set it too far or too close to the hand because you can get some pretty funky results if you do.  After that you are done.  Happy Animating.

 

 

 

 

Special thanks to Michael B. Comet.  Even though you have no idea who I am, you finally helped me figure out the mystery of IK.  Please don’t stop helping out the little man. 

Thanks,

Adrian Hoffman

 

 

 

 

Contact information:

bulsatar@yahoo.com

 

handwave.jpg

untitled1copy.jpg

cboxpivot.jpg

hier.jpg

hbox.jpg

untitled3.jpg

dummies.jpg

linking.jpg

bones.jpg

untitled4.jpg

fingerdummylink.jpg

motionpanel.jpg

endeffectors.jpg

activeaxis.jpg