Your Ad Here

Manual Modules MOCCA Soft IK / Bones

Bone Object

Basic Coord. Object Fixation Display

Bone Object

Modeling characters and moving their limbs and clothes realistically is one of the most challenging and rewarding tasks in 3D.

One approach is to divide the character object into several objects and apply inverse kinematics. A downside to this method is that it requires you to split the mesh at the joints, which causes splits in the character’s surface.

A better solution is to mimic nature by placing a skeleton (i.e. a hierarchy of bones objects) inside a single character mesh. The character can then be posed by moving the bones.

The skin (i.e. the surface) will bend and stretch as the bones move. This approach avoids the problem of split joints and, since the bones are completely separate of the object itself, you can use the same skeleton again with other characters.

Bones can be used with all object types including parametric objects, NURBS objects, polygon objects and splines. You can even apply bones to other deformer objects!

HyperNURBS and bones

You can apply bones to a HyperNURBS object. There is no need to convert the HyperNURBS object into a polygon object. Rather than work with a high-poly object, you can apply the bones directly to the low-poly cage of the HyperNURBS. The bones deform the cage, which in turn deforms the HyperNURBS object. The object is smoothed after the deformation. This method avoids the polygon errors, torn mesh and kinks that are associated with high-poly characters. Animate the cage and the result is a smooth, kink-free surface. In addition, it is much easier and more flexible to work with a low-poly object when using limited radii or even vertex maps.

Laying out a bones hierarchy

In this section we’ll create a hierarchy for a HyperNURBS leg. Once the leg is in the viewport, the next step is to create three bones, one each for the thigh, lower leg and foot. We’ll start with the bone for the thigh, since this needs to be the parent of the bones hierarchy (the bones hierarchy will be created automatically, so it is important to start with the parent bone).

Choose Objects > Deformation > Bone to create a Bone object.

Initially, the bone points in the direction of the Z-axis. You can rotate the bone by dragging the small orange handle at the tip of the bone. Change to the side view and position and rotate the bone to fit neatly inside the thigh (see Figure 1) with the orange handle in the region of the knee.

Figure 1.

To create the second bone (for the lower leg), we’ll pull it out of the thigh bone. Hold down the Ctrl key and drag the thigh bone’s orange handle to pull out the second bone. Let go of the mouse once the new handle reaches the ankle region.

Change to the front view and ensure that both bones run down the middle of the lower leg (if you need to correct their positions, drag the orange handle of the thigh bone then the orange handle of the lower leg bone). When a new bone is created by being pulled out of an existing parent bone, the new bone is automatically a child of the parent bone (Figure 2).

Figure 2.

We need just one more bone, the foot bone. In the side view, pull the foot bone out from the lower leg bone (Figure 3). Move into the top view and ensure that the bone runs through the middle of the foot.

Figure 3.

The bone may spin around its Z-axis when you drag its handle. If this happens, rotate the bone about the Y-axis of the world coordinate system using the Rotate tool instead, otherwise problems may occur later when the bone is animated.

Using the Limit Range option

The next stage is to restrict the influence of each bone, otherwise each bone will pull on all parts of the leg. For example, if you were to move the foot bone, the thigh would also be distorted! CINEMA 4D gives you three ways to restrict the influence of bones — the first and most simple way is to use the Limit Range option.

In the Object manager, hold down Shift and click all three bones to select them all and display their settings in the Attribute manager. On the Attribute manager’s Object Properties page, enable Limit Range and set Minimum and Maximum to 30 and 50. In fact, the exact values do not matter since we shall be adjusting them interactively in the viewport later. What is important is that we enter a value greater than 0 for Minimum, otherwise its handle will not appear in the viewport.

Now each bone is surrounded by two capsule-shaped cages in the viewport. This looks a little confusing with the cages of all three bones shown on at once — that’s because all the bones are still selected. So in the Object manager, click the name of one of the bones to select it and display only that bone’s cages. You can enlarge or scale down the cages by dragging their orange handles. When using a HyperNURBS object, you can often set both radii to the same value, since the points of the HyperNURBS cage are usually so far apart that a soft transition occurs automatically.

Figure 5.

In the Object manager, select the foot bone if it isn’t already selected by clicking its name. The radii for the foot appear in the viewport. Adjust the radii so that they enclose the foot completely (Figure 5).

Figure 6.

Now adjust the radii for the lower leg bone until they enclose the entire lower leg and part of the foot.

