© Purushothaman Raju 2019
P. RajuCharacter Rigging and Advanced Animation https://doi.org/10.1007/978-1-4842-5037-2_4

4.  Bones Rigging

Purushothaman Raju1 
(1)
Bangalore, Karnataka, India
 

In the previous chapters, we learned about the principles of animation and animation tools in 3ds Max, and we looked at advanced animation using constraints. In this chapter, we look at creating custom rigs to drive our animation using bones. We will begin by understanding how bones are deployed in 3D and then look at setting up a structure of a human using them. We will then learn to drive a human mesh and skin animation using this rig of bones. Although Chapters 5 and 6 revolve around preset rigs that are shipped with 3ds Max (Bipeds and CAT), this chapter will give you a foundation of how a rig structure works and how to set one up using a guided approach.

Bones

In essence, bones are deformation tools. They are used to drive and deform the mesh attached to it. For instance, think about your hand. Your bones and bone joints determine where the hand bends and twists. We will emulate that in 3D using bones. Bones can be created from the Create panel, by choosing Systems ➤ Standard Rollout ➤ Bones. Alternatively, bones can also be created by accessing the Bones tool in the Animation menu and choosing Bone tools. See Figure 4-1.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig1_HTML.jpg
Figure 4-1

Create panel’s System tools (left) and Bone tools (right)

It is always best to create bones in orthographic viewports and not in perspective view. Once you click on bones in the rollout, you can switch your view to any orthographic viewport. Orthographic viewports are the top, bottom, front, back, left, right viewports.
  1. 1.

    Click and move your mouse to create your first bone (in my case, I use the left viewport).

     
  2. 2.

    Now move your mouse again and click to form the second bone. Note that the bones are created as a chain. Clicking further and drawing bones makes them the child of the previous bone.

     
  3. 3.

    End the bone creation mode by right-clicking. When you’re done, a bone end is created.

     
  4. 4.

    Create a simple leg setup (as shown in Figure 4-2) and notice the hierarchy in the Scene Explorer. The first bone you created is a root and the subsequent bones are child bones of the previous one.

     
  5. 5.

    You can load the Bonechain_Start.max file from the scene files provided with this chapter. Scene Explorer can be opened by going to the Tools menu and choosing All Global Explorers ➤ Scene Explorer.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig2_HTML.jpg
Figure 4-2

Bone chain and hierarchy

Note

Bones are not renderable by default, as their primary use is to deform an object. But they can be made renderable if need be.

Now let’s look the options available while creating the bones.

When you click on Bones in the creation rollout, you have these options:
  • Bone Color: This will determine the color of the bone in the viewport. This is for organizational or aesthetic purposes, when you want a bone to be rendered in a different color. When you begin creating a bone, you can assign it a color, or you can select each bone and go into Modify and color them later according to your needs or wishes.

  • IK Chain Assignment: We will not be covering this option at this point, but will in later chapters.

  • Bone Parameters: These parameters determine how your bone is going to be in terms of size, shape, etc. The same parameters are available for each bone in the Modify panel.

Let’s use the BoneChain_Start.max file and look at the properties that we can manipulate. Load Bonechain_Start.max and select the top bone. Go into the Modify panel, which is the second tab in the control panel on the right side of your screen. See Figure 4-3.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig3_HTML.jpg
Figure 4-3

Bone parameters

Note that you can rename a bone by typing the name of your choice to identify the bone for ease of use. It is always good practice to rename bones and you can also change the color of the selected bone in the Modify panel. (Refer to Figure 4-3.)

Let’s get into the bone parameters now. Select the top-most bone and name it thigh_bone:
  • Now with the thigh_bone selected, adjust the width, height, and taper to see the difference. The width and height make the bone wider and the taper (when set to 0) makes the ends of a bone the same size. The start of the bone is currently wider and it tapers out as it ends.

  • Fins help you create variations in bone types.

  • Load BoneChain_boneparameters.max to see some variations done to each bone.

The thigh_bone is our root parent and the other bones are child. You can select all the bones at once by double-clicking on a bone. In this case, double-clicking on thigh_bone will help you select all the bones.

Creating a Skeletal Structure

