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

Creating CMotion

You can continue with the figure you established in the previous chapter or you can open the Bruno file by clicking on the following icon:

Creating CMotion and assigning it to a Character object is easy. Simply select the components and click on the Add Walk button.

When the CMotion object is then selected you will see that all controller objects connected to the walk are automatically displayed in the Object tab. You will also see that several already have basic actions assigned to them. An action is basically a cyclical modification of certain parameters. These can be position, rotation or similar controller object parameters.

The first controller object that needs to be focused on is the "Torso_con" object, which represents the pelvis in this template (this naming convention can vary from template to template, depending on which name a given user assigns). Since this is a main controller of the pelvis, it is defined as a Hub, which is symbolized by the icon next to it. Every target object that is a Child of a Hub will move using the same method as the Hub. By default, this object is assigned the Lift Action so the pelvis, torso, head and arms are lifted together.

You have probably already noticed that the arms are angled unnaturally.

If a CMotion object is assigned to a template, all controller objects will also be connected with it automatically. By default, Steps will be assigned to arms, legs and IK controllers when the Advanced Biped CMotion is used, which explains the unnatural behavior of this character’s arms and legs. If you play the animation you will see that the basic movement is correct, i.e., the arms move in sync with the opposite leg.

So what’s behind the Steps Driver mode? The controller is told to execute a back-and-forth movement according to the Stride and Time settings, which is exactly what arms and legs do during a walk cycle. Of course it’s no problem animating arms and legs using IK but it can also be done very well using the arms’ FK. This lets us time the movement of the arm so we can achieve a correct movement curve to make the movement of the arm look more natural. The rotation of each joint’s axis can be used to simulate a swinging motion instead of trying to do so with IK controllers at the hands. Select the objects R_IK_Arm_nb_con+ and L_IK_Arm_nb_con+ in the Attribute Manager so you can modify their Driver mode. These objects are the controller objects for the arms and are simple target objects to which Steps mode was assigned. Set Driver from Steps to None so they are no longer animated and to keep them at their current position (other controllers will be animated instead).

Of course the position of the arms is still not correct. This is due to the fact that the default CMotion position was already modified. To reset the arms’ state (both controller objects should still be selected), change the Horiz. and Vert. values to 0.

If you play the animation now you will see that both arms are positioned correctly and no longer move with the body’s motion but are still dependent on their IK controllers. You can switch to FK by selecting both arm elements and sliding the IK<->FK slider in the Hand Controls menu to the far right.

If you select a single component, all controller objects will be displayed in a menu of the same name. If you select multiple components, each controller object will have its own menu. If both components are selected, as in our example, the IK <-> FK slider can be found in the Hand Controls menu (make sure that 2 menus with this name are shown).

Play the animation again and you will see that both arms now follow the chest exactly and are now controlled via FK.

Next, the position of the leg IK controllers needs to be adjusted. Right now their movement stems from their initial state and they are therefore a little too far apart. First, select the controller for the left leg (L_IK_Leg_nb_con+) from the CMotion object list and set its Horiz. value to 60. Then set the right leg’s (R_IK_Leg_nb_con+) Horiz. value to -60. By modifying these values you have offset the position of the feet to their initial state.

Now that the feet have been properly positioned you will see that the knees need to be adjusted again, in spite of the adjustments we made while setting up the rig. Disable the CMotion object to activate the initial state, then select both controllers and set their X value to 0cm via the Coordinate Manager or the Attribute Manager’s Coordinates menu.

CMotion saves information for each object that is added. If, for example, a CMotion object is added to a character, the character’s current pose will automatically be saved as its initial state. This can be changed at any time by disabling CMotion, modifying the pose and then reactivating the CMotion object.

Finally, select the Weight tags of all polygon objects and reset their initial state using the Reset Pose button. Reactivate CMotion to check the corrected knee position.

Play the animation. You will see that the default stride length is a little too short. Set the Stride value to 400 to achieve a more realistic stride length. The character has now been set up to the point that we can begin animating using the controllers to establish the walk cycle and make the character’s stride more realistic.

We will use the Spine’s IK controls to create CMotion. As with the arms, select a spline's controllers and switch to the Attribute Manager to enable the IK Controllers. In the Controls tab, set the Spline Controls goup's IK<->FK setting to 0.

If the Controllers are obscured by the model you can go back to the Character object's Adjust mode, set the Objects to Controllers and increase their size as we did in the Adjustment chapter.