What this blogpost is all about
Once I started further looking into the topic of character animation and rigging, it became increasingly obvious, how big a topic this would be. As such, a decision was made to currently limit my research only to rigging and animation with the tools Cinema4D provides, as it is my current go-to software solution when it comes to modelling, rendering and animation. As such, while this will aim to provide a general picture and insights on rigging, the tools described will be following a standard rigging process in Cinema4D.
After working through all of Maxon’s „Hands on“ series, which is more than 13 hours of lectures, dealing with the topic Animation and rigging, and since Cinema is such a powerful software, that provides lots of different tools, my findings will be split into multiple parts:
The blog entries will explore what rigging even is, how it works, why it is important for character animation, how to build a rig, how to connect it to geometry and how to animate it. It will start with the very basics, giving an introduction and explaining concepts, and go all the way to the most advanced tools an animator can use when animating with Cinema4D.
First of all: What is rigging, and why is it important for character animation?
Rigging is a technique used in skeletal animation to move and / or present a character model using a series of interconnected digital bones and joints. More specifically, rigging refers to the actual process of creating a digital skeleton for a character model, that can then be linked to said model in order to move, rotate or animate it otherwise. The linked 3D geometry, in this case, then becomes almost like puppet of the created rigged skeleton and deforms and moves along with it. These movements of singular joints and bones, or even the complete model, can then be keyframed or otherwise recorded in order to create longer, continuous animations.
Great, but how does it work?
Bones and joints
To rig a model in Cinema4D, you first have to create its skeletal rig aand then assign you modeled character or geometry to it. By using the joints tool in the character menu, you can, as the name implies, place joints within your scene. These joints then get connected via bones and are what you would move around and / or rotate in order to animate your character later on. To connect two joints with a bone, simply make one joint into a child of the other joint in the object manager. Here, it is important to note, that hierarchy between the joints is VERY important during the rigging process and also later in animation, because, generally speaking, the direction of the bone goes from the object higher in the hierarchy to the object lower in the hierarchy, so always from parent to child. As such, it is usually a good idea, when animating a humanoid character, to start somewhere close to the center, where the spine would be, usually around the pelvis or the chest region, and go outwards from there creating shoulders, elbows, hips, knees, all the way to hands and toes. This is so important, since the direction of the bone also determines, in which way two joints influence each other.
Forward kinematics, inverse kinematics and their hybrid solutions
As mentioned before, the hierarchy between the joints determines their influence on one another. Generally speaking, a rig is dependent on the direction of the bones, as they are forward kinematic, meaning that, when you move or rotate a joint higher in the hierarchy (parent), all children of that joint (other joints and bones) get moved and / or rotated along with it. However, if you move a joint lower in the hierarchy (child), its parent does not get affected and remains in place. This is, in fact, intentional and desired and can be easily understood by imagining the following:
When you turn your upper body / torso, usually your neck and shoulders along with your arm rotate with it. However, when you rotate only your wrist, your upper body / torso usually remains unaffected. The same principle applies here.
There are, however, situations, where it may become desirable for a lower-hierarchy joint to affect their parent, e.g., when animating a character walking or jumping. When lifting or otherwise moving the foot – which is usually lower in the hierarchy than the knee or the hip – in such a situation, it is only obvious that the knee should bend accordingly at the same time and maybe even the hip to slightly rotate or move upwards, in order to look natural and avoid uncanniness.
To achieve that, it is necessary to create what is known as an inverse kinematic chain between the child-joint and its parent-joint. This chain can be understood as a direct reference between the goal joint, which is the end-joint of the chain (parent, upper hierarchy) and the influencing joint, which is the start-joint of the chain (child, lower hierarchy) and it enables for more fluid and natural looking movements to be created without the need of animating each joint seperately. It also is possible to define, which way a joint higher in the hierarchy / chain should bend or move by setting a pole vector.
So, to sum things up and break them down a little bit:
1) Forwards kinematics work from the top of the hierarchy downwards through the joint-chain, you have to tell each chain-link how to
move seperately and animate every joint as you need it while manually forwarding the movement down the chain.
2) Inverse kinematics work from the bottom of the hierarchy upwards through the joint-chain, you influence the last joint in the chain
and all the joints, that are connected and higher up in the chain react accordingly. This is especially helpful when animating legs, as it
helps them stick to the floor without moving through it, while maintaining proper form.
Understanding how forward and inverse kinematics work and making use of both systems within a rig (hybrid solution) is paramount for proper, good looking animations, that don’t look uncanny or otherwise off.
Simple joint and bone rig using both forward and inverse kinematics
Fan bones / joints for smoother rotations
Fan joints and fan bones are a form of controller – more on controllers will be explained in a later blog post – that basically are a smaller bone and / or joint. These joints, while being the child of another joint and being zeroed-out towards it – meaning it shares its parent’s location, rotation and scale – , act as a support, that blends the rotation of two joints together. It does so, by using a rotational constraint (rigging tag), where the rotational strengths of the two joints can be set. The blending between the joints is dependent on the strength set. This may seem confusing at this point, but its purpose will become clear in later entries. All that is important at this point is to know, that fan joints / bones exist and that they can blend the rotation of two other joints together.
Fan bone sticking out of a simple rigged pipe
Next steps:
- Connecting the created skeletal rig to the character model / geometry
- Parent – based rigging vs. point – weighting and binding
- Edge flow and topology and why it’s important
- Constraints and controllers
Sources:
1. Petty, J.: What is 3D Rigging For Animation & Character Design? , n.y.,
https://conceptartempire.com/what-is-rigging/ online in: https://conceptartempire.com/ [16.01.2024].
2. Maxon Training Team.: Intro to Rigging in C4D: Part 1 – Fundamentals of Rigging, https://www.youtube.com/watch?v=rN_5weIhiMY [12.01.2024].
3. Maxon Training Team.: Intro to Rigging in C4D: Part 2 – Point Weighting, https://www.youtube.com/watch?v=oiEUwM7vdCg [12.01.2024].