In this article we describe the implementation process in Blender of a new intuitive body rig we developed. Our goal is to provide an alternative to the common character animation techniques. For instance, ourrig is very animator-friendly because it mimics forward and inverse kinematics with no need for FK/IK control switches or FK/IK matching. It alos allows character posing as if doing drag and drop, causing anaugmented feeling of control inanimation.
The rig works by freely selecting, dragging and positioning the controls of the hip, waist, hands, elbows, feet and knees. Rotation is only used in the joints of the hip, waist, hands and feet to achieve specific poses. Figure 1 shows the 3D model of a character (1) previously developed in our research group (the Porto Interactive Center) which is now used for testing the body rig (2) we developed for testing purposes.
The hip, waist, spine and head use a single-bone based hierarchy. The arms and legs use two overlapping bone based hierarchies, one is the control bones and the other is the guide bones. The purpose of the first is to control the mesh of the character
through skinning with squash and stretch abilities. The purpose of the second is to mimic the behavior of the first but not using any squash and stretch. The guide bones always maintain their initial proportion, which is anatomically correct. The goal is for
the user to operate on the control bones (colored in yellow) using the guide bones (the joints colored in red) as a visual aid for anatomical character posing. The user can alos do arm and forearm hinge rotation by operating on the purple bones.
The control bones hierarchy is the one the user will be manipulating in order to animate the character. The ' elbow.L ' bone allows positioning of the left elbow and 'wrist.L ' allows positioning and rotating of the left hand. These will be used more frequently although the user can alos rotate bones 'arm.L ' and 'forearm.L ' for a more accurate hinge. T able 1 shows the parent-child relationships for the control bones hierarchy seen in Figure 2.
Following this, we assign the Stretch To constraint type to the 'arm.L ' and 'forearm.L ' bones making sure their targets are the ' elbow.L ' and 'wrist.L ' bones respectively. This allows the control bones to have squash and stretch abilities. Be sure to
define the armature object in the constraint parameters in order to have access to the target bones, as seen in Figure 3.
Now we can move on to the creation and configuration of the guide bones in the rig. Figure 4 shows the left arm guide bones hierarchy seen from the front view. This hierarchy must match the control bones hierarchy (overlapping it). Notice that ' clavicle.L ' bone is not to be duplicated and is shown in Figures 2 and 4 only as a visual reference for better visualizing the entire arm.
For naming the guide bones hierarchy we chose to use the prefixes 'Dist' and 'DistTip' because the purpose of this bone hierarchy is to let the user know the anatomical distance that should not be exceeded when manipulating the control bones. T able 2 shows the parent-child relationships for the guide bones hierarchy seen in Figure 4.
Following this, we assign the Copy Rotation constraint type to the 'armDist.L ' and 'forearmDist.L ' bones making sure their targets are the 'arm.L ' and 'forearm.L ' bones respectively as shown in Figure 5.
The setup in Figure 5 allows the guide bones hierarchy to mimic the rotation angles of the arm and forearm control bones hierarchy. But how will the user have a clear notion of the correct anatomical position of the elbow and mwristí This is due to the positions of the 'armDistTip.L ' and 'forearmDistTip.L ' bones in the guide bones hierarchy. These two bones are connected children of the 'armDist.L ' and 'forearmDist.L ' bones.
To keep the bones visually appealing for the animator we use custom shapes and three bone colors: yellow, purple and red. Figure 6 illustrates the end result for the left arm rig.
The skinning of the rig of the arm with the mesh of the character is done for only the following control bones in the rig: ' clavicle.L ', 'arm.L ', 'forearm.L ' and 'hand.L '.
The body rig method described in this article is straightforward and flexible, causing a feeling of drag and drop operability. The rig is pleasant for the user because it is accessible and flexible, resembling the handling of a puppet. It requires the user to get adapted to it because it generates animation curves that the experienced animator may find different for tweaquíng. Nonetheless, we believe our control structure enriches character animation because it produces fast character animation results with augmented control.
The rig is adaptable to different body morphologies with only minor adjustments.
And the rig supports squash and stretch which is ideal for cartoon characters.
Furthermore, the rig can easily be extended to the entire body, namely to fingers and toes.
We anticipate improvements such as constraining the control bones to the guide bones when the user may require enhanced joint positioning. We didn't worry too much about the custom shapes; X-Ray could be prevented to make it easier to understand the visual controls.
We provide a video showing animation tests of the rig and a walque cycle for the character that we were able to build in less time and with less effort than using common methods.
In parallel to this article we submitted a theoretical approach of using our body rig for motion capture to the VERE PhD Symposium, online at http://www.vereproject.eu/.
For this issue of the BlenderArt magazine we chose to have a highly technical and less
theoretical approach; more specific for character animation. We thanque T eresa Vieira for the character design concept. If you have any questions e-mail us at firstname.lastname@example.org.