In this chapter, I provide you with a scene called Human_Start.max. This file has a model generated from free software called Makehuman. You can use this file to continue or use another model downloaded from the Internet or other character generator software. We will be using this model as a reference to lay out our bones. See Figure 4-4.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig4_HTML.jpg
Figure 4-4

Character in a t-pose

Note

I want to direct your attention to a couple of things. It is good practice to follow these guidelines. The character is in a pose called a t pose, and it’s ideal to have your model posed in this manner. It helps in setting up weights and makes the rigger easier. Once rigged, the character can be posed any way you like. The character is symmetrical, which helps a lot. You can set up structure on one side and mirror it.

Let’s begin rigging a character with bones from scratch:
  1. 1.

    Fire up 3ds Max and load Human_Start.max.

     
  2. 2.
    Go to the Tools menu and choose All Global Explorer and Layer Explorer. See Figure 4-5.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig5_HTML.jpg
    Figure 4-5

    Scene Explorer

     
  3. 3.

    First select your character in the viewport and click on the new layer. Call it meshes. If your model was selected, as it should be, it will be moved to the new layer named meshes. If not, drag the character mesh from the layer into the newly created mesh layer. We will not be doing anything to the mesh at this point so let’s freeze this. You can do this in the layer, where there are three options—Freeze, Renderable, and Display. Click on Freeze for the meshes layer. Your mesh should no longer be selectable.

     
  4. 4.
    Create a new layer called Bones. If you had another layer selected, the newly created layer will become the child of it. You can drag it below the list to “unchild” it. See Figure 4-6.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig6_HTML.jpg
    Figure 4-6

    Scene Explorer, layer management

     
  5. 5.
    With the Bones layer selected and active, go into the side viewport and draw the bones for the leg, starting from the hip to the foot. See Figure 4-7.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig7_HTML.jpg
    Figure 4-7

    Leg Bones reference

     
  6. 6.

    Be sure to add a bend in the knee, as this will help the software calculate the rotations of the bone. If you notice in the front viewport, the bone will be in the middle. Select the thigh_bone and move it into position. Then rotate as needed.

     
  7. 7.

    Select the bones and rename them R_thigh_bone, R_ankle_bone, R_foot_bone, R_toe_bone, and R_ bone_end.

     
  8. 8.
    A checkpoint file has been created called Human_Start01.max.
    • You can recreate another leg using the same process, but let’s use the software’s built-in feature to replicate the other side for us.

     
  9. 9.

    Go to the Animation menu and open the Bones tools. If you need to realign the bones, click in Bone Edit mode and select the bones and move them. Do not move bones with the Move tool without the Bone Edit mode on. Once you’re happy with the position, disable Bone Edit mode by clicking on it.

     
  10. 10.

    Select the L_thigh_bone and double-click on it to select the entire chain.

     
  11. 11.
    In the Bone tools, choose Mirror and leave the defaults. We want the mirror to happen on X. Use the offset to position the chain correctly. Once it’s set in position, click OK. See Figure 4-8.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig8_HTML.jpg
    Figure 4-8

    Bone Mirror tool

     
  12. 12.
    Notice in the Layer Explorer that the bones are named with the mirrored suffix. Don’t be alarmed if you don’t see the hierarchy here. We are in layer mode so we are seeing objects in layers, despite the hierarchy. See Figure 4-9.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig9_HTML.jpg
    Figure 4-9

    Scene Explorer (Layer and Hierarchy view)

     
  13. 13.

    Note in Figure 4-9 that I renamed the Left leg bone with the L_ prefix. The Bone tools has an option to do this, but that would be beyond the scope of this lesson.

     
  14. 14.

    A checkpoint file has been created called Human_Start02.max.

    If you have been following along, you can continue with the working file or load Human_Start02.max to follow along from this point. See Figure 4-10.

     
  15. 15.

    Go into the left viewport and create a bone chain from the hip to head. We are not looking at facial rigging at this point, so let’s up to the head. If you’re going to do facial rigging, you will stop at the neck. Also when you create a new bone, don’t click too close to an existing bone, as they will become one chain. We want to keep them individual for now.

     
  16. 16.
    Rename the bones spine01_Bone, spine02_Bone, spine03_Bone, neck_Bone, head_Bone, and Head_end_Bone.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig10_HTML.jpg
    Figure 4-10

    Spine Bones reference

     
  17. 17.

    A checkpoint file has been created called Human_Start03.max.

     
