MOCCA
MOCCA Programming Team Christian Losch, Philip Losch, Richard Kurz, Tilo Kühn, Thomas Kunert, David O’Reilly, Cathleen Poppe. Plugin Programming Sven Behne, Wilfried Behne, Michael Breitzke, Kiril Dinev, Per-Anders Edwards, David Farmer, Jamie Halmick, Richard Hintzenstern, Jan Eric Hoffmann, Eduardo Olivares, Nina Ivanova, Markus Jakubietz, Eric Sommerlade, Hendrik Steffen, Jens Uhlig, Michael Welter, Thomas Zeier. Product Manager Marco Tillmann. QA Manager Björn Marl.
MAXON Computer End User License Agreement NOTICE TO USER WITH THE INSTALLATION OF MOCCA (THE “SOFTWARE”) A CONTRACT IS CONCLUDED BETWEEN YOU (“YOU” OR THE “USER”) AND MAXON COMPUTER GMBH ( THE “LICENSOR”), A COMPANY UNDER GERMAN LAW WITH RESIDENCE IN FRIEDRICHSDORF, GERMANY. WHEREAS BY USING AND/OR INSTALLING THE SOFTWARE YOU ACCEPT ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. IN THE CASE OF NON-ACCEPTANCE OF THIS LICENSE YOU ARE NOT PERMITTED TO INSTALL THE SOFTWARE.
. Transfer (1) You may not rent, lease, sublicense or lend the Software or documentation.
which the date of the purchase according to the invoice is decisive). The Licensor is free to cure the defects by free repair or provision of a faultless update. (2) The Licensor and its suppliers do not and cannot warrant the performance and the results you may obtain by using the Software or documentation. The foregoing states the sole and exclusive remedies for the Licensor’s or its suppliers’ breach of warranty, except for the foregoing limited warranty.
12. Other (1) This contract includes all rights and obligations of the parties. There are no other agreements. Any changes or alterations of this agreement have to be performed in writing with reference to this agreement and have to be signed by both contracting parties. This also applies to the agreement on abolition of the written form. (2) This agreement is governed by German law. Place of jurisdiction is the competent court in Frankfurt am Main.
Contents 1 MOCCA Layout and Palette ...............................................................................5 2 Introduction to IK ..............................................................................................9 3 MOCCA IK Tag .................................................................................................. 13 Attribute manager settings ................................................................................................................. 14 Tag Properties...
9 TimeWarp Tool .................................................................................................69 10 PoseMixer Tag ................................................................................................ 73 Attribute manager settings ................................................................................................................. 75 11 P2P Library and Manager...............................................................................
INTRODUCTION 1 MOCCA Introduction Character animation — a constant in the world of 3D and the ultimate discipline. You can easily animate any character using MOCCA’s powerful yet simple to understand tools, from a comic book superhero to a squirrel juggling burning nuts. Since MOCCA‘s initial release we have been able to improve the module by collecting and evaluating your comments, new ideas and suggestions.
1 MOCCA Layout and Palette
MOCCA LAYOUT AND PALETTE 5 MOCCA MOCCA Layout and Palette Although you can access all of MOCCA’s commands from menus, you may find it quicker to use the MOCCA palette and MOCCA layout. Reach MOCCA commands quickly and save time using the predefined MOCCA layout and MOCCA palette. The MOCCA palette is integrated automatically into the MOCCA layout.
2 Introduction to IK
INTRODUCTION TO IK 9 MOCCA Introduction to IK MOCCA and Soft IK offer a completely new approach for animating characters. Almost all possible movements are handled via soft constraints. These enable you to go beyond the world of strict constraints. You have probably heard the term Inverse Kinematics (IK) before; it has become quite a buzzword in the 3D world, particularly when it comes to character animation.
10 INTRODUCTION TO IK MOCCA The following example of earlier IK systems is familiar. You drag a bone target object from one position to the next and the IK chain practically jumps into place. IK systems that limit the freedom of rotation of each bone often create dead spaces. These, sometimes large, spaces are created by overlapping rotation limits. The larger the limits are for each bone, the bigger the dead zones. This can escalate to the point of producing completely unmovable IK chains.
3 MOCCA IK Tag
MOCCA IK TAG 13 MOCCA MOCCA IK Tag MOCCA IK tags add a great deal of control to your bone setup. In these pages you’ll find a description of each setting in the MOCCA IK tag. The MOCCA IK tag helps make CINEMA 4D’s standard bones more powerful. Once the tag has been assigned you can make full use of MOCCA for optimal control over your bones. You can assign the MOCCA IK tag by clicking on the object with the right mouse button in the object manager.
14 MOCCA IK TAG MOCCA Attribute manager settings Tag Properties Use UK This option activates or deactivates IK for the bone chain. The option can be found within every MOCCA IK tag of the IK chain. Note that the entire chain is linked to this command. Turning it off for one tag will deactivate it for the entire chain. The same applies to turning it on again. Anchor An anchor is the root of any given chain. A classic anchor in a 3D character would be the hips.
MOCCA IK TAG 15 MOCCA Hard IK This option is only available when Anchor is enabled. This option lets you control the bone’s movement and behavior. MOCCA uses Soft IK from the previous version by default to control bones. As the name suggests, Soft IK is ideal for use on “soft” bones because it exhibits a certain dynamic of its own. This makes it prefect for cartoon characters or body parts that require a softer movement.
16 MOCCA IK TAG MOCCA Speed This option is only available when Anchor is enabled. Controls the speed at which the dynamic simulations are played back. The default value of 10% initiates a slow reaction. Experiment with this setting. A small, light character might move more quickly than a large, heavy one for example. The trunk of an elephant would require slower movements and therefore lower values. Drag This option is only available when Anchor is enabled.
MOCCA IK TAG 17 MOCCA Inertia This option is only available when Anchor is enabled. Inertia controls how much of a root bone’s movement is translated into torque for its children. Torque is the force that causes rotation. Moving a bone chain around will make torque affect the angle between each of the bones. Low values won’t cause too much disruption in the chain, whereas high percentage values will jiggle the chain more and more. Color This option is only available when Anchor is enabled.
18 MOCCA IK TAG MOCCA Let’s take a look at an example of this in the following images. Three control objects assigned to a typical bone setup for a foot. The image shows a typical bone setup which will be controlled using IK. Three control objects have been assigned for the foot (see blue arrows). Now the bone will be bent to the rear. In the past one could only bend the leg by moving the control objects using IK.
MOCCA IK TAG 19 MOCCA Now MOCCA lets you reach your goals any way you want. MOCCA will recognize any control objects connected to your bones and move them with your FK rotation (see image). MOCCA can now move the control objects with your FK rotations. Display In Editor You can use the Display In Editor option to control the display of visual aids in the viewport. For example, this allows you to have the connection between the first and last element in an IK chain displayed as a thin line.
20 MOCCA IK TAG MOCCA Constraint The Constraint settings allow you to control the bone chain with other objects in the scene. This page is shown only if Anchor is disabled on the Tag Properties page. The Constraint settings define the controls that force the IK chain into another form or direction; they allow another object to be used to move the bone chain.
MOCCA IK TAG 21 MOCCA Use As Pole You can very easily obtain control over unwanted bone rotation using the option Use As Pole. Pole vectors represent the planar surface between these three points. Pole vectors represent a planar surface between the following three points (see image) of a pair of bones: 1 The beginning of the first bone. 2. The end of the first and beginning of the second bone. 3. Around the end of the second bone.
22 MOCCA IK TAG MOCCA Distance Chopsticks enable you to rotate the chain around the value of the Distance setting. The behavior of the Distance setting depends on the Chop Sticks setting. If Chop Sticks is enabled, this parameter sets the length of the chopsticks (see below). If Chop Sticks is disabled, it defines the distance between the tip effector and tip goal constraint within the bone chain.
MOCCA IK TAG 23 MOCCA There are cases in which the chain may have various alternative ways of conforming to all the constraints. Take a leg, consisting of an upper and lower thigh. The upper thigh is parented to a root bone and the lower thigh has a tip effector, which is linked to a goal constraint. If you move the goal constraint, the chain has no clear way of knowing how the angles behave between root and effector. On longer chains this can sometimes cause chaotic twisting of the IK chain.
24 MOCCA IK TAG MOCCA Limit Limits define the position and rotation spaces that your chain may not leave. The only way for the chain to break away from these limits is to use strong constraints that try to pull the chain through the prohibited spaces. You could say that a lot of strength is necessary to pull the joints beyond their limits. This page is shown only if Anchor is disabled on the Tag Properties page.
MOCCA IK TAG 25 MOCCA Strength This defines the strength of the position (X, Y, Z) or rotation (H, P, B) limits. Be careful about using too high a Strength value, especially for a rotation limit. If you’re using rotation limits on all bones, the limits might start working against each other, causing the chain to twitch wildly. Therefore only increase the rotation limit strength a little at a time.
26 MOCCA IK TAG MOCCA Using position limits, you can construct the chain with an offset between the bones. Rotation limit settings (H, P, B) A bone chain, set up with heading rotation limits and Up Vectors. This option enables you to confine the freedom of rotation of the joints in the chain. The Min and Max entry fields next to R.H, R.P, R.B define the rotation limits for heading, pitch and bank. This is where you define the angles within which the bones can move freely.
MOCCA MOCCA IK TAG 27 The limits will only be active when they are enabled by checking the relevant boxes. Otherwise the allowed movement or rotation will be unlimited. If you want to prevent a change of heading, just enable the H limits. The default values of 0 for Min and Max tell the bone to move 0 degrees on heading and it therefore can only be pulled in that direction by increasing Strength.
28 MOCCA IK TAG MOCCA Rest Using the parameters on this page, you can control the rest position and rotation of each joint to which the character will return when the constraints are either inactive or reduced. This page is shown only if Anchor is disabled on the Tag Properties page. These settings define a rest position and rotation — a space to which the IK chain will return when the other constraints are inactive. Imagine a character that is pulled with great force from her original position.
MOCCA IK TAG 29 MOCCA Reset To Rest State Clicking this button will cause the IK chain to return to its predefined rest position and rest rotation. Since you will probably have other active constraints in the scene preventing this, the Use IK option will automatically be turned off at the root bone. Strength, Pos X, Pos Y, Pos Z, Set These values define the initial rest position for the IK chain.
30 MOCCA IK TAG MOCCA MOCCA IK Commands These commands help you to create MOCCA IK chains and fully automate your setup. When setting up a Soft IK chain, you’ll need to use the MOCCA IK commands. Using these, you can add anchors, goals and more and save time with the Setup IK Chain tool, which fully automates the Soft IK setup for simple bone chains. You’ll find these commands on the Plugins > MOCCA sub-menu as well as on the MOCCA palette.
MOCCA IK TAG 31 MOCCA Add Up Vector By selecting this, an Up Vector will be added to the selected bone, constraining its Y-axis orientation towards a control object placed above it. This object will adopt the name of the bone along with the suffix ‘Up’. Adding this to the bone called ‘Upper thigh’ for example, would result in an Up Vector control object with the name ‘Upper thigh.Up’.
32 MOCCA IK TAG MOCCA The default value of 50 milliseconds (20 frames per second) is quite enough to make the movements smooth. Note that each redraw costs processing power. Higher redraw times will cost more processor time. 50 milliseconds is a good average value. Very complex scenes may, however, require faster redraw times. Auto IK-Lock The Auto IK-Lock option is closely related to the ability in MOCCA to seamlessly switch between IK and FK when you are animating.
4 Bone Tool
BONE TOOL 35 MOCCA Bone Tool With the bone tool, you can create and adjust bone chains quickly and easily, using a variety of tools. The bone tool is the tool of choice for preparing your virtual characters for that big Hollywood role. MOCCA was given an extra tool to let you put together your 3D star’s skeleton quickly and intuitively and easily position them in your scene. If you make a change to a bone, changes to its dependent bones will be made accordingly.
36 BONE TOOL MOCCA As soon as you switch from the bone tool to another tool such as rotate, the bones will be reactivated automatically and the mesh will be influenced by the bones once again. The Use Animation and Use Expressions options will also be activated again.
BONE TOOL 37 MOCCA Continuously using this command will add a new child bone for every push of the button, quickly creating an entire chain. You can also add child bones by Ctrl-clicking in the viewport, in which case a new bone is added to the chain between the tip of the last bone and the position of the mouse pointer. If you look closely, you’ll notice a yellow dot at the origin of each bone. These are handles. Drag them to scale and rotate the bones interactively in the viewport.
38 BONE TOOL MOCCA Use this command before Setup IK Chain, since the latter will fix the rest position of the bones. If the Null bone is added later on, the following bone cannot be placed at the tip of the shorter null bone, because it inherits the rest position. The chain would be elongated.
5 Bone Mirror Tool
BONE MIRROR TOOL 41 MOCCA Bone Mirror With this tool you can mirror individual bones and entire chains including tags, Claude Bonet maps and much more. Before using the bone mirror tool (left) and after (right). The bone mirror tool is a powerful accessory that can speed up your work with bones by mirroring not only the bones but also tags, constraints, selections and more. To select the bone mirror tool, choose Plugins > MOCCA > Bone Mirror or select the Bone Mirror icon from the MOCCA palette.
42 BONE MIRROR TOOL MOCCA Attribute manager settings Plane This is where you select the plane onto which the setup is mirrored. Imagine putting half an orange onto a mirror, open side facing the mirror. The half orange suddenly appears like a complete one. The mirror is the equivalent of the tool’s plane that you choose from this drop-down list. Origin The Origin setting defines a point through which the Plane should pass, thus defining the mirror’s position. Choose one of the following settings.
BONE MIRROR TOOL 43 MOCCA Auto Find Center, Match Search The Auto Find Center option is designed to help you mirror Claude Bonet maps, point and polygon selections, as well as vertex maps. Imagine having built a character and set up half of it with bones. You might also have set the range of influence of some of the bones with the Claude Bonet tool. Naturally, you’ll want the bone mirror tool to copy those weights properly to the other side, too.
44 BONE MIRROR TOOL MOCCA Clone Animation If this option is enabled, the chain’s existing animation tracks are cloned. Mirror Children When enabled, this option will mirror the children of the selected bone, as well as any control objects. If the option is disabled, only the selected bone will be mirrored. Mirror Constraints If this option is enabled, existing Restriction tags and the constraints defined in the Attribute manager will be mirrored as well.
6 Claude Bonet Tool
MOCCA Claude Bonet Tool The process of weighting bones is quick and easy with this tool. It enables you to set influences and assign them to bones at the same time. CLAUDE BONET TOOL 47 The Claude Bonet tool takes its name from the word ‘bone’ and from the name of the leading exponent of impressionism, Claude Monet. Before we explain what the Claude Bonet tool does, some explanation of bone weighting is in order. Bones are deformers.
48 CLAUDE BONET TOOL MOCCA Attribute manager settings In the Attribute manager, you’ll find all the commands and options that are needed to weight the bones. Only Modify Visible Elements If this option is enabled, you can paint visible elements only. Invisible elements are ignored. Display All Bones When enabled, this option will display the influences of all bones on the geometry, in the selected chain. What you’ll see is the color display of the existing Claude Bonet weighting range.
CLAUDE BONET TOOL 49 MOCCA Paint Absolute The links between the bones and the individual points in the mesh will be saved by Claude Bonet as weighting information within the points themselves. Normally, if you paint weighting with a strength of 20%, for example, each brush stroke will add another 20% to the area. By holding down the Ctrl key while you paint, you can erase the weights. Paint Absolute will disable the above behavior. You’ll then paint with the absolute Strength value only.
50 CLAUDE BONET TOOL MOCCA Set Reference With this command, you can apply the same Claude Bonet weight to multiple bones. This helps you to quickly set the weighting for similar bones such as the finger bones of a hand. It’s not absolutely necessary to assign all joints of a bone chain a separate weighting for the mesh. Particularly in areas where a lot of bones control a small section, such as hands, it may be easier to simply apply the same Claude Bonet weights to all fingers.
CLAUDE BONET TOOL 51 MOCCA Before using Set Value (left) and after (right) with Strength set to 100%. Radius The Radius defines the size of the brush with which you paint the weights. Experiment with the radius. Remove Paint (This Bone) Erases the weighting of the selected bone. You can use this function if the weighting is bad and you want to start again instead of reworking the bad map.
52 CLAUDE BONET TOOL MOCCA Further usage advice When weighting bones with Claude Bonet it is important to know which of the three possible bone parameters you are working with: 1. Smart Bone disabled. 2. Smart Bone enabled, Absolute Vertex Map disabled. 3. Smart Bone enabled, Absolute Vertex Map enabled. Each of these properties requires a different method of application of the Claude Bonet tool because each property uses a different algorithm to deform the mesh with the bones. 1.
CLAUDE BONET TOOL 53 MOCCA Examples The difference between using smart bones and normal bones becomes clear when you take a look at the following examples. For these examples no Claude Bonet maps were used in order to make the differences as clear as possible. As these examples suggest, you may need a different Claude Bonet weighting when using smart bones than you do when using normal bones.
54 CLAUDE BONET TOOL MOCCA Additional comments The structure of the object is also very important with regard to painting maps. A highly subdivided object will be deformed differently than an object with fewer subdivisions. The deformation of a cuboid with few subdivisions in a HyperNURBS object via four bone objects (the polygonal cube was subdivided three times using the Knife Tool). Each bone was weighted using Claude Bonet, where the weighting overlaps the segments (right).
7 Cappuccino Tool
CAPPUCCINO TOOL 57 MOCCA Cappuccino Tool Cappuccino is MOCCA’s integrated motion capture tool. It enables you to create lifelike motion for your characters, from a head nodding in agreement to a gecko catching a fly with its tongue. With Cappuccino you can quickly create all kinds of realistic movements for your 3D characters and models, simply by recording mouse movements. Cappuccino is MOCCA’s integrated motion capture tool. Take an object, activate the function and drag it around the viewport.
58 CAPPUCCINO TOOL MOCCA Action pane Here you’ll find the buttons for recording the keyframes in different ways. Single Keyframe This will record keys for the selected object(s) at the current Timeline position and according to the Where and What selections within the dialog. Simply select an object, or objects, and click Single Keyframe. This button describes the same functionality as the record button on the Timeline.
CAPPUCCINO TOOL 59 MOCCA Stop Realtime Think of this as that ‘Quiet: Live Recording’ sign that you see in recording studios. Its sole purpose is to indicate when the recording has finished. When you’re not recording, this button is appears ‘pressed’. During recording, it appears ‘unpressed’. The Stop button during the recording (left) and after (right). When pane Here you can define the time frame for the recording or choose to simply get going without being tied down to a specific time frame.
60 CAPPUCCINO TOOL MOCCA User When this option is chosen, user-defined settings can be entered manually in the Cappuccino dialog. The recording will take place between the frame numbers you set in the From and To edit boxes. Start At Current Time Enabling this option will allow you to choose the starting point of your animation interactively. The current position of the time slider will define the frame at which recording begins.
CAPPUCCINO TOOL 61 MOCCA Use Existing Sequences If objects within a layer already have sequences, these will be used for recording when you enable this option. This also means that keys can be written only where a sequence is present. Disabling this option will cause MOCCA to extend the sequence to cover the entire recording time.
62 CAPPUCCINO TOOL MOCCA Selection This drop-down list gives you a choice of two ways of object selection. If you want to record keys for only one object, select Object manager in this list; you won’t be able to record keys for multi-selected objects in this mode. If you choose Timeline, however, you can select several objects simultaneously in the Timeline and record keys for all of them. Remember that, if the Timeline is in manual mode, it may not show all the objects that you want to record.
8 KeyReducer Tool
KEYREDUCER TOOL 65 MOCCA KeyReducer Tool Motion captured tracks often have more keys than are necessary, making them difficult to edit. Using the KeyReducer tool, you can quickly reduce the number of keys without losing the ones that matter. KeyReducer is an invaluable tool when it comes to cleaning up motion capture tracks such as those created using MOCCA’s Cappuccino tool. Most motion capture systems write a key per frame to ensure that all important data is captured.
66 KEYREDUCER TOOL MOCCA As soon as you release the slider it will jump back to 0%. If you’re not satisfied with the result, simply move the slider again or select Undo (Action) from the Edit menu. Boost If you reduce keys without the Boost option, you’ll still notice some unnecessary keys. These are mostly keys that fall between the ups and downs of a curve. The Boost option eliminates these keys while still maintaining the peaks and overall shape of the curve.
9 TimeWarp Tool
TIMEWARP TOOL 69 MOCCA TimeWarp Tool Using this tool, you can quickly find a specific frame in an animation. TimeWarp is your personal time machine. You might find it helpful to think of TimeWarp as a multiple frame jog dial on your VCR when you’re skipping through a film scene that might be hundreds of frames long. Normally, it is very difficult to find a specific frame in a scene but TimeWarp will do this for you, without you having to drag any sliders.
10 PoseMixer Tag
POSEMIXER TAG 73 MOCCA PoseMixer Tag You can easily morph objects from one shape to another using this tool. It is especially useful for animating a character’s mouth, where each mouth shape is a separate morph pose. The PoseMixer tag is a morphing tool. Simply put, morphing is the transition of one form to another. The PoseMixer uses deformed duplicates of an object to achieve this. PoseMixer works just like an audio mixer or synthesizer.
74 POSEMIXER TAG MOCCA New in-between poses can be generated quickly, simply by dragging the slider. PoseMixer offers you the advantage that you can move between poses smoothly and new in-between poses will be generated. The eyes should only open halfway? No problem! Simply move the slider to 50% and the eyes will be half open. With the endless pose mixing possibilities you can create complex animation for faces in the blink of an eye. PoseMixer allows you to control objects, bones, splines and points.
POSEMIXER TAG 75 MOCCA Note to users of previous versions of MOCCA PoseMixer has been completely reworked for the new release of MOCCA. Contrary to the previous version, PoseMixer is now a tag, NOT a separate object. This improves PoseMixer’s functionality and makes it easier to work with. When using PoseMixer to mix autonomous states you can position it to basically any object without having to take the position of the other objects into consideration since it is not bound by hierarchies.
76 POSEMIXER TAG MOCCA Position You can prevent PoseMixer from changing the destination object’s position by disabling this option. This is especially important for animating faces, for example, which generally use a different object for each expression. Previous versions of MOCCA required you to create objects each with the exact same coordinates or simulate this with Null objects. This is no longer necessary in the new version of MOCCA.
POSEMIXER TAG 77 MOCCA Destination You can apply the PoseMixer tag to any object in your scene; it doesn’t have to be applied to the destination object (the object that will be morphed by the poses). The choice is entirely up to you. Because you have this freedom to choose which object to add the tag to, you need to let MOCCA know which object you want to use as the destination object. To choose the destination object, drag and drop the desired object from the Object manager into the Destination box.
11 P2P Library and Manager
MOCCA P2P Library and Manager Collect and manage poses for your animation with these useful tools. P2P LIBRARY AND MANAGER 81 The abbreviation ‘P2P’ stands for ‘Pose to Pose’ and simply describes a process of animation that moves from one predefined pose to the next. The P2P library serves as the archive for these poses.
82 P2P LIBRARY AND MANAGER MOCCA Pose2Pose manager settings The P2P manager is where you collect all the poses that you want to store in the P2P library. Record Record will place a key for the selected pose at the current position in the Timeline. This key will not be placed on the destination character’s track, but on the P2P library object’s Pose track.
P2P LIBRARY AND MANAGER 83 MOCCA Edit This command enables you to edit the poses in the P2P manager. It places a copy of the selected pose in the scene; by default, this pose does not contain the full geometry, only nulls as placeholders for the position of the character’s parts. Enabling the Geometry option will copy the entire geometry instead of the nulls. At this point you can edit the pose and then replace the original pose by clicking the Sync button.
84 P2P LIBRARY AND MANAGER MOCCA Attribute manager settings Key Properties Set the parameters for each key on a Pose track in this dialog. When you select a key on the Pose track of a P2P library object, you will see the following Key Properties in the Attribute manager. Name Here you can rename the pose, making it easier to document and organize your animation. Note that the naming of the pose in the P2P manager and the key in the Attribute manager do not have to match, nor will this break the link.
P2P LIBRARY AND MANAGER 85 MOCCA EasyEase EasyEase will create an S-shaped curve for smooth in and out transition of the animation. EasyEase creates a smooth in and out transition. Smooth When you loop a Pose track within a Timeline sequence, copies of the sequence will be placed one behind the other in the Timeline. This could lead to hard breaks between each sequence. Enabling the Smooth function will smooth out this transition and is similar to the Soft setting of the sequence interpolation.
12 Quaternion Tag
QUATERNION TAG 89 MOCCA Quaternion Tag The dreaded problem of gimbal lock becomes a thing of the past when you use this powerful tag. Surely you have already heard of the dreaded ‘gimbal lock’ in connection with character animation. Or worse, you already have experience of it. Now Quaternion has stepped up to the plate! CINEMA 4D uses Euler angles by default to interpolate the rotation of bones. The individual components of the Eular angles are interpolated independently of one another.
90 QUATERNION TAG MOCCA So far so good. Now let’s take a look at what happens to the path taken by the rotation animation if it is interpolated in the traditional way, i.e. using Euler angles. Suppose you have keyframed the object to rotate around P by –185°. The object will rotate, from the point of view of the camera, through 185 degrees clockwise (see left image below). Interpolation with Euler angles (left) and quaternion interpolation (right). Now let’s look at the way Quaternion behaves.
QUATERNION TAG 91 MOCCA The sphere prior to animation (left) and there sphere’s start and end angles for the rotation animation (right). In the images above, the left image shows the sphere with the red marker prior to animation. The right image shows the start and end angles — ‘A’ and ‘B’ respectively — for the sphere’s rotation. The following pictures demonstrate the paths taken by the sphere, where the distance between each red marker corresponds to five frames.
92 QUATERNION TAG MOCCA The two other types of quaternion interpolation (right). The images above show the path taken by the sphere with the two other types of interpolation. So when should you use Quaternion tags? When you are working with characters it makes sense to use Quaternion tags for all joints that probably won’t be rotated by more than 180 degrees around any axis between two keyframes.
13 Motion Blending
MOTION BLENDING 95 MOCCA Motion Blending MOCCA’s advanced motion blending allows you to easily combine multiple separate motions into one smooth, continuous action. Motion blending is the successor to the MoMix object from previous versions of MOCCA. Because Motion Blend is not an object but a Timeline function, it is much more flexible than the old MoMix object it has replaced. Motion Blend lets you animate various movements of a character independently of one another.
96 MOTION BLENDING MOCCA Step 2 Add a destination object without animation if you don’t already have one (ideally its bone hierarchy should match that of the motions). Step 3 Select the destination object and choose Plugins > MOCCA > Setup Motion Blend Tracks. Three new tracks will be created in the Timeline: two for motion and one for the transition. Step 4 Add a sequence to each track.
MOTION BLENDING 97 MOCCA Setup Motion Blend Tracks This command, which is on the Plugins > MOCCA sub-menu, creates the tracks that are necessary for motion blending. In general, you should select the top-most object in the destination’s hierarchy before calling the command. The command will assign three empty tracks to the selected object: Motion A, Transition and Motion B. These tracks are created automatically when you choose Setup Motion Blend Tracks. Add a sequence to each of these tracks.
98 MOTION BLENDING MOCCA If the transition currently makes no sense, MOCCA will display a question mark on the sequence. A question mark indicates that the transition makes no sense. You can set up the transition sequence in many different ways. The most popular methods are: The most popular set-ups for the transition sequence. Motion B This is where you define the second motion that will be transferred to your character. The first motion, Motion A, will blend into this second motion.
MOTION BLENDING 99 MOCCA Show Transitions You’ll find this command on the Plugins > MOCCA sub-menu. It controls whether transitions are displayed in the viewport. You call also switch off transitions locally using the Attribute manager settings for the sequences. Show Transitions disabled (left) and enabled (right). Transitions displayed in the viewport should act as a guide to help you set and fine-tune the motion sequences, i.e. how a motion starts and how it ends.
100 MOTION BLENDING MOCCA Color The Color option lets you change the color of the transition displayed in the viewport and the text color of the sequence in the Timeline. Show Transition Here you can choose whether the transition should be displayed for the motion. You can also switch transitions on or off globally using the Show Transitions command on the Plugins > MOCCA submenu.
MOTION BLENDING 101 MOCCA The Auto Trim feature will mask off all parts of the motion except the part that fits the transition sequence. The masked parts are indicated by a thick dark gray bar that sits on the bottom of the sequence. Left Trim and Right Trim allow you to manually adjust which parts of the motion are masked. Position, Rotation These values allow you to smooth the transition. Here you can adjust the position and rotation data for the motion sequence in order to smooth the transition.
102 MOTION BLENDING MOCCA Manual Match Previously in this chapter we’ve seen that you can adjust the transition from Motion A to Motion B by using the position and rotation values or by using Auto Match. Manual Match is a combination of these two methods: when you click on the button it will automatically set the position and rotation values to what MOCCA thinks is the best place for the transition, and you can then manually fine-tune these values using the position and rotation settings.
MOTION BLENDING 103 MOCCA In principle, a Timing value of 100% corresponds to the exact timing of the motion from the start of the path to the end of path. If you set Timing to a value greater than 100% and Estimate is disabled, the character will travel all the way to the end of the path and when it gets there it will move on the spot for a while. With a value less than 100%, the character won’t reach the end of the path.
104 MOTION BLENDING MOCCA Detail Properties The padlock icon defines which part of the character the Auto Match option should concentrate on. Padlock icons If the Auto Match option on the Motion Blending page is enabled, you can use the Treeview to choose which parts of the character Auto Match should concentrate on (called ‘weighting’) when searching for the most appropriate time in the animation to blend between the motions.
MOTION BLENDING 105 MOCCA Transition Properties Automatic, Bias In, Bias Out, ... The Automatic option activates a linear transition. This is represented in the Timeline as a line in the transition sequence — see the left image below. If Automatic is enabled, the transition will be linear (left). For non-linear transitions, such as the right example, disable the Automatic option.
106 MOTION BLENDING MOCCA Auto Size The Auto Size button resizes the transition sequence to neatly cover the overlap between the Motion A and Motion B sequences. The length of the transition sequence will then automatically run from the beginning of the second motion to the end of the first motion. Before using Auto Size. After using Auto Size.
14 Retarget Tag
RETARGET TAG 109 MOCCA Retarget Tag With this powerful tag you can easily tranfer motion from one character to another. The Retarget Tag lets you assign animation data from one character to another even if the characters‘ proportions don’t match! You‘ve just animate a dwarf for your client and your client has changed her mind and wants a giant to be animated instead? No problem. Simply assign the dwarf’s animation to the giant! MOCCA does the re-proportioning for you thanks to the Retarget tag.
110 RETARGET TAG MOCCA Attribute manager settings Source Drag and drop the object whose motion you want to transfer (the source object) into this box. Target Into this box drag and drop the object that should receive the motion (the target object). Only the highest object in the hierarchy must be dragged into this box — its child objects will be included in the transfer automatically. Neutral Into this box drag and drop the object that defines the neutral state.
MOCCA RETARGET TAG 111 If the option is disabled, the Retarget Expression will orient itself according to the names used in the hierarchy. This is useful when there are differences in the hierarchy between the source object and the target object. One example of this would be when transferring the animination of a character that has a tail to a character that doesn‘t have a tail. Because a tail does not exist in the character that is receiving the transferred motion, the tail motion data will be ignored.
15 Clothilde
CLOTHILDE 115 MOCCA Cloth NURBS Cloth must be applied to a polygon object. Further more, how the polygon object is subdivided will play an important part in how well the cloth will animate when used with Clothilde. Cloth must be applied to a polygon object. For realistic cloth, cloth objects should ideally have as high a polygon count as possible. This will give the cloth engine more points to simulate cloth with and will lead to higher quality results.
116 CLOTHILDE MOCCA The functionality of the Cloth NURBS object is the same as the HyperNURBS object. Place the cloth object as a child of the Cloth NURBS object and the cloth will be smoothed or more accurately subdivided. To disable the Cloth NURBS object just click the green check mark next to the object in the Object manager so it becomes a red ‘X’. This completely disables the Cloth NURBS object from smoothing its child object. Click the green check mark to disable the Cloth NURBS.
CLOTHILDE 117 MOCCA The original cage object (left) and the cage smoothed with Subdivisions set to 2. The images above show the original polygonal cage that has the Cloth Tag applied to it (left) and the same polygonal cage with a Cloth NURBS object applied to it using a Subdivision value of 2. The wrinkles and bulges of the cloth become more defined as the subdivision increases. Due to the nature of the Cloth NURBS algorithm, wrinkles in the surface become more apparent as the subdivision increases.
118 CLOTHILDE MOCCA Limit disabled (top) and enabled (bottom). - With the Limit option enabled the subdivided surface will not pass through the control cage’s surface. The direction of the surface normals for the polygonal cage will determine if the Cloth NURBS is passing through the geometry. Thickness This is another property that separates Cloth NURBS from the HyperNURBS object. By increasing the Thickness setting, the Cloth NURBS object will generate a form of extrusion to make the cloth look thick.
CLOTHILDE 119 MOCCA Cloth Tag The Cloth tag identifies an object as a cloth object. In order to identify an object as a cloth object, its first requirement is that it is a polygon object. Using the Make Editable command will convert a primitive into a polygon object allowing for it to inherit cloth attributes. This next part of the process is done by applying a Cloth tag to a polygon object.
120 CLOTHILDE MOCCA Cached State After a simulation has been cached, or the calculations have been stored in RAM, the icon will look as shown above. When the icon is in this state only the cached solution will be played back. This icon will also appear when the Cache Mode option on the Tag Properties page is enabled. Engine Disabled State The icon of the tag will also change its appearance when the Cloth Engine option in the Tag Properties tab is disabled.
CLOTHILDE 121 MOCCA Tag Properties The settings found on this tab affect the actual structure of the control cage. This also provides functions that handle the stored calculations of the cloth simulation. Cloth Engine This option turns the cloth simulation on and off. With a checkmark placed in the checkbox for this field, the cloth engine is live. This turns on the engine, allowing for solutions to be solved for the cloth object.
122 CLOTHILDE MOCCA Springs work much in the same way as those found in Soft Body Dynamics: Structural springs (left), shear springs (center) and flexion springs (right). Structural This will connect each point of the cloth object to its neighboring point with an imaginary spring. These points must share a common polygonal edge for a spring to be created. These springs are essentially the topology of the geometry that is being used.
CLOTHILDE 123 MOCCA Rubber set to 0% (left), 50% (center) and 85% (right). The image above shows three identical cloth objects with the exclusion that the Rubber setting has been altered. The higher that this value is, the more that the cloth objects can stretch. Bounce This parameter controls the amount of bounce for the cloth object. This value is taken into account during a collision with a Collider object.
124 CLOTHILDE MOCCA Self Collision This option will allow for the cloth object to collide against its own points. This prevents the cloth from penetrating its own surface when the simulation is being played. Due to the amount of calculations that the solver must perform when this option is enabled, it may cause the playback in the viewport to slow down. When extreme forces are applied to the cloth object, intersection may still occur due to these extreme forces.
CLOTHILDE 125 MOCCA Calculate Cache This is the function that will create the stored calculations for the cloth engine to read. After being executed, the engine will begin playing through the animation as it stores the calculations into memory. After the calculation is finished, Cache Mode will be automatically enabled and will begin reading the cached solution. You can observe the percentage of the scene that has been calculated for through the static text display in the Attribute manager.
126 CLOTHILDE MOCCA Forces Gravity Gravity is a force that pulls the cloth object in a certain direction. The Gravity parameter will always be calculated for the Y-axis and will have an effect on the cloth object on that axis. If the number in this field is negative, Gravity will be calculated down the Y-Axis. If it’s positive it will be calculated up the Y-axis. This value will default to –9.81, which is Gravity’s actual force in the real world (-9.81 m/sec^2 to be exact!).
CLOTHILDE 127 MOCCA Belt Influence This percentage value will determine how much influence the Belt object has on the cloth object. A value of 0% will not allow for the Belt object to influence the cloth object at all, whereas a value of 100% will have complete influence on the cloth object. The area of Influence can be controlled through a vertex map using the corresponding section on the Effects page. Belt Hover Belt Hover set to 0% (left), 100% (center) and 200% (right).
128 CLOTHILDE MOCCA In order to adjust this 45-degree angle that is created from the direction of –1 m / 0 m / -1 m, entering a value after the positive / negative coefficient will do just this. With the given direction of –50 m / 0 m / -1 m, the wind direction would deviate that 45-degree angle closer to the X-axis (see right image above). This would make the direction almost perpendicular to the Z-axis Wind Strength Wind Strength set to 0.5 (left), 1 (center) and 2 (right).
CLOTHILDE 129 MOCCA Wind Drag Wind Drag set to 0% (left), 50% (center) and 100% (right). When wind is affecting the cloth object, this parameter controls the damping, or the energy loss of the cloth as it reacts to the wind. Wind Impact Wind Impact set to 0% (left), 50% (center) and 100% (right). Any surface that deals with wind, such as cloth, will have a different tolerance at which a wind force will hit that surface. The Wind Impact parameter controls just this.
130 CLOTHILDE MOCCA Self Repulsion Self Repulsion (left) and Self Collision (right). Using this option together with, or instead of, the Self Collision option can speed up and improve the cloth simulation. This will allow for the cloth points to repel one another, which can aid in situations where extreme forces or motions cause the cloth points to intersect with its surface. Distance This determines the distance at which the cloth points will begin to repel one another.
CLOTHILDE 131 MOCCA Dresser Dress Mode Once a garment has been assigned its dress state (the original polygonal model) this mode will become active. While in this mode, the Cloth tag will display all seams that have been created with a yellow cross-stitch for the affected polygons. The Cloth tag will change its icon in the Object manager when this mode is active. Relax This command is similar to the Dress-O-Matic function, with the exception that it takes all Forces tab parameters into consideration.
132 CLOTHILDE MOCCA At any time during the draping simulation pressing the Esc key will stop the simulation in its current state. This means that if the garment is at a desired shape, but the simulation still has more Steps to calculate for, the simulation can be cancelled without having to wait for the simulation to play out. Steps This determines the number of times that the cloth engine will sample as it applies gravity and wind forces onto the garment.
CLOTHILDE 133 MOCCA Width Width set to 10 m (left) and 3 m (right). This value determines the goal distance that the polygons of the seam will rest at. With a value of 10 m, the cloth engine will shrink the seam so that the polygons are 10 m in size. Set Initial State Before using Set Initial State (left) and after (right). After the cloth garment has been dressed on the character using this command, the cloth engine will now use this current state of the cloth as its starting pose.
134 CLOTHILDE MOCCA Set Dress State In Dress Mode each polygon will have a black ‘X’ on its surface. After modeling the clothes, using the Set Dress State command will determine the model’s original shape. Once this original state is specified, the cloth engine can then drape the garment onto the colliding character when told to do so. Using this function will automatically enable Dress Mode. This can easily be identified in the viewport as each polygon will have a black ‘X’ on its surface.
CLOTHILDE 135 MOCCA Set Fix Points This points indicated by the arrows have been fixed using the Set Fix Points command. In reality, cloth objects such as curtains are usually pinned using a curtain rod. The Set Fix command does essentially the same thing: it will fix the selected points at their current position, allowing for the cloth to be pinned in place. To fix points just select the desired points of the cloth object with a selection tool and execute the Set Fix Points command.
136 CLOTHILDE MOCCA Set Seam Polys Seams are displayed bright yellow when their polygons are selected. Most clothes are stitched together using seams. This cloth engine uses that same approach. As the tutorial will show, garments are created with a front and back plane that are connected together. The connection of these two planes of geometry will be considered as the seam. To define a seam, select all of the polygons that connect the front and back planes and use the Set Seam command.
CLOTHILDE 137 MOCCA Belt Points You can choose which points will be attached to the Belt object. When a Belt object is specified, any selected point can be attached to the deformed character model. The Set Belt Points will define what points will be attached to the deformed mesh. About Belting Let’s think about what an actual belt does for real-world clothing before moving on. When pants are belted, they stay attached to the person no matter where he moves.
138 CLOTHILDE MOCCA Clear Belt Points This will remove any points that have been assigned to the belt object. Show Belt Points This will reselect any of the points that have been assigned to the Belt object. If this command is executed while in any other mode than points, CINEMA 4D will automatically switch over to Points mode. Draw Belt Points Enabling this checkbox will display every point that is belted as a yellow dot.
CLOTHILDE 139 MOCCA To do this you will first need to belt all points that will be influenced by any Belt object. Using the Live Selection or new Brush tool, paint the points that need to be influenced by the first Belt object with 100% weight. Another vertex map will need to be created for the points that will be influenced to the second Belt object. Drag and drop the first vertex map into the Influence text box on the Effects tab and set a keyframe for this tex box using the gray dot.
140 CLOTHILDE MOCCA Size This value controls the shrinking or growth of the cloth object. This is especially useful during the dressing stage of the clothes. A value of 100% will let the cloth remain at its current size meaning that no shrinking or enlarging is taking place. A value of 50%, however, will shrink the cloth garment to half of its original size. A value of 200% will enlarge the cloth to twice that of its original size. This value works together with a vertex map defined in the Size box.
CLOTHILDE 141 MOCCA Tearing can also be controlled even further with vertex maps. As stated previously, tearing is based on the stiffness of the cloth; so using a vertex map in the Stiffness setting on the Effects tab will give you ultimate control over cloth tears. Stiffness The vertex map that is specified in this box will control how the Stiffness setting affects the cloth.
142 CLOTHILDE MOCCA Without a vertex map for Size (left) and with (right). In this image, the shirt on the left side has no vertex map assigned in the Size box. The shirt on the right side of the image is using a vertex map to control the Size of the garment. Bounce A vertex map can be defined within this box to control the areas that bounce during a collision.
CLOTHILDE 143 MOCCA Expert These settings control how the cloth engine solves for solutions during the cloth simulation. Here you’ll find settings such as the sub sampling and mass values that need to be solved for the cloth object. All settings found within the Cloth tag will be calculated from these settings. Sub Sampling This setting determines the amount of depth that the cloth simulation may undergo while finding solutions for the cloth object.
144 CLOTHILDE MOCCA Mass This setting defines how heavy the cloth will be. The heavier a cloth object is, the less that impact forces such as gravity, wind, and collisions will have on it. How the mass is spread across the cloth object can be better defined using a vertex map on the Effects page. Point Collision With this option enabled, the cloth engine will calculate collisions for every point in any cloth object’s geometry.
CLOTHILDE 145 MOCCA Edge EPS The higher the EPS value, the farther apart the cloth points will collide against the collider object’s edges. Think of this setting as an imaginary field that surrounds each edge for both cloth and collider objects. The higher the EPS value, the farther apart the cloth edges will collide against the collider object’s edges. If edges begin falling through the collider object, the Edge EPS setting will need to be increased.
146 CLOTHILDE MOCCA Global Intersection Analysis During animation, either intentionally or by accident, an area such as the armpit of a bipedal character can trap the cloth object. This can cause some cloth engines to come to a complete halt being that the engine cannot find a solution. Global Intersection Analysis (GIA) will find the best possible solution that will allow the cloth engine to continue its simulation.
CLOTHILDE 147 MOCCA Collider Tag The Cloth tag identifies an object as a cloth object. Specifying what object will collide with the cloth objects is done in the same way as defining a cloth object: by adding a Collider tag to the desired object. To add a Collider tag to an object: - Select the object and in the Object manager, choose File > Clothilde Tags > Collider. The Collider tag will be applied to the selected object that can now collide with any cloth object.
148 CLOTHILDE MOCCA Bounce This setting is also found in the Tag Properties tab of the Cloth tag. Keep in mind that these two fields found in both tags work together. For example, a nylon piece of cloth will always have the same Bounce value. If this piece of nylon collides against two objects, one being a piece of cloth and the other being concrete, the Bounce value for the nylon will remain the same; however, the two objects have completely different Bounce values.
CLOTHILDE 149 MOCCA Draw Draw disabled (left) and enabled (right). With this enabled, all excluded polygons of the collision object will be displayed in the viewport with red edges. Internally, the collision object is always calculated in triangles, so the displayed excluded polygons will be triangulated. Disabling the Draw option will remove the display of the excluded polygons in the viewport. The excluded polys will be drawn in their non-deformed state.
150 CLOTHILDE Modeling Clothes In these pages you’ll find advice on how best to model garments for use with Clothilde. MOCCA The first part of modeling a garment starts with creating a Polygon object (Objects > Polygon Object). This object will allow you to create polygons anywhere in the scene. Remember that the cloth engine will handle the draping and simulation process. All that needs to be created is the geometry for the cloth engine to drape.
CLOTHILDE 151 MOCCA Now the seams need to be created between these two planes. Use the Stitch and Sew tool to create the geometry for the seams. Holding the Shift modifier for this tool will add geometry as opposed to merging the edges, which is needed for the seams. Use CINEMA 4D’s Stitch And Sew tool to create the seams. Keep the polygons of the front and back planes selected. It is at this point that you will want to subdivide the garment (Functions > Subdivide).
152 CLOTHILDE MOCCA At this point, a Cloth tag can be applied to the garment to drape the geometry onto the character. Using the functions on the Dresser tab, such as Set Seam Polys and Dress-O-Matic, will perform this draping process. Prior to doing this you will also want to apply a Collider tag on the geometry of the character; otherwise, the cloth engine will not know what to drape the geometry onto.
CLOTHILDE 153 MOCCA It’s best to drape a garment while the character is in the T-pose (left). Naturally, you’ll want to start the animation from a different pose (right). The trick here is to record the T- pose before frame 0, such as at frame -10. Remember that if the starting pose is really extreme, you can belt all the points of the garment during the simulation. Once the cloth object is in place, you can remove the belted points and set the Initial State of the garment.
Index
INDEX 157 MOCCA A Add anchor to bone 30 bone with bone tool 36 child bone 36 pose 75 pose to library 81 root goal 30 tip goal to bone 30 up vector to bone 31 Additive Loops 100 Air Resistance 129 Anchor 14 add to bone 30 Animating Clothes 152 Auto Find Center 43 Auto IK-Lock 32 Auto Match 101 Auto Redraw 31 Auto Size 106 Auto Trim 100 Child bone, adding 36 Children of bones, mirroring 44 Chopsticks 22 Claude Bonet tool 47 Clear Belt Points 138 Clear Seam 136 Clone tags 43 Clothilde introduction 115 Cloth
158 INDEX MOCCA Mirror children of bone 44 constraint 44 Mixing poses 73 Mocca.