Cinema 4D / BodyPaint 3D Program Documentation Tutorials Character Builder Tutorial
Function available in CINEMA 4D Studio

Binding the Rig

If you do not already have the Project with the adjusted character open, click below to open the file for this section:


The next step is to bind the meshes to the template rig. This process has also been simplified somewhat by using a special binding mode that lets you place all objects to be bound in the list of the Binding tab when selecting any component. Doing so will automatically add all necessary tags, Skin deformers, and auto-weight each mesh as you add them to the list.

Drag the Bruno, Hair, Shoes and Clothes polygonal objects in the Objects list to bind them to the rig joints automatically.

Tip:
You will notice that when adding all the meshes to be bound, the Character object creates a Skin deformer automatically. When looking at the Bruno character's meshes hierarchy you will see that we use a Cloth Surface object to give the clothes some thickness. This causes the clothes to not be affected by the Skin deformer because Cloth Surface changes the point count of the object and can't be weighted, so you will need to manually add a second one as a Child of the Clothes object. Keep in mind that if you have both Skin objects activated and Cloth Surface deactivated, each Skin deformer deformation will affect the Clothes mesh, be accumulated and give wrong results. You will need to deactivate the Skin object under the Clothes mesh if you deactivate the Cloth Surface, and activate both once you are done with weighting.

The Eyes objects are still primitive spheres, so in this case you have two options: make them editable and bind them like the other objects, or connect them to the rig hierarchy.

For the purpose of the tutorial, we will take a look at the different ways of connecting them to the hierarchy, as this could be useful for your own projects.

First, we will need to display the rig hierarchy to access the proper objects to link. Select any component and, in the Display tab, set the Object Manager option to Active Controllers. This will display the hierarchy of the objects affecting the selected component in the Object Manager. Alternatively, you can set this option to display a full or partial hierarchy of the rig, if needed, but it is usually easier to filter by selection, as the hierarchies can get quite complex to sift through, especially if you work from a rig built by someone else.

Select the Pelvis controller in the Viewport, and the Object Manager will only display the controllers pertaining to the Pelvis component.

Here, the Head_con+ object is the one we want to which we want to link our eyes so that rotating and moving the head will also affect the eyes of our character. You can link the eyes by simply placing them as Child objects of this controller, or using a Constraint tag on the eyes and link them that way. For this tutorial, we will simply place them as Child objects of the Head_con+ object.

Drag the Eye_R and Eye_L objects as children of the Head_con+ controller.

Now that initial binding is complete, let's switch to the Animate mode to check things out (you can also switch the Character object's display mode back to Components - we won't need to access the controllers from the Object Manager anymore).

Troubleshooting the legs

The first thing that will be obvious is that the legs will appear wrong as they seem to rotate inwardly when using the Animate mode. Remember how we corrected the leg IK plane orientation by changing their Pole Vector positions? This does not impact the Adjust and Binding modes, so there are discrepancies between these and the Animate mode. This is a problem that can occur when a character has slightly arched legs because the Character object will average the angle of the legs to orient the IK plane (or knees).

To solve this, we will just need to set a new bind pose while in Animate mode, as this will be our correct starting point. Select the meshes’ Weight tags and click on the Set bind Pose button to define a new bind pose. That's it. You will need to repeat this action if you switch back to the Binding mode, though, as the Binding mode automatically sets a new bind pose on its own.

This tweak done, move the character's controllers around to see how it deforms and check one more time if the rig behaves properly.

Here, everything seems pretty good, and all that is needs to be done is to correct the weights affected to the character. Since everything has been auto-weighted, there is some work to be done. In most cases, this will be the most tedious part of the process, so it will not be covered it in full. We will, however, have a look at a few new features that will come in handy here.

You can access each component’s weights and joints by double-clicking on a mesh Weight tag (which opens the Weight Tool and selecting the Joints list of the Joint tool. It’s advisable to use the new Order option and choose the joint order you are most comfortable with (Hierarchy or Name modes, for example).

In the Joints list you can see which components' joints affect the selected object. If we select the Weight tag of the shoes, for example, we can see that a few unnecessary joints influence the mesh, such as the joints of the R_Arm and L_Arm components. To remove these, simply select the joints of each component and delete them from the list (or select the components themselves from the Joints list to remove all of their respective joints at once). Repeat the process for all objects (by selecting their Weight tag or the objects themselves), so you get a clean list of joints for each mesh influenced by the components.

Alternatively, you can also perform this process by opening the Weight Manager and selecting each component to check their respective joints influences, and which object they affect - the same logic but a reverted process.

Here, the R_Arm component has been selected and its joints, as well as which object they affect, can be seen in the Weight Manager. In this example, we see that we can remove the Shoes and Hair objects from the list, since the arms shouldn't influence these areas.

Getting rid of unnecessary joints will also speed up the auto-weighting process (which will need to be redone, since we removed some joints) and make it more accurate, and also make your manual weighting easier since there will be fewer joints to deal with for each object.

Here is the complete Project file with cleaned lists of joints for each object, which can be used as reference:


This done, we need to run the auto-weighting again, to get a more accurate result with the new joints repartition.

Continue…