Let’s move ahead and create the character’s arms. Continue with the steps or load Human_Start03.max and follow along:
  1. 1.

    In the top viewport, click on the shoulder area and begin creating your arm bone setup with L_Shoulder_Bone, L_Arm_Bone, L_Forearm_Bone, L_Hand_Bone, and L_Hand_End.

     
  2. 2.

    Once you have created the front viewport, select the root bone (L_Shoulder_bone) and position it. Use the Bone Edit tool to reposition other bones as need be.

     
  3. 3.

    Now let’s repeat the steps for the legs and mirror them.

     
  4. 4.

    Select the L_shoulder_bone and double-click it to select all its children bones.

     
  5. 5.

    In Bones tool, use the Mirror option to give it an offset value and position it accordingly.

     
  6. 6.

    A checkpoint file has been created called Human_Start04.max.

    Now let’s continue creating the fingers for our hand. If you have been following along, continue the guided approach or load Human_Start04.max.

     
  7. 7.

    In the top viewport, begin creating the fingers for the hand, as shown in Figure 4-11, Be sure not to click near an existing bone, as they will connect. Adjust the finger bone size accordingly.

     
  8. 8.
    Once you have created the five fingers, note that they have been positioned on the World grid. Select the newly created bones and move them into position so that they are exactly inside the mesh. Tweak them using the Bone tools if need be. See Figure 4-11.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig11_HTML.jpg
    Figure 4-11

    Hand bones reference

     
  9. 9.
    The next step is to rename the finger bones to avoid confusion. In my case, I named them as follows:
    • Thumb: L_thumb0, L_thumb1, L_thumb2, and L_thumb_end

    • Index: L_Index0, L_Index1, L_index2, and L_index_End

    • Middle: L_Middle0, L_Middle1, L_Middle2, and L_Middle_end

    • Ring: L_Ring0, L_Ring1, L_Ring2, and L_Ring_End

    • Pinky Finger: L_pinky0, L_pinky1, L_pinky2, and L_pinky_end

     
  10. 10.

    Once you’re done with the left finger, select the fingers and use the Bone Mirror tool to mirror to the right side, as we did for the hands and legs. Rename the fingers with the R_<finger name> format that we used for the left hand.

     
  11. 11.

    Be sure to position the bones to match the anatomy of the human model that we are using. This will save you a lot of time later.

     

To summarize what we have done so far, we have created two leg chains for each leg, a spine bone chain that runs to the head, and two arm chains that start from the shoulder and end at the palms, as well as a total of 10 finger chains for the hands. If your character has feet and toes, you need to add the toe bones in a similar manner to what we did for the hands.

Proceed further once you are familiar and comfortable with what we have done so far. I recommend you redo the process by either following along and doing it again or practicing on your own.

We haven’t created a hip bone yet, so let’s create one and then begin linking the chain. In the side viewport, click and create a hip bone and end it. We just need one bone to serve as our hip. Use the reference image in Figure 4-12 for guidance.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig12_HTML.jpg
Figure 4-12

Pelvis bone reference

Rename the bone Hip_Bone and the end bone Hip_endbone. A checkpoint file called Human_Start05.max is saved in the scenes folder for your reference.

Bone Chain Hierarchy

In the previous section, we created bone chains to mimic the human anatomy. In this section, we look at taking all those individual chains and linking them. We link them so that when you animate one chain, there is an effect that is perceived to connected bones of the other chain, as in the real world.

