home     animation     modeling     technical     non-cg     tutorials     about     links     contact 
       
 
 
     
 
IMPORTANT NOTE: This tutorial is exactly the same as this one written by Olli96, which in turn got the technique from Sergio Muciño. I just re-wrote it focusing more on the background then on a step-by-step procedure. You must have a good knowledge of Max, although the wiring and constriant procedure is explained step-by-step with pictures.
 
     
 

- The idea behind it all is to make 3 arms, one to drive the skin, which is not going to be animated, another IK arm and the FK arm. We link the bones to the IK arm and constraint the IK arm to the FK arm. The blend is made wiring the weight of this constraint to a custom attribute (that can actually be anywhere).

- Basic stuff. Bones laid out with ik "bones". These ik.left.*, which are just points, are aligned to the bones, then linked as it shows.
- IKChain applyed to them, link the correspondend bones to the points.
- This is background stuff, it won't be keyed. The bones will be used to drive the skinning while the "ikbones" (the points with the IKChain) will be used to drive the bones.
- When you place de IKChain it will probably twist because the swivel angle is set to Start Joint, which gets the angle from the "left.shoulder" bone. Change it to IK Goal for now, you can change it back later. If you haven't yet, read and understand the white paper about the swivel angle in Max help files, it's usefull.


 
 
 
 




- Now place the controlers (which I always end with CTRL). The red ones are FK controlers. They will act both as the FK rig and as controlers of it.
- Align them with the IKbones and the FK shoulder with the shoulder bone.
- Create the IK controlers, one for the hand and another for the elbow. Align the elbow with the "left.ikbone.forearm" and pull it away a bit in local coordinates.
- Link them in the hierarchy as the figure.
- SUGESTION: If you want to Freeze Transform the controlers you need to do it now. I strongly advise you to. (alt+RMB over selected objects.)
- Now you should be able to control the arm with the "left.ik.arm.CTRL" while the FK controlers are still free.

 
 
 
 




-
In the "left.ik.arm.CTRL" add an Attribute Holder modifier.
- Add the IK/FK blend track with the Animation/Parameter Editor. Use the configuration below (which is the default anyway, the only important part is the Name of the attribute/track).
- This is where we are going to wire all the weight constraints to go from controling the ik arm to the fk arm.

 
 
 
 




- Now we will constraint the ik arm to the fk arm, and then later control the weight of this constraint with the IKFK track. The idea is that the FK arm will be the master, but with the IKFK track we can turn on and off this influence.

- Select the "left.ik.arm.CTRL" and add a position constraint it to "left.FK.wrist.CTRL". You can add this in two places, automatically in Animation/Constraints/Position Constraints; or manually going to the Motion Panel, in the controller/track listing, under the position tracks, select Available/Assign Controller/Position Controller. You should be able to control the IK arm with the FK wrist control now.
- Select the "left.ik.elbow.CTRL" and add a position constraint to the "left.FK.forearm.CTRL".
- You should have a FK arm by now. Rotating any FK controller will rotate the arm as wanted. We need to be able to go back to IK.
- Wire the position controller weight from the "left.ik.arm.CTRL" (the arm IK controller) to it's own the IKFK custom attribute. This wiring is not showing in the image below because it's from one attribute/track to another in the same object. To do wiring, you select the object, RMB for the quad menu, Wire Parameters, and from the menu that popups (with the available tracks for the object) you should find these ones. And in the Parameter Wiring Dialog you should do this. It's not on the scope of this tutorial teaching how to use wiring, so if you haven't done this yet try to get used to the Parameter Wiring Dialog, it's not that complicated.
- Do the same with the elbow control (left.ik.elbow.CTRL), wire it's position constraint weight to the IKFK custom attribute at the arm controler.
- And now, if you did all of this with the arm in the position of the pictures above, start from scratch with the arms in T pose (like in the picture below). If your character is not on T pose, just take care to reposition the bones without changing their size, so you can place the bones inside the mesh after you've rigged the arm. You will also need to recreate all controlers you had freezed transform. This is because if you do all this setup in more than one rotating axys, things go weary when you use the FK arm.
- That's it.