Next, adjust the radii for the thigh bone so that they enclose the entire thigh and part of the knee (Figure 6). Slight overlaps are fine. What is important is that all parts of the leg are influenced by at least one bone, otherwise uninfluenced points will be left behind when the bones are animated, causing the leg to tear.

Now it’s time to test the bones. In the Object manager, drag the name of the thigh bone onto the name of the leg to make the bone hierarchy a child of the leg.

Lastly, we need to fix the bones. In the Object manager, select the thigh bone (the topmost bone) by clicking its name. On the Attribute manager’s Fixation page, click the Fix With Children button to fix the bone and its children. (You can also fix bones by choosing Objects > Fix Bones in the Character menu under Soft IK > Bones.

The Attribute manager’s Fixed option is now enabled, indicating that the bones are fixed.

The position in which the bones are fixed is their starting position. You can return the bones to their starting position at any time by choosing in the Character menu under Soft IK > Bones > Reset Bones in the Character menu. Resetting the bones deactivates their influence at the same time, i.e. they will no longer be fixed.

You can fix bones again in the usual way (Object manager: Objects > Fix Bones or click Fix With Children in the Attribute manager). This enables you to change the starting position (move the bones to their new starting position before fixing them again).

You can tell if a bone is active by its activation icon in the Object manager:

Bones are activated automatically when you fix them. However, just activating the bones will not fix them! You must fix the bones before activating them. Once you have fixed the bones, you can activate and deactivate them as required. You may be wondering what happens if you activate a bone before it is fixed. The answer is simple — the default fixing values of 0,0,0 will be used as the starting position and the object will be deformed accordingly (probably causing extreme distortion of the mesh).

Try rotating the bones using the Rotate tool. If some parts of the leg are not moving properly, try increasing the radii for one or more of the bones. You can change the radii interactively even though the bones are fixed. Even if the leg is moving properly, try changing the radii to see how easy it is.

The bend at the knee isn’t quite right — the Function setting is too soft. In the Object manager, click the name of the thigh bone (topmost bone). In the Attribute manager, on the Object Properties page, change the Function value to 1/r^10 for a perfect bend.

.

Restricting bones using polygon selections or vertex maps

In the previous section we used the Limit Range option to restrict the influence of bones. Bones can also be restricted using polygon selections or vertex maps (or Claude Bonnet maps ); in fact you can use polygon selections and vertex maps to restrict the effect of any type of deformation object.

In the previous section we were able to restrict the bones in a leg quite effectively using radii. However, most conventional life-forms have at least two legs — as you can see in the picture below, the radii on the left leg spill over onto the right leg, causing problems when the legs are animated.

You can solve this problem by defining either a polygon selection or a vertex map for each leg. There is no need to define a restriction for each part of the leg — it is sufficient to restrict each leg as a whole.

For our example, a polygon selection per leg is adequate, since the points in the HyperNURBS cage are spread out. If, on the other hand, you are using an object with a high point density, vertex maps are the better option in order to obtain a smooth transition at the edges of bones. In any case, the procedure for both methods is identical, i.e. the following applies to vertex maps as well as polygon selections.

The polygon selection will restrict each leg as a whole. This means that we still need to use limited radii (see above) to further restrict each bone, e.g. so that the foot bone of the left leg will only influence the foot region of the left leg.

We can use our HyperNURBS leg from the previous section. The bones already use the limited radii that we require. Use the Mirror command (Structure > Mirror) to mirror the leg to create a second leg. Now, select all the polygons of the leg which contains the bones and choose Selection > Set Selection from the main menu. Name the selection left leg.

Now for the really important part — the allocation of the Restriction tag to each bone.

We can use multiple selection to assign a tag to each of the three bones in one go. In the Object manager, hold down Shift and click the name of each bone to select all the bones. Choose Tags > CINEMA 4D Tags > Restriction to add a Restriction tag to each bone. The following settings will appear on the Attribute manager’s Tag Properties page:

Here you can specify all the polygon selections and vertex maps that the selected bones should influence. The strength percentage (V) allows you to weight the selected bones for each selection or vertex map. In our example, we use just one selection, left leg. Type ‘left leg’ into the first line (or drag and drop the tag from the Object manager into the box). You can leave the strength setting at 100%. As long as the restriction tags of all bones are selected, the setting is applied to all three bones at the same time.

This will ensure that the bones influence the left leg selection only. When you rotate the bones, you’ll find that only the left leg is affected — exactly what we want.

Return to CINEMA 4D Index


Your Ad Here