Let’s begin by linking the bone chains to one another.
  1. 1.

    Select the root bones of the fingers (L_thumb0, L_index0, L_middle0, L_ring0, and L_pinky0). You can hold the Ctrl key down and select bones to add to the existing selection. (The Shift key is used to duplicate objects in 3ds Max.)

     
  2. 2.
    With the bones selected, choose the Link option from the toolbar (see Figure 4-13). Your cursor will change because the software is looking for your input to choose another bone.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig13_HTML.jpg
    Figure 4-13

    Link tool

     
  3. 3.
    Now with the bones selected, click on the Link tool and drag from any of the selected bones to the L_Hand_Bone. Release when it turns to yellow. (See Figure 4-14.)
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig14_HTML.jpg
    Figure 4-14

    Fingers to hand link reference

     
  4. 4.

    If you select the L_Arm_Bone on the left side and rotate, you should see that the fingers are moving along as one chain with the left hand now. Undo any rotations you did.

     
  5. 5.

    Select the root bones of the fingers ( R_thumb0, R_index0, R_middle0, R_ring0, and R_pinky0).

     
  6. 6.

    With these bones selected, choose the Link option from the toolbar. Your cursor will change because the software is looking for your input to choose another bone.

     
  7. 7.

    Now with the Link tool selected, choose the R_Hand_Bone.

     
  8. 8.

    Test the right hand and then undo any rotations you did for testing.

    Note You could have also done the linking for one hand and then mirrored the entire arm, which works as well.

     
  9. 9.

    Let’s link the shoulder bones to the spine. In this case, select L_Shoulder_Bone and R_Shoulder_bone and then select the Link tool from the toolbar.

     
  10. 10.
    With both bones selected and Link tool active, click on the Spine03_Bone. See Figure 4-15.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig15_HTML.jpg
    Figure 4-15

    Spine to shoulder link reference

     
  11. 11.

    Rotate the spine03_bone. You should see that the entire arm chain follows along based on the rotation axis. Notice how we can create human poses by linking these chains. Again, as usual, undo any rotation changes you made so that the bone fits back perfectly inside the mesh.

     
  12. 12.

    Let’s move ahead and connect our leg and spine chains to the hip. By now you should have an idea of which bone needs to be connected for this. Follow along to see if you are right.

     
  13. 13.
    Select L_thigh_bone, R_thigh_bone, and Spine01_Bone and use the Link tool to connect them to the Hip_bone. See Figure 4-16.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig16_HTML.jpg
    Figure 4-16

    Legs to pelvis link reference

     
  14. 14.

    Once you have linked the bones, you should be able to reorient and reposition the entire bone chain as needed. At any point if you need to move the entire bone chain, select the Hip_bone and reorient it as needed.

     
  15. 15.

    A checkpoint file has been created called HumanStart06.max.

     

The approach of setting the bone structure is the same even if your character is a dinosaur or a dog. Mimic the bone structure and parent it as per the anatomy of the model. We have created a bone structure, but this is still not a complete rig. We need to get this animation ready using IK and FK techniques. Let’s look at setting them up in the next section.

FK/IK

In this section, we look at the most common terms that animators use—FK and IK. We will begin by understanding what FK and IK are with a simple guided example, and then we look at using these techniques to create a bipedal rig part by part.

What Are IK and FK?

FK and IK are animation techniques that determine how the computer will calculate motion. FK stands for forward kinematics and IK for inverse kinematics. Let’s explain these with a real-world example.
  1. 1.

    Load IKFK.max.

     
  2. 2.

    The file includes two bone chains and a sphere in the middle. The right bone chain is IK enabled, but not to worry, as we will look at setting it up later. For now, let’s look at what each means.

     
  3. 3.
    If you select bone 1 and rotate it, and then move into bone 2 to rotate it, and then go to bone 3 to accommodate the reach, it will be like a robotic movement. You reorient each bone to get to the reach of the ball. To put it in simple terms, FK is where parent motion is inherited to the child. Rotating bone 1 will have bone 2 rotate as well. In order to reach the ball, we might need to animate three bone rotations. See Figure 4-17.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig17_HTML.jpg
    Figure 4-17

    IK versus FK 1

     
  4. 4.

    Let’s look at IK now. Select the IK Chain001 marked green in Figure 4-17 and move it to the ball. Notice how the parent bone rotates along to accommodate the reach? This is called IK or inverse kinematics. See Figure 4-18.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig18_HTML.jpg
Figure 4-18

IK versus FK 2

