What this blogpost is all about
This blogpost will be the final entry on the topic of character rigging and animation in Cinema4D. It will cover some of the more advanced tools Cinema4D provides for character rigging and animation and how they may be used to either achieve even better results or speed up the production process. Finally, it will give a short summary of the covered topic.
Deformation and changing of topology based on movement
Muscle Object
The muscle object follows its name by allowing for the set-up and simulation of anatomically correct muscles and sinews. These muscles can be attached to the joints and bones (the rig) allow the simulation of muscle movement beneath the mesh. Since the muscle object is a very complex and advanced tool, that requires lots of time to set up, however, it is only worth the effort when complete anatomical accuracy is paramount. In these particular cases, however, it is possible to simulate dynamic movement changes, skin deformation, different anatomies and their anatomical changes when influenced by different muscles, programm simulations and many more features that would require a whole seperate tutorial series.
Needless to say, the muscle object is a very powerful tool, if mostentimes a bit too complicated, especially since, as long as one’s goal is a more cartoonish style of animation – or rather just not 100% anatomical correctnes – simulating muscle movements by using the pose morph is usually a much quicker and easier alternative.
Pose Morph
As previously described, when working on muscle movements in a rig, where anatomical correctness is not the main focus, the pose morph can be used to transform mesh topology and animate this transformation. By adding the pose morph tag to the obejct or topology one wants to animate, it is possible to switch between different defined poses by simply moving a slider. The poses, between which the slider switches, can be defined in the edit tab of the tag.
While having the pose morph in edit mode, and while working in point mode on the topology, the pose-morph tag records the initial position of the topology / mesh as original position. Now, when working in point mode with the pose morph tag active in edit mode, any changes made to the mesh, e.g., movement of points or any other disformation, will be recorded and the new, updated mesh will be set as target pose. Now, by accessing the animate tab of the pose morph, the object can be blended seamlessly between the two set poses using a slider. This is also true for any and all affected points of the object – to animate the changing topology parameters like rotation, UVs, scale, normals, and many others can be simply changed and the change recorded. Furthermore, it is important to note, that not only one, but a multitude of target poses can be added, which makes it possible to easily animate and / or blend the same object from its starting position to a wide variety of different target postitions via sliders for all the different set poses. It is, in this regard, very similar to the blend-shapes option in other animation software
This shows, that the pose morph is a very powerful tool, that allows for easy animation and keyframing of the different poses and blend between them seamlessly, by simply keyframing the blend-slider in the animate tab. This, in connection with Cinema4D’s intuitive auto-keyframe option, allows for a very easy, smooth and fast animation workflow while still producing remarkably realistic results.
Parametric and node based animation
As parametric and node based animation is a very deep and complex topic, this chapter will only cover the basics of the available tools, without diving too deep into the programming or concepts behind it, but aims just to show, which tools exist and, in simple terms, how they work and may be used to improve the animation workflow.
C-Motion
C-Motion is a tool so far unique to Cinema4D. It is a tag, which has been specifically created and optimised for animating repeating or cyclical motions, e.g., someone walking, a bird’s wings flapping, the pistons in an engine moving, etc. This tool works using hubs and targets, which have their own hierarchy similar to the already known parent and child hierarchy. When comparing the two, it would be adequate to say that Hubs could be seen as equal to parents, while targets are their child / children.
Within the C-Motion object, to animate a cycle, it is first necessary to set a hub-joint and a target joint. These two can then be continuously animated in a cycle by adding rotations, movement or other actions to the target. The phase tab can then be used to set the length, strength and the start- and endpoint of the desired cyclical movement via a curve.
Using the C-Motion and making sure the movements are either in-phase or out-of-phase to each other makes it easy to make walking appear natural, e.g., to also animate the movement of the arms and legs while walking, so when one leg moves back, the other moves forward and vice versa. The ease, with which a movement can be adjusted by simply adjusting either the strength or entry and exit point of the phase makes the C-Motion a very powerful tool for parametric animation.
XPresso
XPresso is a node-based programming language within Cinema4D. Due to its node based character, all interactions happen within the XPresso shader graph. Within the shader graph, XPresso allows for the connection and relation of different parameters between different objects, which basically allows for interactions between them to be programmed freely via their relations. This way, it becomes possible to, for example, programme, that, whenever object A moves or behaves a certain way, object B behaves a certain way as well. It is, in this regard, similar to constraints, though of course it allows for a much more precise and free interaction, as any relation or behaviour can, with adequate skill, be programmed exactly how the user desires.
To make use of XPresso and manually programme node-based interactions between objects, it is first necessary to add the XPresso tag to the target objetct(s). Then, by double clicking the tag, the shader graph can be access and the desired interaction programmed. When working with XPresso, within the shader graph, it is important to be mindful of the different in- and output parameters and make sure, that values match the desired results, e.g., when working on rotation, making sure whether or not the output of an angle in in degrees or radians, since it can have a huge influence on the later interacations. As such, proper use of re-calculation and re-mapping nodes, where applicable, is crucial.
Now, while it is possible to programme every single interaction manually with XPresso, Cinema4D also offers a shortcut for it. To simply connect two parameters via XPresso, it is also possible to right click the first parameter, which is supposed to influence the other, and chose XPressions -> Set as a driver. Then, simply right click the second parameter, the one to be influenced, and choose XPressions -> set as driven (absolute). This will automatically create a XPresso tag on the target and connect the two parameter in it. It will also change the parameters keyframing appearances to indicate the driving, where the position of the triangle indicated, whether it’s the driver or the driven. This is a very simple way to automatically connect two parameters, though of course it is also prone to error, since there is much less control over what is happening. At this point, it is important to note, however, that, if one is unhappy with the automated results or if the automation produces undesirable results, the XPresso tag can now be accessed manually as well and the interaction refined the same way as if programming it manually.
As such, XPresso can both be a very easy, but powerful tool, but also very deep and complex at the same time, as it allows for interactions between any objects or parameters within Cinema4D to be made as simple or complex as one’s skill allows. With it, a wide variety of complex interactions can be programmed, e.g., the influence of a light source on an object and its reflections or similar complex ideas.
The character object
Cinema4D’s character object is basically a built-in auto-rigging tool, that combines many of the different tools and techniques previously described and automates them to a certain degree. To understand what it is doing and how it works, however, it is important to understand all the previously described concepts, as it will help use the character object to its maximal potential.
Simple character rigged using Cinema4D’s character object
The character object comes with a wide variety of pre-defined tools and settings, that can be a shortcut when working on very basic meshes and can further cut production time when animating. It is important to note, however, that, same as many other tools in Cinema4D, it can be manually extended or adjusted however needed by the user. With the character objects, the rig can be set up manually or automatically, in a similar way to how normal rigging with bones and joints works. The character object, however, has the advantage that controllers, IK chains and similar controlls / additions can be added and adjusted much more easily than by adding them one by one in a very holistic manner., thus speeding up both the rigging and the animation process. It is one of Cinema4D’s most powerful tools when it comes to animation, as it can be adapted to fit almost any topology and comes with as wide variety of presets and supports, that make adding, for example, mo-capped animations to your mesh very easy.
Summary
To sum up the previous three blogposts, Cinema4D is a very powerful software solution, with a wide variety of tools and approaches to work with, that, when used correctly, can achieve remarkable results when animating. To achieve said results, however, it is crucial to both know about the described tools and be steadfast and secure in their use, which is something, that I am still working on. It is also always important to keep in mind, what the desired endgoal for the animation should be like, as some tools, such as, for example, the muscle object, may yield very little gain for the considerable amount of effort that goes into setting it up. When keeping all these things in mind, however, it can be remarkably simple to achieve great and fun results when animating with Cinema4D and I am very much looking forward to the results my journey with this software may still lead me to.
Sources:
1. Maxon Training Team.: Intro to Rigging in C4D: Part 3 – Constraints & C-Motion, https://www.youtube.com/watch?v=sUkRFEQGTqU [26.01.2024].
2. Maxon Training Team.: Intro to Rigging in C4D: Part 4 – Character Rigging/The Character Object, https://www.youtube.com/watch?v=Co2hPxJhgT4 [26.01.2024].
3. Maxon Training Team.: Intro to Rigging in C4D: Part 5 – More on the Character Object and Features, https://www.youtube.com/watch?v=QuAJRZKeRe8 [26.01.2024].