To simplify it even more, remember these points
  • In an FK chain, the animation is passed from parent to child. If you rotate the parent, the child will rotate along with the parent. FK is rotation based.

  • In an IK chain, the parent’s bones accommodate to the child’s position. In the previous example, when we moved the IK Chain001, the parent bones rotated too.

IK simplifies the animation here. We just need to move one item, whereas in FK, we need all the bones to be rotated to reach the sphere. Let’s now look at setting up our own IK chain.

Simple IK Chain

In this section, we create a simple IK chain. We are going to mimic a leg setup and set an IK chain to animate the leg.
  1. 1.
    Load IK_Chain.max or create a setup of a bone chain, as shown in Figure 4-19.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig19_HTML.jpg
    Figure 4-19

    Simple IK chain

     
  2. 2.

    Select the top-most bone (the bone that emulates the thigh anatomy).

     
  3. 3.

    Go to the Animation menu and then the IK Solvers menu and choose HI Solver.

     
  4. 4.

    The software now expects you to choose the IK chain link, so select the feet_bone (the bone that resembles the heel anatomy).

     
  5. 5.

    An IK chain will be created for you at the beginning of the selected bone. That’s it—you have created a simple IK chain. You can now move the IK Chain001 to move the leg up and down or to the side. Practice moving it to see how you can animate the bone chain. Try to get it in various poses and see how it can be done using FK.

     
  6. 6.

    A test file called IK_Chain01.max is available for your reference to test the IKChain.

     

IK Chain for a Leg

The IK leg in the previous example is able to just move the leg, There are a couple of animations that would be impossible with this setup, for instance tiptoe animation, feet swivel, and more. Let’s look at how we can address them and apply them to the bone structure that we completed in the earlier exercise:
  1. 1.

    Load IK_ChainAdvanced.max. The bones have been renamed to avoid confusion.

     
  2. 2.

    Set up an IK chain from thigh_bone to ankle_bone.

     
  3. 3.

    Now our foot will be able to lift and move forward. As mentioned, we cannot enable heel rotation, swivel, or tip toe animation.

     
  4. 4.
    We will be using helpers to achieve this. Go to the Create panel and the Helpers tab. Select the Point helper and choose the Box mode in the Parameter section (see Figure 4-20). This will help us identify it easier.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig20_HTML.jpg
    Figure 4-20

    Helpers

     
  5. 5.

    Position the point helper in the place of the IK Chain001.

     
  6. 6.

    Create three more point helpers and position them as shown in Figure 4-21.

    Rename the helpers and color them in the Modify panel:
    • 1: Ankle_Helper

    • 2: Heel_Helper

    • 3: Toe_helper

    • 4: ToeTip_Helper
      ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig21_HTML.jpg
      Figure 4-21

      Leg helper setup

     
  7. 7.

    Select all the point helpers and freeze the transformations. You can freeze transforms by holding Alt and right-clicking and then choosing Freeze Transform from the Quad menu. Freeze Transform helps us zero back after any changes. In other words, the object’s current position will be set to 0, 0, 0. See Figure 4-22.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig22_HTML.jpg
Figure 4-22

Freeze Transform menu

When you freeze an object or anything for that matter in 3ds Max, you will be presented with the dialog shown in Figure 4-23. Click Yes to continue freezing the object.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig23_HTML.jpg
Figure 4-23

Freeze Transforms confirmation

  1. 8.
    Set your hierarchy as shown in Figure 4-24a.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig24_HTML.jpg
    Figure 4-24a

    Leg helper hierarchy

     
  2. 9.

    A checkpoint file is available called IK_Chainadvanced02.max.

     

IK Chain Constraints

We are going to set up constraints to the point helpers and the respective bones so that we can manipulate the helpers and bones accordingly.
  1. 1.

    Load IK_ChainAdvanced02.max.

     
  2. 2.

    Select the IK Chain001.

     
  3. 3.

    Go to the Animation menu and choose Constraints and Position Constraint. Now choose the Ankle_Helper. The constraint is set so that if you move the Ankle Helper, the IK chain moves, which directly controls the bone’s position.

     
  4. 4.

    Select the ankle_Bone and go to the Animation menu. Choose Constraints ➤ Orientation Constraint. Now choose Toe_helper.

     
  5. 5.

    Do not fret if your toe is rotated. Select the Toe_Bone and go to the Animation menu and choose Constraints ➤ Orientation Constraint. Now choose ToeTip_Helper. The bones should fall back into place.

     
  6. 6.
    We need one more helper to assist us in moving the feet. This time, let’s use a shape. In the top viewport, draw the shape line around the leg using the splines from the Shape tab in the Create panel. See Figure 4-24b.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig25_HTML.jpg
    Figure 4-24b

    Leg IK controller

     
  7. 7.
    Rename the object Leg_Control and set its pivot point to where the IKchain001 is. The pivot point can be changed by going into the Hierarchy panel and choosing Affect Pivot Only and moving it. See Figure 4-25.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig26_HTML.jpg
    Figure 4-25

    Leg IK orthographic view

     
  8. 8.

    Freeze the transformations by Alt+right-clicking the Leg_Control. So its current position will be read as 0, 0, 0. At any point after testing, you can right-click and choose Transform to Zero to reset it to its initial position.

     
  9. 9.

    Select the Heel_Helper and click on Link in the toolbar. Now select the Leg_Control to link it.

     
  10. 10.

    Now select the Leg_Control and rotate it on multiple axes to see the varied motion we can get.

     

You can now animate the foot into any pose. The animator needs to animate the leg control and the helpers to achieve motion. Try mimicking this setup into the bone structure we created in earlier sections. The reference file called IK_ChainAdvanced03.max has been set up in the scenes folder; experiment with it.

We will be further tweaking this rig with custom controls to give even more controls and to animate it easier. We will use wire parameters in the animation section, which we will cover in the next few chapters.

IK Chain for an Arm

We have set up a leg IK; now let’s look at setting up an arm IK chain
  1. 1.

    Load Hand_Rig.max.

     
  2. 2.

    Let’s set an IK chain quickly. Select L_Arm_Bone and go to the Animation menu and choose IK Solver and HI Solver. Then choose L_Hand_Bone.

     
  3. 3.

    A new IK chain is created. Select it and move it; you will be able to move the hand. We need to set up controllers and helpers like we did for the leg so that we can have grasping and wrist twisting animation).

     
  4. 4.

    Similar to the leg_control we created for the leg, let’s create a hand control using shapes.

     
  5. 5.

    Rename it L_Hand_Control. Be sure to set its pivot point to the IKChains position.

     
  6. 6.

    Go to Helpers and create a point helper. Rename it L_Point_Helper.

     
  7. 7.

    Position point_handcontrol exactly where the IK Chain001 is. You can use the align tools to perfectly position it.

     
  8. 8.
    Select L_Hand_Bone and go to the Animation menu. Choose Constraints and Orientation Constraints. Then choose the L_Point_Helper. See Figure 4-26.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig27_HTML.jpg
    Figure 4-26

    Hand controller setup

     
  9. 9.

    The next step is to select the point helper and use the Link tool from the toolbar to drag it to the L_Hand_Control, creating a link between the point control to the hand control.

     
  10. 10.

    Select the IK Chain001 and go to the Animation menu. Choose Constraint ➤ Position Constraint and choose the L_Point_Helper.

     
  11. 11.

    Now you can select the L_Hand_Control and rotate it to do arm twist animation. Use the Move tool to move the arm.

     
  12. 12.

    Be sure to set Freeze Transform for the L_Hand_Control from the Alt+right-click menu or for any control so that you can reset it to its initial position using the Transform to Zero option (see Figure 4-27). Alt+right-click to get the menu.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig28_HTML.jpg
Figure 4-27

Freeze Transformation menu

Let’s create an elbow control so we can swivel the arm.
  1. 1.

    Create a point helper named L_Elbow_Controller and align it to L_Forearm_Bone. (Once it’s aligned, move it back to the arm a bit so that we can see it clearly.) We follow the same steps to create a point helper as we did for the leg chain in the previous section.

     
  2. 2.
    Select the IK_Chain001 and go to the Motion panel from the command panel. Choose IK_Solver rollout. See Figure 4-28.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig29_HTML.jpg
    Figure 4-28

    IK Solver properties

     
  3. 3.

    From here, the swivel angle can be tweaked/animated without using any controller to swivel the arm.

     
  4. 4.

    Alternatively, you can use pick target and choose the L_Elbow_Controller. Reposition your Hand_Control to have a bend and move the L_Elbow_Controller up and down to see the arm swivel.

     

A scene file has been created called Hand_Rig01.max.

Let’s now focus on animating the fingers. You can continue if you have been following along or you can load Hand_Rig02.max, which has the previous steps done and saved.
  1. 1.

    Create a shape for your finger control. In this case, I create a rectangle, but you can create any shape.

     
  2. 2.

    Convert the newly created shape to a editable spline by right-clicking and choosing Convert To ➤ Convert To Editable Spline.

     
  3. 3.
    I am going to use this shape for the thumb finger, so I align it using the align tools so that it follows along the bone’s position and rotation. See Figure 4-29.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig30_HTML.jpg
    Figure 4-29

    Finger controller setup 1

     

Let’s clone this shape for other fingers and align them to the beginning of each finger.

Rename the shapes with the appropriate names for each example, such as L_Index _Finger_Control:

Now let’s set the constraints for the bones:
  1. 1.

    Select L_thumb0 and go to the Animation menu. Choose Constraint ➤ Orientation Constraint. Click on the L_thumb_Finger_control.

     
  2. 2.

    Select L_Index0 and go to the Animation menu. Choose Constraint ➤ Orientation Constraint and click on the L_index_Finger_control.

     
  3. 3.

    Select L_middle0 and go to the Animation menu. Choose Constraint ➤ Orientation Constraint and click on the L_middle_Finger_control.

     
  4. 4.

    Select L_ring0 and go to the Animation menu. Choose Constraint ➤ Orientation Constraint and click on the L_ring_Finger_control.

     
  5. 5.

    Select L_pinky0 and go to the Animation menu. Choose Constraint > Orientation Constraint and click on the L_pinky_Finger_control. See Figure 4-30a.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig31_HTML.jpg
Figure 4-30a

Finger controller setup 2

Note in Figure 4-30a that I added the finger control for all the fingers. A checkpoint file is available called Handrig_03.max.

Custom Attributes and Wire Parameters

We are going to create custom attributes to mimic the finger motion. Although we could just select the beginning of the finger bone and create an IK chain and add controls. Let’s use the feature of custom attributes and a wire parameter to drive the animation here.
  1. 1.

    We will be following along from the previous section, so fire up 3ds Max and load Hand_Rig03.max.

     
  2. 2.

    Select the L_index_Finger_control, go to the Modify panel, and add an Attribute holder from the Modifier list.

     
  3. 3.
    With the L_index_Finger_control still selected, go to the Animation menu and choose Parameter Editor (or press Alt+1). See Figure 4-30b.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig32_HTML.jpg
    Figure 4-30b

    Parameter Editor

     
  4. 4.
    Under UI type, call it Index_Finger and change the range from 0 to 10. Once you’re done, click on Add and you should see the newly created parameter populate in the Modifier panel. See Figure 4-31.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig33_HTML.jpg
    Figure 4-31

    Attribute Holder Modifier

     
  5. 5.
    Go to the Animation menu and choose Reaction Manager. See Figure 4-32.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig34_HTML.jpg
    Figure 4-32

    Reaction Manager

     
  6. 6.
    Click on the Add Master and, in the viewport, choose the L_index_finger_control, as shown in Figure 4-33.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig35_HTML.jpg
    Figure 4-33

    Assigning Master Control

     
  7. 7.
    Select the L_index1 and L_index2 bones and, in the Reaction Manager, click on Add Selected. From the menu, choose the Z rotation axis. See Figure 4-34a.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig36_HTML.jpg
    Figure 4-34a

    Assigning bones

     
  8. 8.
    Once you click on the Z rotation, the list gets populated, as shown in Figure 4-34b.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig37_HTML.jpg
    Figure 4-34b

    Slave controls

     
  9. 9.

    Click on Create a New State and set the values to 90 for the bones when the state is at 10. See Figure 4-35.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig38_HTML.jpg
Figure 4-35

Reaction Manager states

Note

Do not panic if you see a different state number. In my case I created state001 and deleted it before I went further, so when I created a new state the numbers were state002 and state003. This is similar to any Windows application. Say you open a Word document called untitled 1 and open one more called untitled 2. When you close those documents and create another new document, it will be called untitled 3, because the software knows it’s the third document you have opened in the same session.

  1. 10.

    Close Reaction Manager. Select the L_index_Finger_control and in the Modify panel, and then change the values of Index_Finger custom attribute from 0 to 10. Your fingers should curl. If you notice the fingers curling in the opposite direction, change the values in state to -90 to fix it.

     
  2. 11.

    Repeat this process for all the other fingers. The same technique can be applied to the toes.

     

IK Chain for the Spine

So far we have been using HI Solver from the IK Solvers menu to create IK chains for arms and legs. Let’s begin by using a new solver type to demonstrate the new solver that 3ds Max provides for this purpose.
  1. 1.
    Open 3ds Max and create a spine set up with three bones—a neck bone, a head bone, and an end bone, as shown in Figure 4-36. Also create the line, as shown in Figure 4-37.
    ../images/477189_1_En_4_Chapter/477189_1_En_4_Fig39_HTML.jpg
    Figure 4-36

    Spine IK setup

     
  2. 2.

    Rename the bones spine01, spine02, spine03, neck, head, and endbone.

     
  3. 3.

    Select spine01 and go to the Animation menu. Choose IK Solvers ➤ Spline IK Solver and then choose the neck. An IK handle will be created but the software expects you to click on the spline, so click on the spline that has been created. See Figure 4-37.

     
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig40_HTML.jpg
Figure 4-37

Spine IK completed

Note that control helpers are created for every vertex we had in the spline. Our initial path has three points so three control helpers have been created. The bottom-most is used to move everything as a whole; the middle one can be rotated to mimic the bend motion of a spine. The IK handle cannot be moved in this setup. The middle control helper can be moved or rotated.

You can re-parent and reorient as you see fit according to the need and motion derived. Try experimenting with more points in a path before applying the spline IK.

We have so far created a leg, arm, and spine IK chain. You can incorporate the same on a single file so it forms a complete rig. Once done, the root bone of each chain needs to be linked to the hip bone that was created and we would have a complete rig. A complete rig with facial morphs and facial bones will be provided for you at the end of Chapter 9.

HI Solver/HD Solver

One more section that we haven’t covered is the types of solvers. So far, we have been using the HI Solver and not the HD Solver. Let’s discuss this briefly. The solver’s nature is to compute the rotations and positions of the bones based on their hierarchy and constraints attached if any. There are two types of IK solvers when creating an IK chain—the HI and HD Solvers. HI stands for history independent and HD stands for history dependent. Load SolverHI_HD.max to better understand this.

The file has two legs set up, with the left one using an HI Solver and the right side being an HD Solver. See Figure 4-38.
../images/477189_1_En_4_Chapter/477189_1_En_4_Fig41_HTML.jpg
Figure 4-38

HI and HD Solvers

Select the left IK chain and move the leg up and down—it moves freely and quickly.

Now select the right IK chain and move it. Note that the bones jitter a lot. This chain is history dependent. Turn on Auto Key and set a keyframe for the right chain. Move a few frames ahead and try moving the IK chain. There is a keyframe created already in a previous frame, so the jitter will be nearly nil (still visible in some cases). In the HD Solver, the software is using the previous keyframe to compute a solution and get the positions and rotations of bones. In other words, the computing solution looks for previous keyframes and relies on them, which means it’s HD (history dependent). In most cases, people use HI Solver, because it’s a bit more advanced and you can fiddle around with the solving parameters in the IK tab in the Motion panel.

Summary

We will look at using bipeds and CAT tools as character rigs in the upcoming chapters and move on to skinning our bone_rig to our character in Chapter 7. I recommend you revisit this chapter and try the rigs over and over again to get practice. Also note that there is no one rig that fits all situations. We need to understand the animation that is required and place bones and set constraints as applicable. Keep practicing!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.134.102.182