mocca us book .fr

... into other code forms as well as all other types of reverse engineering of the ...... MOCCA Plugin menu, will add a Soft IK tag to the root bone, with the Anchor ...
5MB taille 55 téléchargements 677 vues
3 D

F O R

T H E

R E A L

W O R L D

MOCCA Programming Team Additional Programming

Writers Layout Translation Cover Graphic Special Thanks

Reinhard Hintzenstern, Tilo Kühn, Thomas Kunert, Richard Kurz, Christian Losch, Philip Losch, David O’Reilly Wilfried Behne, Sven Behne, Michael Breitzke, Kiril Dinev, David Farmer, Jan Eric Hoffmann, Jamie Halmick, Nina Ivanova, Markus Jakubietz, Eduardo Olivares, Hendrik Steffen, Eric Sommerlade, Jens Uhlig, Thomas Zeier, Oliver Becker, Jens Bosse, Arndt von Koenigsmarck, David Link, Stephen Marriott, Matthew O’Neill, David O’Reilly, Janine Pauke, Perry Stacy, Jeff Walker Heike Bauer, Harald Egel, Jeff Walker Oliver Becker, Michael Giebel, Arno Löwecke, Björn Marl, Janine Pauke, Luke Stacy, Marco Tillmann Heike Bauer, Onur Pekdemir Kevin Aguirre, Phil ‘Captain 3D’ McNally, NAAM, Kai Pedersen, Christian Rambow, Holger Schlömann, Bunk Timmer

Reference Copyright © 2002 by MAXON Computer GmbH. All rights reserved. Tutorial Copyright © 2002 by MAXON Computer Ltd. All rights reserved. This manual and the accompanying software are copyright protected. No part of this document may be translated, reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of MAXON Computer. Although every precaution has been taken in the preparation of the program and this manual, MAXON Computer assumes no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the program or from the information contained in this manual. This manual, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. The content of this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by MAXON Computer. MAXON Computer assumes no responsibility or liability for any errors or inaccuracies that may appear in this book. MAXON Computer, the MAXON logo, CINEMA 4D, Hyper NURBS, and C.O.F.F.E.E. are trademarks of MAXON Computer GmbH or MAXON Computer Inc. Acrobat, the Acrobat logo, PostScript, Acrobat Reader, Photoshop and Illustrator are trademarks of Adobe Systems Incorporated registered in the U.S. and other countries. Apple, AppleScript, AppleTalk, ColorSync, Mac OS, QuickTime, Macintosh and TrueType are trademarks of Apple Computer, Inc. registered in the U.S. and other countries. QuickTime and the QuickTime logo are trademarks used under license. Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S. and/or other countries. UNIX is a registered trademark only licensed to X/Open Company Ltd. All other brand and product names mentioned in this manual are trademarks or registered trademarks of their respective companies, and are hereby acknowledged.

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. IF YOU DO NOT ACCEPT THIS LICENSE PLEASE SEND THE SOFTWARE TOGETHER WITH ACCOMPANYING DOCUMENTATION TO MAXON COMPUTER OR TO THE SUPPLIER WHERE YOU BOUGHT THE SOFTWARE. 1. General Under this contract the Licensor grants to you, the User, a non-exclusive license to use the Software and its associated documentation. The Software itself, as well as the copy of the Software or any other copy you are authorized to make under this license, remain the property of the Licensor. 2. Use of the Software You are authorized to copy the Software as far as the copy is necessary to use the Software. Necessary copies are the installation of the program from the original disk to the mass storage medium of your hardware as well as the loading of the program into RAM. (2) Furthermore the User is entitled to make a backup copy. However only one backup copy may be made and kept in store. This backup copy must be identified as a backup copy of the licensed Software. (3) Further copies are not permitted; this also includes the making of a hard copy of the program code on a printer as well as copies, in any form, of the documentation. 3. Multiple use and network operation (1) You may use the Software on any single hardware platform, Macintosh or Windows, and must decide on the platform (Macintosh or Windows operating system) at the time of installation of the Software. If you change the hardware you are obliged to delete the Software from the mass storage medium of the hardware used up to then. A simultaneous installation or use on more than one hardware system is not permitted. (2) The use of the licensed Software for network operation or other client server systems is prohibited if this opens the possibility of simultaneous multiple use of the Software. In the case that you intend to use the Software within a network or other client server system you should ensure that multiple use is not possible by employing the necessary access security. Otherwise you will be required to pay to the Licensor a special network license fee, the amount of which is determined by the number of Users admitted to the network. (3) The license fee for network operation of the Software will be communicated to you by the Licensor immediately after you have indicated the number of admitted users in writing. The correct address of the Licensor is given in the manual and also at the end of this contract. The network use may start only after the relevant license fee is completely paid.

4. Transfer (1) You may not rent, lease, sublicense or lend the Software or documentation. You may, however, transfer all your rights to use the Software to another person or legal entity provided that you transfer this agreement, the Software, including all copies, updates or prior versions as well as all documentation to such person or entity and that you retain no copies, including copies stored on a computer and that the other person agrees that the terms of this agreement remain valid and that his acceptance is communicated to the Licensor. (2) You are obliged to carefully store the terms of the agreement. Prior to the transfer of the Software you should inform the new user of these terms. In the case that the new user does not have the terms at hand at the time of the transfer of the Software, he is obliged to request a second copy from the Licensor, the cost of which is born by the new licensee. (3) After transfer of this license to another user you no longer have a license to use the Software. 5. Updates If the Software is an update to a previous version of the Software, you must possess a valid licence to such previous version in order to use the update. You may continue to use the previous version of the Software only to help the transition to and the installation of the update. After 90 days from the receipt of the update your licence for the previous version of the Software expires and you are no longer permitted to use the previous version of the Software, except as necessary to install the update. 6. Recompilation and changes of the Software (1) The recompilation of the provided program code into other code forms as well as all other types of reverse engineering of the different phases of Software production including any alterations of the Software are strictly not allowed. (2) The removal of the security against copy or similar safety system is only permitted if a faultless performance of the Software is impaired or hindered by such security. The burden of proof for the fact that the performance of the program is impaired or hindered by the security device rests with the User. (3) Copyright notices, serial numbers or other identifications of the Software may not be removed or changed. The Software is owned by the Licensor and its structure, organization and code are the valuable trade secrets of the Licensor. It is also protected by United States Copyright and International Treaty provisions. Except as stated above, this agreement does not grant you any intellectual property rights on the Software. 7. Limited warranty (1) The parties to this agreement hereby agree that at present it is not possible to develop and produce software in such a way that it is fit for any conditions of use without problems. The Licensor warrants that the Software will perform substantially in accordance with the documentation. The Licensor does not warrant that the Software and the documentation comply with certain requirements and purposes of the User or works together with other software used by the licensee. You are obliged to check the Software and the documentation carefully immediately upon receipt and inform the Licensor in writing of apparent defects 14 days after receipt. Latent defects have to be communicated in the same manner immediately after their discovery. Otherwise the Software and documentation are considered to be faultless. The defects, in particular the symptoms that occurred, are to be described in detail in as much as you are able to do so. The warranty is granted for a period of 6 months from delivery of the Software (for the date of 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. The Licensor and its suppliers make no warranties, express or implied, as to noninfringement of third party rights, merchantability, or fitness for any particular purpose. In no event will the Licensor or its suppliers be liable for any consequential, incidental or special damages, including any lost profits or lost savings, even if a representative of the Licensor has been advised of the possibility of such damages or for any claim by any third party. (3) Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, or the exclusion of implied warranties or limitations on how long an implied warranty may last, so the above limitations may not apply to you. In this case a special limited warranty is attached as exhibit to this agreement, which becomes part of this agreement. To the extent permissible, any implied warranties are limited to 6 months. This warranty gives you specific legal rights. You may have other rights which vary from state to state or jurisdiction to jurisdiction. In the case that no special warranty is attached to your contract please contact the Licensor for further warranty information. The user is obliged to immediately inform the transport agent in writing of any eventual damages in transit and has to provide the licensor with a copy of said correspondence, since all transportation is insured by the licensor if shipment was procured by him. 8. Damage in transit You are obliged to immediately inform the transport agent in writing of any eventual damages in transit and you should provide the Licensor with a copy of said correspondence, since all transportation is insured by the Licensor if shipment was procured by him. 9. Secrecy You are obliged to take careful measures to protect the Software and its documentation, in particular the serial number, from access by third parties. You are not permitted to duplicate or pass on the Software or documentation. These obligations apply equally to your employees or other persons engaged by you to operate the programs. You must pass on these obligations to such persons. You are liable for damages in all instances where these obligations have not been met. These obligations apply equally to your employees or other persons he entrusts to use the Software. The User will pass on these obligations to such persons. You are liable to pay the Licensor all damages arising from failure to abide by these terms. 10. Information In case of transfer of the Software you are obliged to inform the Licensor of the name and full address of the transferee in writing. The address of the Licensor is stated in the manual and at the end of this contract. 11. Data Protection For the purpose of customer registration and control of proper use of the programs the Licensor will store personal data of the Users in accordance with the German law on Data Protection (Bundesdatenschutzgesetz). This data may only be used for the above-mentioned purposes and will not be accessible to third parties. Upon request of the User the Licensor will at any time inform the User of the data stored with regard to him. 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. This agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. (3) If any part of this agreement is found void and unenforceable, it will not affect the validity of the balance of the agreement which shall remain valid and enforceable according to its terms. 13. Termination This agreement shall automatically terminate upon failure by you to comply with its terms despite being given an additional period to do so. In case of termination due to the aforementioned reason, you are obliged to return the program and all documentation to the Licensor. Furthermore, upon request of Licensor you must submit written declaration that you are not in possession of any copy of the Software on data storage devices or on the computer itself. 14. Information and Notices Should you have any questions concerning this agreement or if you desire to contact MAXON Computer for any reason and for all notifications to be performed under this agreement, please write to: MAXON Computer GmbH Max-Planck-Str. 20 D-61381, Friedrichsdorf Germany or for North and South America to: MAXON Computer, Inc. 2640 Lavery Court Suite A Newbury Park, CA 91320 USA or for the United Kingdom and Republic of Ireland to: MAXON Computer Ltd The Old School, Greenfield Bedford MK45 5DE United Kingdom We will also be pleased to provide you with the address of your nearest supplier.

Contents

Introduction........................................................................................................... 1

Reference ................................................................................... 3 MOCCA Layout and Palette .................................................................................... 5 Soft IK .................................................................................................................... 6 Soft IK Tag ............................................................................................................ 8 Soft IK Commands .............................................................................................. 18 Setup IK Chain ............................................................................................... 18 Add Anchor ................................................................................................... 18 Add Root Goal ............................................................................................... 18 Add Tip Goal.................................................................................................. 18 Add Up Vector ............................................................................................... 19 Set Chain Rest Rotation.................................................................................. 19 Auto Redraw.................................................................................................. 19 Bone Tool............................................................................................................. 20 Bone Mirror Tool .................................................................................................. 22 Claude Bonet Tool ................................................................................................ 25 Cappucino Tool .................................................................................................... 28 KeyReducer Tool................................................................................................... 33 TimeWarp Tool.....................................................................................................34 PoseMixer Tool ..................................................................................................... 35 MoMix Object ...................................................................................................... 37 P2P Library and Manager .....................................................................................40

Tutorials.................................................................................... 43 Introduction......................................................................................................... 45 The 12 Principles of Animation .............................................................................46 Modeling for Animation....................................................................................... 53 Basic 1 Forward Kinematics.................................................................................. 56 Basic 2 Inverse Kinematics....................................................................................60 Basic 3 Using Bones and Soft IK ........................................................................... 65 Advanced 1 Setting Up the Leg............................................................................ 72 Advanced 2 Setting Up the Spine......................................................................... 79 Advanced 3 Setting Up the Head .........................................................................84

Advanced 4 Setting Up the Arm........................................................................... 89 Advanced 5 Setting Up the Hand ......................................................................... 95 Advanced 6 Cleaning up the Hierarchy............................................................... 100 Advanced 7 Easy Controller Selection................................................................. 102 Advanced 8 Final Value Tweaking....................................................................... 104 Advanced 9 Feet Expressions ............................................................................. 106 Advanced 10 Using Selection Objects ................................................................ 110 Advanced 11 Optimizing Display and Speed....................................................... 113 Advanced 12 Frame Zero.................................................................................... 115 Advanced 13 Animating the Character ............................................................... 117 Bibliography....................................................................................................... 119

Index....................................................................................... 121

MOCCA

Introduction With MOCCA’s powerful yet simple to use tools, you can easily animate any character, from a comic book superhero to a squirrel juggling burning nuts.

INTRODUCTION 1

Thank you for purchasing MOCCA, the powerful CINEMA 4D module that will make your characters dance and your clients smile. With MOCCA you can rig characters quickly and easily using bone manipulation tools. A new IK system (Soft IK) with built-in constraints and dynamics enables you to create smooth, realistic character animation. Mouse recording means that you can control characters using your hand movements, thus ensuring natural motion. Posing tools enable you to build you own library of poses and morph between these to animate characters easily — ideal for lip synching and facial expressions. This manual is divided into a tutorial section and a reference section. Character animation is a fairly complex subject so, in order to get a feel for MOCCA, we recommend that you work through the MOCCA tutorials and, if something isn’t clear, look it up in the reference for a full description. Once you’ve learnt how to use MOCCA’s tools, you’ll find that MOCCA is an indispensable asset for putting your digital characters into motion.

Registration Registering your MOCCA module is extremely important. The serial number included with your MOCCA package is temporary and it will expire three months after the module’s installation. To receive your final serial number, you must register. So please fill in and return the registration form at the earliest opportunity. Registering your MOCCA module will also entitle you to free technical support via telephone, fax and email. And, by checking the appropriate box on the registration form, MAXON will keep you informed of the latest product information and updates. Please note that you can also register online at register.maxon.net.

Installation To install MOCCA, run the installation program and follow the on-screen installation instructions. The installation program will create a Mocca folder in your CINEMA 4D Modules folder. The installation program will place all the CINEMA 4D MOCCA files into this Mocca folder.

Training Training is available for MOCCA and other MAXON products. For details, please contact MAXON or your local MAXON distributor.

MOCCA

2 INTRODUCTION

Web Resources Thousands of powerful resources are available on the web, including online tutorials, discussion lists, textures, models, galleries and information on 3D books. You will find links to a rich selection of these sites at www.maxon.net. One website that you may wish to bookmark is www.plugincafe.com, the home of CINEMA 4D plugins. Here you will find dozens of useful plugins, both free and commercial. For plug-in developers, there are resources, including the SDK, tutorials and a free support forum. Lastly there is the MAXON website itself, www.maxon.net. In addition to the links mentioned above, it is from here that you can register your MAXON product, download updates, send MAXON a suggestion, check out the gallery, learn from online tutorials and much more.

Technical Support Your local MAXON distributor will be delighted to assist you with your technical queries for MOCCA. You are also welcome to contact MAXON directly. Please note that you will be entitled to technical support provided you have registered your MOCCA module (see Registration, above).

Reference

MOCCA

REFERENCE 5

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. On this palette you’ll find commands and tools from the Plugins > MOCCA sub-menu as well as some of the most commonly used CINEMA 4D tools: move, scale, rotate and the selection tools. To use the predefined MOCCA layout, choose Window > Layout > Mocca.l4d. You can, if you wish, create your own layout for MOCCA. For details on how to do this, please see the Configuration chapter of your CINEMA 4D Reference Manual. You can open the MOCCA palette and integrate it anywhere in the GUI.

If you want to open just the MOCCA palette rather than load the entire MOCCA layout, choose Plugins > MOCCA > MOCCA Palette. The palette then appears as a freestanding window, which you can integrate anywhere in the CINEMA 4D GUI. To learn how to configure the GUI, please refer to the Configuration chapter of your CINEMA 4D Reference Manual.

6 REFERENCE

Soft 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.

MOCCA

You have probably heard the term Inverse Kinematics (IK) before; it has become quite a buzz word in the 3D world, particularly when it comes to character animation. The main difference from the so-called Forward Kinematics (FK) is the direction in which something is animated. Take an arm, for example. Using FK, the arm would be animated from the shoulder downwards. This means that you first rotate the shoulder, then the upper arm, the lower arm, hand and finally the fingers pointing to a specific location. The obvious disadvantage is the difficulty of trying to get the hand in a certain position in your 3D world, since any move of the shoulder will require readjustments of all limbs that follow in the hierarchy. Having a hand grab a cup of tea, lift it to the character’s mouth and place it back on the table would involve a large number of rotations and adjustments, particularly because the position and rotation of the cup and hand have to be synchronized at all times.

With Forward Kinematics (left), each bone must be rotated in order to move the arm. With Inverse Kinematics (right), you can move the hand freely and the other bones in the arm will move and rotate automatically to ensure that the bones remain connected to each other. Inverse Kinematics helps you to pose characters quickly.

Inverse Kinematics offers an elegant solution to this problem. As the name suggests, the direction of the animation is inverted. This means that moving the hand will force the other joints between hand and shoulder to reposition in order to remain in contact with the hand. A simple expression could lock the hand to the position of the cup, allowing you to animate just one object, the cup, instead of two. Inverse Kinematics has been an integral part of the application since CINEMA 4D XL R5. MOCCA and Soft IK offer a completely new approach for CINEMA 4D R8. Almost all possible movements are handled via constraints. Imagine a constraint as a force, which always tries to find an equilibrium with other such constraints, just like an array of magnets that levitate a metal sphere within their common magnetic fields.

MOCCA

REFERENCE 7

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. The new IK solution in MOCCA has been created with precisely this problem in mind. By allowing the software to extend beyond these boundaries, it enables you to leave behind the world of strict constraints. How does this work? The programming within Soft IK means that the more you stretch your constraints, the more a dynamic counter-force will try to return the object to its initial rest position. A basic example would be a comic character that grabs a heavy weight, which pulls his arms and upper body to the floor. As soon as he lets go of the weights, the arms will return to a more comfortable position, in other words, his rest position. This animation is handled by what are called ‘tip effectors’ (control objects) that attract the bones of a character. A lot of the work that needs to be done in character animation involves a proper constraint setup, based on constraints for the angle and position, which should facilitate animation later on. Just as in real life, these constraints are soft. A constraint strength of 100% will not eliminate the other forces. The object is still influenced by all forces in the setup, making dead zones a thing of the past. Careful placement and setup of these constraints will result in much more elegant-looking animations that would otherwise be very difficult to achieve with older IK solutions. Some features in MOCCA might seem familiar, such as the Dynamics function in Soft IK. However, MOCCA is not an addition to the CINEMA 4D Dynamics module — it is an independent toolset in its own right. It has nothing to do with actual dynamics, which are realistic simulations of physical events that give you enormous control over all aspects of an environment. Naturally, those simulations also require more processing power, the more realistic you want them to be. On the other hand, MOCCA is a completely new technology, which emphasizes speed and reliability above all else. Ultimately, it is the result that matters most.

MOCCA

8 REFERENCE

Soft IK Tag Soft 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 Soft IK tag.

Each bone in a Soft IK chain must have a Soft IK tag. These tags are added automatically to each bone if you use the Setup Soft IK command from the Plugins > MOCCA menu. For complicated characters, you may need to add the tags manually. In this case, select all the bones and, in the Object manager, choose File > New Tag > Soft IK Tag. As with all other types of tag, the settings of selected Soft IK tags are shown in the Attribute manager, where you may edit them. These settings are described below.

Attribute manager settings Tag Properties On this page, you can enable or disable Soft IK. In addition, you can define the strength of dynamic forces such as gravity and inertia. These forces greatly add to the realism of your animated characters’ motion.

Use Soft IK This option activates or deactivates Soft IK for the bone chain. The option can be found within every Soft 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. Display In Editor If this option is enabled, the root handle of the bone is shown in the viewport. In the case of the anchor bone, a small cross is shown. Anchor An anchor is the root of any given chain. A classic anchor in a 3D character would be the hips. Most of the time, this is the root element for the character bone setup. Normally, you wouldn’t want the hips to jump out of place when dragging the goal target of the left leg, thus twisting the entire character. Placing the root at a certain point will tell the chain that the leg has to be held in place at its root, in this case the hips.

MOCCA

REFERENCE 9

Strength This parameter is available only if Anchor is enabled. It modifies the strength with which the skeleton will be held together. It affects all movements and a high value results in precise, but harder animation. You’ll quickly notice how, as the strength increases, the distances between each bone in a stretched chain become smaller. High values will take additional time to calculate though. Dynamics The dynamics settings define how the bones are influenced by gravity, drag and inertia.

The dynamics parameters are available only if Anchor is enabled. They modify the dynamic movements of the bone chain. The dynamics settings affect an entire bone chain, whose root bone has this option enabled. Since dynamics influence the alignment of your chain, its effect becomes more obvious if few constraints have been added. If you want to experiment with the settings and get direct feedback, make sure you avoid setting constraints. How do all these parameters interact? There is no easy answer for this, since they affect each other. High Drag will cause stiff joints, therefore limiting the effect of the other parameters. This makes drag an ideal regulator for dynamics. On the other hand, Speed does not necessarily make the movements of the chain faster. Test the different settings of the dynamics and you’ll soon develop an intuitive understanding. To switch dynamics on, enable the Dynamics option. You can then adjust the dynamics of the bone chain using the following parameters. Speed 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 fat, heavy one for example. The trunk of an elephant would require slower movements and therefore lower values. This parameter is available only if Dynamics is enabled.

MOCCA

10 REFERENCE

Drag This parameter is available only if Dynamics is enabled. It controls the resistance of the child bones toward the reaction to the movements of the root bone. Imagine draining the lubricant from a joint mechanism – the joint will become stiffer the more lubricant is removed. Similarly, the bones will not move with the root as freely when using a higher percentage value. A word of caution: Drag very much affects the other dynamic parameters and could seriously dampen the whole dynamic movement. Gravity Gravity pulls the bones down, in the direction of the world system’s negative Y-axis.

This parameter is available only if Dynamics is enabled. It defines the strength of gravity that acts upon the bones. Higher values result in a stronger bending of the chain on the Y-axis, downwards. Here again, small characters might require lower values than heavy ones. Inertia This parameter is available only if Dynamics 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.

MOCCA

REFERENCE 11

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. The acceleration will cause her to stretch in the opposite direction of the pull. As soon as the acceleration reduces, she will try to assume her initial pose (provide that no other constraints prevent her from doing so). The Rest settings allow you to define this initial pose. 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 Soft IK option will automatically be turned off at the root bone. Force Position If this option is enabled, the bones remain in contact, i.e. there will be no gaps between the bones, even if the tip effector has not been reached. Force Position enabled. Although the tip effector has not been reached, there are no gaps between the bones.

MOCCA

12 REFERENCE

Force Position disabled. The bones are stretched apart as they try to reach the tip effector.

Strength, Pos X, Pos Y, Pos Z, Set These values define the initial rest position for the IK chain. You can set them by moving the chain into the position you want and pressing Set or the Set Chain Rest Position icon in the MOCCA palette. The Strength setting regulates the strength at which the rest position will interact with other forces. The higher the value, the greater the influence of the rest position on the character. Strength, Rot H, Rot P, Rot B, Set These settings define the initial rest rotation of the IK chain when no other constraints are active. You can set them by arranging the chain as you want and pressing Set or the Set Chain Rest Rotation icon in the MOCCA palette. If you have set a rest position for the arm, which also has a tip effector connected to it, the chain will try to find a common denominator for both forces. If you try to pull the arm away from its rest position with a goal constraint, you will have to use more force than if you hadn’t used rest rotation. Eliminating the goal constraint will cause the chain to return to its rest rotation immediately. This form of constraint should be preferred to the classical rotation limit, since it allows for more natural movements with less strict prohibited spaces to which the chain can move. The Strength setting controls the strength at which the rest rotation interacts with other forces. The higher the value, the greater the influence of the rest rotation on the character.

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.

MOCCA

REFERENCE 13

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. Here’s a more precise explanation. The goal constraint uses the origin of virtually any object in the scene to enable you to force the IK chain towards the position of that object, assuming that the other potential constraints in your scene do not counteract this. Since the IK chains follow the goal constraints, the bone angles will also be modified. Therefore this is useful for setting up different poses, since all you have to do is move about individual goal constraint objects. If you want the chain to point at a constraint, you will have to work with a tip effector. In other words a null will be placed at the end of a chain, and then linked to a goal constraint. This works similarly when you use the Set Up IK Chain command. Goal Drag an object from the Object manager into this box. This object will then serve as a goal constraint. You can remove an object from this box by clicking the small triangle next to it and selecting Clear from the drop-down list that appears. Strength Imagine setting the ‘muscular’ force at which the constraint pulls on the bone. If you have used several constraints with different strengths in your scene, the ones with the higher values will be preferred by the chain. 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

14 REFERENCE

Chop Sticks This setting, when enabled, allows you to move your character as if the joints were connected to sticks, like shadow puppets. When using chopsticks you can pivot around a point connected to an arm, just like the wheels of a locomotive train. Set the length of the chopsticks using Distance (see above). Up Vector Here you can drag and drop an object from the Object manager. That object will then be used as an Up Vector object. Delete the Up Vector by clicking on the small triangle next to it and selecting Clear. Up Vector constraints let you orientate the axis of a bone towards a control object. In this case, not the position, but the angle of the bone will be modified. 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. Obviously you’ll quickly notice this when the character’s skin is fixed to the bones, as it will twist with the chain. The Up Vector gives you a chance to prevent this from happening by constraining the orientation of the bone axis to the Up Vector constraint. Strength This value defines the strength at which the fixed axis will be pulled towards the Up Vector constraint. A value of 0% will completely ignore the constraint. A value of 100% practically nails the axis to the constraint. A value of 50% orientates the bone with a bit of lag, just like a magnetic compass needle adjusting towards true North, after the compass has been moved. Axis Here you can choose between the various axes that point towards the Up Vector. The options are Y, -Y and X, -X. If you choose -Y, the Y-axis will point in the exactly opposite direction of the Up Vector, since an object axis arrow always points positively.

MOCCA

REFERENCE 15

Limit Limits define the position and rotation spaces, which 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. 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. Position limit settings (X, Y, Z)



Position limits enable you to offset bones in relation to their parent bone. This can be useful where joints fork off, such as at the hips or the shoulders. Remember to consider the equilibrium between the position limits and the rest position of the bone structure.

Position limits give the bones boundaries that bind them with a given strength. The Min and Max settings enable you to define a point, area or space that is displayed as yellow lines in and about the bone. If you enable the X limits, say, and set a Min value of -50 and a Max value of +50, you will notice a yellow line extending from both sides of the bone parent. If you want to define an area, you will have to use an additional axis (Y or Z). Using a third axis will create a volume in the form of a box.

MOCCA

16 REFERENCE

The box shape represents three position limit axes.

All forces of the Soft IK limits are not static but behave dynamically. Imagine using a rest position that is outside the space of your defined limits. In that case, the system will try to find a balance between both these forces, according to the strength values used, and position the bones somewhere between both of them. Using position limits, you can construct the chain with an offset between the bones.

MOCCA

REFERENCE 17

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. In the viewport, the limits are represented as pie sections, in red, green and blue respectively. 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.

MOCCA

18 REFERENCE

Soft IK Commands These commands help you to create Soft IK chains and fully automate your Soft IK setup.

When setting up a Soft IK chain, you’ll need to use the Soft 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.

Setup IK Chain With a bone chain selected, choosing this icon from the MOCCA palette, or from the MOCCA Plugin menu, will add a Soft IK tag to the root bone, with the Anchor option enabled. The child bones will also receive a Soft IK tag and a tip effector will be added to the last bone. The effector is linked to a goal constraint parented to the root bone of the chain. This will set up your IK chain at the press of a button.

Add Anchor This command adds an anchor to the selected bone.

Add Root Goal The root of an individual bone is also where its object axis is placed. This command puts an effector at the bone’s origin. The effector is linked to a goal constraint, which is parented to the chain’s root bone. It will automatically receive the suffix Root Goal. Moving this goal object will give you direct control over the position of the joint.

Add Tip Goal This command puts an effector at the tip of the bone. The effector is linked to a goal constraint, which is parented to the chain’s root bone. It will automatically receive the suffix Tip Goal. Moving this object gives you influence over the direction of the Z-axis for the respective bone.

MOCCA

REFERENCE 19

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’. If you want to constrain the X-axis of the bone, select its Soft IK tag and, on the Attribute manager’s Constraint page, choose a different axis from the Up Vector drop-down list.

Set Chain Rest Rotation This command sets the rest rotation of all bones in the IK chain with Soft IK tags. See also the description of Rest Position earlier in this chapter.

Auto Redraw You’ve probably noticed that a great way to test the movements of your IK chain, especially in combination with the Dynamics function of Soft IK, is to press the Play button (or hotkey: F8). However, since the Soft IK chain works with soft constraints, the animation reacts to a number of different factors. This means that the animation might not be finished at the last frame. The joints might still come to rest slowly. To display those changes without playing back the entire animation, you can use the Auto Redraw command in MOCCA. Once enabled, it will constantly update the calculations, displaying the reactions of your IK chain immediately. When choosing this command, the dialog will enable you to set the redraw step in milliseconds. If you have activated the MOCCA layout by choosing Window > Layout > Mocca.l4d, you will find the dialog already below the Object manager. Normally, the animation will be played back in realtime; for PAL systems that means 25 frames per second, for NTSC it is 30. Each frame will therefore be displayed for 1/25 or 1/30 of a second before it is updated again. 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.

MOCCA

20 REFERENCE

Bone Tool With the bone tool, you can create and adjust bone chains quickly and easily, using a variety of tools.

Using the bone tool, you can quickly add and modify bones (including child bones), interactively. Adding bones this way is exactly the same as choosing Bone from the Deformation sub-menu on the Objects menu but, for a long chain, it can be faster and easier. To select the bone tool, choose Plugins > MOCCA > Bone Tool or click on the Bone Tool icon on the MOCCA palette. The settings for the bone tool then appear in the Active Tool manager.

Active Tool manager settings The various tools are available from the Active Tool manager.

Add Bone This command adds a bone to the scene. The bone has a default length of 100m and points in the direction of the Z-axis. Pressing the button twice, however, does not add a child bone to the previous bone but another independent bone, with the same parameters as the first one. If you want to add a child bone, use the Add Child Bone command instead. Add Child Bone Clicking this button will simply add a child bone to the chain; this is placed at the tip of the previously created bone or child bone. It adopts the parameters of the preceding bone, as well as its name. 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 the bones interactively in the viewport. Split Bone This will split the bone in half. Together, the newly created bones will have the same length as the original. The overall length of the chain therefore remains unchanged.

MOCCA

REFERENCE 21

Use this command before setting up Soft IK, since the Setup IK Chain command will also set the rest position of the bones. If you then split the bone, a new bone with half the length of the original will be placed at the previous origin. The other new bone will also be shorter but cannot reach the tip of the preceding bone, since the old rest position has also been copied. This would lead to gaps in the IK chain. Add/Update Null Bone A Null bone is a bone without influence on the geometry of the object to which it is assigned. In other words, it is a bone with a strength of 0% and a length of 0m — literally null. The Attribute manager settings for a Null bone.

Bones, just like any other object in a hierarchy, always work with the information of their parent object, such as its limits or positions. Null bones offer the benefit of not affecting the geometry and can therefore serve as a master system. You might ask yourself why you shouldn’t I use a normal Null object instead? The answer is simple: a bone chain does not allow other objects (such as the normal Null object) to penetrate its hierarchy. Otherwise the bones might no longer be fixed and results would be quite unexpected. The Add/Update Null Bone command adopts the rotation and position of and is placed at the origin of the selected bone. The rotation of the selected bone is cleared. The great advantage is that you can easily set rotation limits for non-rotated bones without having to do the math for each of them. 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.

MOCCA

22 REFERENCE

Bone Mirror Tool This tool helps you to set up the bones quickly. With it, not only can you mirror individual bones, but entire chains also, including tags, constraints, selections, Claude Bonet maps and much more.

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 much more. To select the bone mirror tool, choose Plugins > MOCCA > Bone Mirror or select the Bone Mirror icon from the MOCCA palette. In both cases, this opens the Bone Mirror dialog, shown below, from where you can set up the operation of the tool, before clicking the Mirror button to make the changes.



The bone mirror tool mirrors entire bones, not geometry (meaning 3D volumes). If you want to mirror geometry, use the Mirror tool from the Structure menu.

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. Selected This will mirror the selected bone with the mirror plane passing through its object axis. The rotation of the axis will be ignored, since the bone mirror tool always mirrors parallel to the plane that you have chosen. Parent The setup will be mirrored according to the position of the axis of the selected bone’s parent. Again, the rotation of the axis will be ignored, since the bone mirror tool always mirrors parallel to the plane that you have chosen.

MOCCA

REFERENCE 23

Top Most In this case, the root bone sets the origin of the mirror. Here too, only the mirror plane is of importance. World If you choose the World setting, the origin of the world coordinates will be used, regardless of the rotation of origin. 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. If you disable the Auto Find Center option, the object axis of the bone setup will be used instead. The object axis isn’t necessarily at the center of your character’s points, though. Enabling the option will find the center of the points, which can create very accurate results in symmetrical models. The Match Search box is where you set an amount of tolerance with which the bone mirror tool will compensate for irregularities within the model. If the bone mirror tool does not find exactly the same corresponding points on the other side of the setup, it will search for them within the radius that you can set. You should experiment with this setting. Very small values tend to produce unconvincing results. Suffix Here you can set a name suffix that is added to the mirrored elements. This serves for organizational purposes, avoiding confusion between the various resulting bones. If you are mirroring the left half of the character, you might set the suffix to ‘_R’. An upper thigh named ‘ThighUp’ would, after mirroring, create a bone with the name ‘[ThighUp_R]’ on the right side. Prefix This is where you can set a prefix to be added in front of the mirrored bones. Taking the previous example (see ‘Suffix’, above), setting the prefix to ‘R_’ will cause the right side of the upper thigh to be named ‘R_ThighUp’ after mirroring.

MOCCA

24 REFERENCE

Replace ... With These settings enable you to rename a bone while mirroring. For example, if you have already named a left upper thigh ‘[ThighUp_L]’, it would make little sense to leave ‘_L’ in the name of the right side. Simply type _L into the Replace box and _R into the With box. The mirrored bone will automatically be named ‘[ThighUp_R]’. Clone Tags You can also mirror all the tags assigned to a bone element by enabling this option. Note that the Mirror Constraints and Mirror Influences options are available only when Clone Tags is enabled. 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 Attributes manager will be mirrored as well. These restrictions are used to control which part of the body the bone may deform. Even combined vertex maps with parented polygon models can be mirrored, despite the fact that the vertex map is not assigned to the bone, but the Polygon object above it. The only necessary condition is that the Mirror Influences option is enabled. Mirror Influences When enabled, this option will mirror all influences a bone may have on a model. These influences can refer to Restriction tags assigned to point or polygon selections as well as to vertex maps. This option is especially useful when mirroring Claude Bonet weighting. Mirror



When a bone chain is mirrored, the Soft IK option will be disabled automatically for the mirrored chain.

Click this button to apply the Mirror tool to the selected bones.

MOCCA

REFERENCE 25

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.

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. In other words, bones are objects that have no geometry but are used to deform volumes (e.g. the flesh around them). Usually, a single bone won’t be enough to set up a realistic skeleton. Instead you’ll probably use several complete chains, where each bone has a function. To use the bones efficiently within the chain, you’ll have to assign separate parts of the geometry to each bone, to avoid having the foot bones curl the ears of the character, for example. This process is called ‘weighting’. In earlier versions of CINEMA 4D, this weighting was achieved using traditional vertex map weighting tools. Back then, you assigned weighting to points and linked them to the bones via Restriction tags. You can still do this, but there is an easier way. Claude Bonet makes this process far simpler by enabling you to set influences and assign them to bones simultaneously and, as its name suggests, you paint these weightings onto the bone. To select the Claude Bonet tool, choose Plugins > MOCCA > Claude Bonet or click the Claude Bonet icon on the MOCCA palette. The settings for the tool will then appear in the Active Tool manager. Once you have adjusted the settings as described below, just select a bone and ‘paint’ the weighting onto the bone in the viewport, with the mouse.

Active Tool manager settings In the Active Tool 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 objects only. Invisible objects are ignored.

MOCCA

26 REFERENCE

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. When adjusting the weighting of a single bone, we recommend disabling this option. Influences might overlap near their borders, making it difficult to judge a single bone’s weighting. 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. Force Shading Normally, if you paint the weighting in the wireframe display mode, you won’t be able to see the weighting as it’s applied to the object. To allow you to paint on the object in wireframe mode and get immediate feedback, enable this option. Quick Shading will then be used. 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. In this case, you can set a reference weight for the first finger and reuse it for the following fingers. This is precisely what Set Reference is implemented for. Select a bone and click this button. If you haven’t set any weights yet, the button will have no effect. Otherwise, a list will pop up; choose the bone whose weighting information you want to apply to the selected bone and then click OK.

MOCCA

REFERENCE 27

Strength This is where you set the strength with which you paint. A value of 50% for example, would allow the bone to have limited influence on the mesh. The strength is added relatively; if you paint weighting with a strength of 20%, for example, each brush stroke will add another 20% to the area. Enabling the Paint Absolute option turns off this relative mode and allows you to paint with an absolute Strength value. By holding down the Ctrl key while you paint, you can erase the weighting. Set Value This button sets the current weighting strength for the selected bone across the entire area of the assigned geometry. If you select a character’s hip bone, for example, define a strength of 100% and select Set Value, the bone would have full influence over the entire geometry of the volume. This is a quick way of painting the weights across the whole chain. 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. Remove Paint (Hierarchy) Removes the weighting of the selected bone hierarchy, from the active bone down to the last bone of the chain. Remove Paint (Scene) Removes all weighting for the entire scene.

MOCCA

28 REFERENCE

Cappucino Tool Cappucino is MOCCA’s integrated motion capture tool. It enables you to create lifelike motion for your characters and models, from a head nodding in agreement to a gecko catching a fly with its tongue.

With Cappucino you can quickly create all kinds of realistic movements for your 3D characters and models, simply by recording mouse movements. Cappucino is MOCCA’s integrated motion capture tool. Take an object, activate the function and drag it around the viewport. All movements of your mouse will be captured and recorded frame by frame in the object’s animation track. To select the Cappucino tool, choose Plugins > MOCCA > Cappucino or click the Cappucino icon, shown above, which you’ll find on the MOCCA palette. The Cappucino dialog opens.

Cappucino dialog settings

Capture your mouse movements using the options and commands in this dialog, which opens when you choose the Cappucino command.

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.

MOCCA

REFERENCE 29

Start Realtime This button prepares MOCCA for multiple-keyframe recording. It tells MOCCA to start recording as soon as the mouse button is pressed within the viewport and stop when it is released again. Look at the Timeline: when you first press the mouse button in the viewport, the Timeline pointer will start running and then stop abruptly when you release the button. MOCCA will record a key for each frame of the animation. In PAL mode, this will result in 25 keys per second; in NTSC mode, 30 frames per second, by default. Use the KeyReducer tool to reduce the number of keyframes if necessary. 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’.

When pane

This is where you set the time range of your recording. Range, From, To Use this drop-down list to choose one of four different settings that limit the range of the recording. Document This option uses the project settings of CINEMA 4D (Edit > Project Settings), where you can set the frame rate (frames per second) as well as he total number of frames in the Timeline. If, say, the project settings are set to a range of 0 to 90 frames and this option is selected, MOCCA will only record 91 frames and no more.

MOCCA

30 REFERENCE

Preview With Preview selected, the range in the Timeline will be used to determine the extent of the recording.

Here, the Timeline’s preview range will be used. For example, if the preview range markers are set to frames 25 and 50, keys will be recorded from frames 25 to 50 only. This range must be set in the Timeline first. Render This option uses the frame range defined on the Output page of the render settings. User When this option is chosen, user-defined settings can be entered manually in the Cappucino dialog. The recording will take place between the frame numbers you set in the From and To edit fields. 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. Rewind Time This will rewind the time slider to its initial starting point once the recording has stopped. If you are unsatisfied with the results of the recording, or just want to practice the movements, you can press the Start Realtime button once more and overwrite the previously recorded animation, frame for frame.

Where pane

Here you can choose which objects are to be recorded. If you just want to animate certain objects in the scene, you can assign them to a specific layer in the Timeline. Then choose that layer here and Cappucino will be unable to record keys if you select an object that is not part of the chosen layer. Keep in mind that each object you drag into the Timeline, without assigning it a specific layer, will automatically be part of layer 1. If you haven’t assigned objects to any other layer, you can just keep on working with layer 1 for your animation.

MOCCA

REFERENCE 31

Layer This drop-down list gives you a choice of layers, corresponding to the layer system in the Timeline. If objects are assigned to specific layers, this option enables you to lock or unlock object groups for recording, as described above. 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.

What pane

The only remaining factor that Cappucino needs to know is what to record, meaning what type of animation. Here you will find the following five options: Position If you want to record the changes in position of an object, enable this option. Position tracks will be created in the Timeline. Scale Animating the scale can be achieved by enabling this option. Scale tracks will be created in the Timeline for the selected object. Rotation If you want to record the rotation of an object over time, enable this option. Rotation tracks will be created in the Timeline for the selected object. PLA Point level animation of a polygon object will be recorded with this option enabled. PLA tracks can be created with the help of the magnet tool. Hierarchy In this case, not only the selected object and its predefined tracks will be keyframed, but also those of its child objects.

MOCCA

32 REFERENCE

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. Object Manager The object that is selected in the Object manager will be used for recording. Simultaneous recording of several objects is not possible here. Timeline The objects that are selected in the Timeline will be used for recording. Simultaneous recording of multiple objects is possible. In other words, selecting one or more separate objects in the Timeline will enable you to record the movements or deformations for all selected objects.

MOCCA

REFERENCE 33

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. You’ll then find it easier to edit the tracks.

KeyReducer is an invaluable tool when it comes to cleaning up motion capture tracks such as those created using MOCCA’s Cappucino tool. Most motion capture systems write a key per frame to ensure that all important data is captured. However, this process usually generates many more keys than are necessary. When you need to edit these tracks, it can be extremely difficult to tell what events happen at what time. In such cases, you can remove the unnecessary keys using the KeyReducer tool. It reduces the number of keys used by the selected tracks intelligently, keeping the important keys while removing those that are not required. To select the KeyReducer tool, choose Plugins > MOCCA > KeyReducer or its icon from the MOCCA palette. The KeyReducer dialog opens.

KeyReducer dialog settings Reduce the number of keys using the Reduction slider in the KeyReducer dialog, which opens when you select the KeyReducer tool.

Reduction This slider controls the strength of key reduction for the selected tracks. To test this, capture the movements of a Cube object in the viewport and select the tracks in the Timeline. Now select the KeyReducer tool, drag the handle and observe how keys disappear. 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. Note that boosted reductions will remove the vast majority of keys within the first few positions of the slider.

MOCCA

34 REFERENCE

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 having to drag any sliders. To use the TimeWarp tool, hold down the ‘J’ key and, in the viewport, drag left or right to move backwards or forwards respectively in time. You can travel more slowly through the animation by holding down Ctrl at the same time. You can also access the TimeWarp tool from the Plugins > Mocca sub-menu or by selecting its icon from the MOCCA palette. In this case, there is no need to hold the ‘J’ key — simply drag left or right in the viewport to step backwards or forwards in time. In addition, and most importantly, a Step setting is available in the Active Tool manager. This differentiates the TimeWarp tool from the time slider.

Active Tool manager settings The Step value determines how far you need to drag the mouse in order to advance or rewind the animation by one time unit.

Step This is where you set the relationship between length of mouse movement and time. A higher step value means less movement of the mouse to reach the desired point in time. But be careful: the higher the step value, the more difficult it will be to stop at a specific frame.

MOCCA

REFERENCE 35

PoseMixer Tool 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 is a ‘morphing’ tool. Simply put, morphing is the transition of one form to another. The PoseMixer tool uses deformed duplicates of an object to achieve this. PoseMixer works just like an audio mixer or synthesizer. The duplicates, called ‘poses’, are like the inputs of the mixer desk. They should be parented to the PoseMixer object. All you need now is the output, for which you can use a target object. Mixing the poses will then apply the mixture of deformations directly to the target object. One of the most useful tasks for PoseMixer is facial animation, especially mouth shapes. The most important vowels can be assigned as duplicates to the PoseMixer. By mixing all of them together, to lesser or greater degrees, you can create virtually any mouth form and animate it. PoseMixer also works with objects, bones, splines and points. Animated objects can also be mixed with each other. To select the PoseMixer tool, choose Plugins > MOCCA > PoseMixer or click the PoseMixer icon from the MOCCA palette. The PoseMixer settings appear in the Attribute manager.

Attribute manager settings Object Properties Add and record poses using these settings, which appear in the Attribute manager when the PoseMixer tool is selected.

Record This button sets keyframes at the current time for the present mix of poses. For example, if you have mixed three different poses and use Record, PoseMixer won’t just set a single key. Instead it records a separate key for each pose track, containing the necessary amount of each pose for the resulting shape. Therefore Record makes it extremely easy to build entire animations without having to worry about a multitude of objects. Add Pose Add Pose will add a new mixing track, so to speak. A new entry box appears into which you can drag the pose (from the Object Manager). Next to the entry box you’ll find a slider which controls the strength of the pose’s influence on the final mix. You can also drag other PoseMixer objects into this box. This can facilitate the organization of your poses.

MOCCA

36 REFERENCE

Suppose you want to use PoseMixer to create shapes for an entire face, including mouth, eyes, eyebrows or even the nose. If you first work just on the mouth and set a key, all the other poses will receive a key as well. Sooner or later, you’ll find the Timeline filled with keys, making it difficult to change anything without destroying your timing. Additionally, this could quickly lead to a very long list of poses to mix in the PoseMixer settings in the Attribute Manager. You can make your life easier, by simply creating separate PoseMixer objects for each part of the face and then dragging all of them into another ‘Master’ PoseMixer object. Default Pose This is where you drag the default pose, which serves as a reference for the other poses. MOCCA needs a default pose to compare its rest state with the deformations of the other poses and then apply whatever differences it finds to the target object. Therefore we recommend using a neutral position of the object for the default pose.

MOCCA

REFERENCE 37

MoMix Object Smooth character animation demands smooth blending from one motion to another. For example, when a character performs a running jump, he runs and then jumps, the running action must blend into the jump action. Otherwise, the change from one action to another will be abrupt and unrealistic. Using the MoMix object, you can easily blend animation tracks.

Put together the words ‘motion’ and ‘mixing’ and you get MoMix. In a nutshell, MoMix does exactly that: it mixes animation tracks. It does so intelligently, though. Imagine trying to animate a character going from a walk cycle to a handstand and from there to a cartwheel. Before MOCCA, the only way to go between such motions was either to animate all keyframes by hand, leaving very little space for adjustments, or by using motion sequencing, which didn’t necessarily prove to be much less cumbersome. Improving upon this is what MoMix sets out to do. The workflow is very similar to using PoseMixer, except that you are mixing full animations, not just poses. Here, too, it is recommended to work with duplicates of the original character. If a character goes from a walk to a run, you should therefore animate both separately with duplicates. In addition, you need the non-animated ‘Default Actor’ as a reference, just like you did for PoseMixer. To help you with the organization in the Object manager, parent the animated characters to the MoMix object. This will make it easier for you to find them afterwards. MoMix doesn’t care where the animations are; however, the MoMix object needs to be parented to the original character to which you want to apply the mix. To create a MoMix object, choose Plugins > MOCCA > MoMix Object or click the MoMix Object icon on the MOCCA palette. The settings for the MoMix object will appear in the Attribute manager.

Attribute manager settings Set up your MoMix object here.

Default Actor Drag the unanimated reference character into this box. Just like the PoseMixer’s default pose, the motions you’re trying to mix will be compared to this reference object. Any change will then be applied to the target character. Add Motion Track When you parent an animated object to the MoMix object, the system still needs to know how to mix between the separate movements. This command simply adds a motion track to the Timeline for the MoMix object, which it will mix later on. Select this track in the Timeline (ensure that the MoMix Object is in the Timeline first) and have a look at the Attribute manager. Here you’ll find an input box, called Actor, into which you need to drag, from the Object manager, the animated character. Do the same for any additional motion tracks.

MOCCA

38 REFERENCE

Select a motion sequence in the Timeline and drag the object you want into the Actor box for that sequence in the Attribute manager.

Auto In Enabling this option will automate the type of transition between the tracks. Based on the existing motion tracks, the system cross fades between the tracks throughout the length of the overlap. Even if the selected motion track does not overlap any other motion tracks, the Time In and Bias In values still apply. Mix tracks together by adjusting the Bias and Time values.

The motion curves (click the boxed ‘+’ icon to the left of the Motion track) show the fade in, fade out transition.

Bias In Bias controls the shape of the mixing curve. 0% gives you a linear fade, whereas 100% will create a very steep curve for the fading region. It is possible to work with negative values. Time In This is where you set the length of the fade. Auto Out Enabling this option will automate the transition curve between the tracks. The system cross fades between the tracks, throughout the length of the overlap. Even if the selected motion track does not overlap any other motion tracks, the Time Out and Bias Out values still apply.

MOCCA

REFERENCE 39

Bias Out Just as with Bias In, this setting controls the curvature of the transition, but on the right hand side of the track. Time Out This control modifies the length of the transition, starting on the right side of the track.

MOCCA

40 REFERENCE

P2P Library and Manager Collect and manage poses for your animation with these useful tools.

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. Before you can start adding poses to a P2P library, you need to add a P2P Library object to the Object manager; to do this either select Plugins>MOCCA>P2P Library or click on the Add P2P Library Object icon on the MOCCA palette. Now, double-clicking the P2P library icon in the Object manager will open the P2P manager, which enables you to collect the different poses. You can also open the P2P manager for the selected P2P library object by selecting Plugins>MOCCA>P2P Manager. We recommend that you define a reference, or neutral, position of your character as the first object in the P2P manager. To do this, just drag and drop the character’s name from the Object manager into the empty space in the P2P manager. After you let go of the mouse button, a rendered thumbnail appears in the manager window (this may take a few seconds, depending on the geometry of your object). You can now repeat this process to add as many poses as you need to the P2P manager. After you’ve collected all the necessary poses, drag the P2P library onto the target character that will be animated by the poses (again, it is recommended that you use a neutral pose of this character for this target object). This works similarly to PoseMixer and MoMix. Please note that you shouldn’t drag the library onto the target object beforehand; dragging the library (within an object) into the P2P manager could lead to recursion.

Pose2Pose manager settings The P2P manager is where you collect all the poses that you want to store in the P2P library.

Add Folder Click this button to add a folder inside the P2P manager’s window, into which you can drag objects (poses) from within the P2P manager or directly from the Object manager.

MOCCA

REFERENCE 41

The folder will be named ‘Libn’, by default, where ‘n’ is a number that increases as you add folders. Naturally, you can always rename a folder by double-clicking its name, typing the new name into the dialog that opens and clicking OK. Test Test temporarily applies the selected pose in the P2P manager to the target object; if no pose is selected, Test is grayed. Test enables you to quickly check the pose, before recording it in your animation. This makes sense, especially for very intricate poses such as a face, where the thumbnails might not be enough to check detail. 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, but 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. You can also drag the updated pose back into the P2P manager to create a new version. Geometry If you use elements, such as deformers, that deform the actual geometry of an object, within the P2P library, you need to select this option. Otherwise, MOCCA will not recognize these deformations. This enables you to work with deformers, points and even bones as elements of the pose. Remove Clicking this button will delete the selected pose or folder from the P2P manager’s list. 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 target character’s track, but on the P2P library object’s Pose track. If the P2P library object is not visible in the Timeline, you can add it to the Timeline display by dragging its name from the Object manager to the Timeline (note that this will create a new manual selection in the Timeline - see the Timeline chapter for more details). Sync Sync synchronizes poses in the P2P manager with the reference object in the scene. Select a pose from the manager first. Suppose that this pose was a bit stiff and you wanted to modify it in the viewport. Edit the pose while having the pose selected both in the P2P manager and in the Object manager and then click on Sync. The selected pose in the P2P manager will be overwritten with the modified version. Afterwards, you can use the modified pose just like any other.

MOCCA

42 REFERENCE

Attribute manager settings Key Properties When you select a key on the Pose track of a P2P library object, you will see the following Key Attributes in the Attribute manager. Name Set the parameters for each key on a Pose track in this dialog.

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. Name is designed to make organization more flexible. Time This gives the current time of the selected key in the Pose track. To change this, you can either enter a number or simply drag the key along the Pose track in the Timeline. Link In this field is the name of the pose to which the key is assigned. If you want a different pose to replace this one at the current time, select that pose and click Record in the P2P manager to overwrite the old pose and key in the Timeline. Bias Bias modifies the transition between the selected key and the next key on the Pose track. A bias of 0% creates a linear interpolation between both keys. A lower or higher value will create a sloped curve between the selected key and the next key. To see the shape of the curve, click on the boxed ‘+’ icon next to the Pose track in the Timeline. This will open the pose curve display. Smooth When you loop a Pose track within a Timeline sequence, copies of the sequence will be placed one behind another 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.

Tutorials

MOCCA

TUTORIALS OVERVIEW 45

Introduction Character animation is arguably the most difficult of all 3D skills. Thanks to MOCCA, acquiring those skills is made easier with a collection of powerful tools which extend and enhance CINEMA 4D’s existing animation features.

MOCCA is an acronym for MOtion Capture and Character Animation. It is a collection of powerful tools and extensions for CINEMA 4D, designed to make character animation much easier. These tools in MOCCA have been developed with the assistance of many studios and individuals, based on what they use now and what they told us they needed. Unlike traditional character animation plugins and packages, which normally require a completely separate interface and then later send the data back to the main 3D application, MOCCA consists of new tools and features which are placed in various parts of the CINEMA 4D interface so that they become cleanly integrated into the workflow. However, as innovative and intuitive as MOCCA is, it will not turn us into character animators overnight. MOCCA is a toolset which will amplify our existing abilities. In this tutorial manual, after some general advice about character animation, we will begin by honing our basic animations skills using forward kinematics, inverse kinematics and soft inverse kinematics. Following this we will plunge head first into MOCCA and develop a fully animated character using a variety of tools and techniques which will give us a good grounding in advanced character animation skills.

MOCCA

46 TUTORIALS OVERVIEW

The 12 Principles of Animation Some things never change. While new tools and techniques for character animation seem to appear almost daily, the founding principles of animation are as valid today as they were when first learned by the pioneers of animation.

The 12 principles of animation are guidelines we must always keep in mind. If we ignore these principles, we will find that our characters move unconvincingly. To get the most from each principle we should act it out to see how it really works. Sure, we may look like idiots while we’re doing it, but this is something all the great animators will have spent hours doing. (Acting out the principles, that is, not necessarily looking like idiots.) Timing. Timing is everything, or so famous people keep telling us. Take something as simple as turning our head to the side. If we turn our head slowly, it might suggest that we’re simply observing our surroundings, not looking for anything specific, whereas if we suddenly turn our head sharply it might appear that someone has called our name, or perhaps we’ve just seen something out the side of our eye. To complicate things further, we might not turn our head in one smooth action, it may move 45º, pause for a moment and then continue quickly all the way to the side. This might be the kind of movement we would make if we heard a fly buzzing around, but couldn’t quite see it at first. However we decide to time our movements, we must make sure that they are not all using default settings otherwise we’ll end up with synthetic motion.

MOCCA

TUTORIALS OVERVIEW 47

Ease in and out. People never move from one position to another without having to first accelerate and then decelerate. Imagine someone waving their arms in distress to attract someone’s attention. Their arms may be moving very fast, but arms usually have a lot of weight to them, which means that they can’t stop instantly, not without hitting a wall at least — actually they move very fast until they’re halfway to the position they want to be in, but as they start getting close to where they want to be, they will slow down gradually. Arcs. It’s all about the arcs. Very rarely will you find any part of a person moving in a straight line, it just doesn’t happen. If we raise our hand upwards so that our arm straightens out — imagine we’re holding the checkered flag for the next F1 race — and then move our hand down as low as we can go... The natural way to do this is to move our arm in an arc, leaving the arm more or less straight. It’s quite unlikely that we would fold our elbow so that our hand passes close to our chest. Even though moving in an arc is a longer distance, it requires the least work and tends to feel more natural. The same things happens when we look from our left to our right. When our head faces forward it will be pointing down slightly, and then lift up again when we get to the other side. It is these small details that we must get right when animating our characters. The natural thought process to achieve the above animation might be to add a keyframe while looking left and then another while looking right. But the interpolation is going to take the shortest route from A to B. What we need to do is make a keyframe halfway through to facilitate the slight dipping of the head — the ‘passing position’ as it is known.

MOCCA

48 TUTORIALS OVERVIEW

Anticipation. Anticipation, no matter how trivial it might seem, is what keeps keeps an audience on its toes. Study the picture below. What is he about to do? From a character’s pose we can anticipate the action that is probably going to follow.

He’s about to swing a bat, yes? We can’t be certain, we don’t know what he was doing before and we haven’t actually seem him moving, but by judging his pose we anticipate that he is going to swing the bat, probably at a ball that is heading towards him. Imagine we’re about to punch someone, what do we do? Well, unless we’ve mastered Bruce Lee’s one-inch punch, we would lean our entire upper body back, then space our legs apart and pull our fist back. In this coiled pose it’s quite clear that the fist we’re holding back is about to swing forwards; this would usually be coupled by the other hand being further forwards to counterbalance. The great thing about working anticipation into our animation is that it doesn’t just have to be large, broad movements. Someone who is about to sneeze will simply take a short, sharp breath and close their eyes slightly. If they sneezed without doing this first it would be a strange sight indeed. So, remember, before doing certain moves, think about what would happen before the actual movement.

MOCCA

TUTORIALS OVERVIEW 49

Exaggeration. Exaggerated movement is a vital part of all acting, whether it’s a Hollywood movie, a London theater show or a Warner Bros cartoon. Movements can be exaggerated to ridiculous levels while still maintaining believability. If actions speak louder than words, make sure everyone can ‘hear’. When we have an argument with our boss we might find ourselves waving our hands with very firm movements, often in time to what we’re saying. When an actor argues, we’ll see limbs flying all over the place as they shout and scream. As an audience, we dont think too much of it because they are only exaggerating what we all do naturally. Grab a kid’s cartoon video and play a few sections frame by frame. We will probably be horrified by what’s going on in there. Cartoon characters allow for more creative freedom than any other form of acting. For example, it’s not uncommon to see characters stretching to double their normal height in order to catch something. Squash and stretch. This is the 3D world and we have total control over how characters change shape as they move. But there is a golden rule we need to follow: retain the same volume. The simplest example of this would be a bouncing rubber ball. When the ball hits the ground it squashes to become flatter, no longer a sphere. Similarly, when it bounces up and leaves the ground it stretches in the direction in which it is traveling. But while doing both of these actions it will always keep its volume. When it squashes to half its height when hitting the ground, it scales to twice the width and depth. If the ball just flattened on impact, without becoming any wider, it would look strange, giving the viewer a feeling in the back of their mind that something isn’t quite right. Our characters can also squash and stretch themselves. Imagine a chubby fellow who is about to jump up into the air. As he is anticipating the jump he squashes himself down closer to the ground; this way he has more velocity when he leaves the ground. His belly would not only squash down, it would also have to stretch out sideways to compensate. As he leaves the ground he is stretching up as high as he can; he would look visibly thinner because there is not as much of his belly all in one place any longer. Secondary motion. Secondary motion can be considered as the finishing touch to our characters as it is often one of the details we put in last. Secondary motion covers objects such as flowing hair and clothing. With animal animation, this might be a tail following behind the beast, or big flapping ears which flail up and down. Remember, these parts of the character will also have some weight so they may continue moving several seconds after the character has stopped.

MOCCA

50 TUTORIALS OVERVIEW

Follow-through and overlapping action. An example of follow-through is someone throwing a ball. When they move their arm forwards and throw the ball, the arm will continue moving after the ball has been released. If a character performs several actions at the same time, then we can avoid unnatural and mechanical movements by following the principle of overlapping action. Instead of starting and stopping all actions at the same time, we make them overlap by shifting one action to a few frames before or after the other action. An example of overlapping action is someone jumping. It will appear more natural if the feet hit the ground a few frames apart rather than having them land at exactly the same frame. We could use this to comedy effect with characters that have lots of feet — the front set of feet could stop when they get to where they’re going, while the back sets keep walking because they are so far behind. Straight-ahead action and pose-to-pose action. There are essentially two different techniques for animating, straight-ahead action and pose-to-pose action. Straight-ahead action involves animating a character frame by frame. This method doesn’t need any planning other than the basic storyboard, which means the result is often unpredictable, but it can give more dynamic movement than pose-to-pose. Pose-to-pose action, which is the predominant technique, requires planning the animation, setting up the key poses and then filling the frames between. These less important frames are naturally referred to as the ‘inbetweens’. The advantage of computer animation over traditional animation is that the software can do a lot of the inbetween animation for us by interpolating between poses. But to make motion more natural, it is often necessary to adjust the inbetween movements manually. Staging. When staging a scene it is equally important that the viewer can see what’s going on in the scene as well as seeing the scene itself. Although this is getting away from the actual character animation, it is an important part of the job — bad staging can ruin a scene. There are three main points to remember here. Frame the shot so that all of the important actions can be seen. If a character is reacting to something else in the shot, make sure that character can see what it is he’s reacting to and also that the viewer can see what he is reacting to. Don’t overload the scene. If a character is making a subtle movement or gesture which is important to the storyline, ensure there isn’t anything else happening at the same time which might distract the viewer.

MOCCA

TUTORIALS OVERVIEW 51

The third point applies if we have more than one character in a scene. When cutting from one shot to another, always ensure that the characters remain on the same side of the screen. The camera should never rotate more than 180º around the subjects as this will confuse the audience. This is why football matches are always displayed, for the major part of the game, from the same side of the pitch. In the event that a close up of some action on the other side of the pitch has to be shown, you will always see the words ‘reverse angle’, or something similar, appear on the screen. Another aspect of staging is the perspective in which the scene is shown. The perspective defines the character’s silhouette. If the viewer is not able to recognize a character’s pose by looking at it only as a black silhouette on a white background, then we either need to change the pose or change the perspective to make the silhouette clearer and more meaningful. Appeal. The appeal of a character and that character’s personality are closely linked. However, appeal is more about the audience perception than the character itself. It isn’t likely that the Queen of the United Kingdom would ever want to watch a Ren and Stimpy cartoon — even though Ren and Stimpy might be oozing with personality their humor is aimed at a different audience. So we must ensure that all the work we’re putting in will be well received by our target audience. It could be the best character animation the world has ever seen, but it will have all been a waste of time if the audience we show it to doesn’t want to see it. Personality. Our characters are nothing without personality. To keep an audience hooked on what we’re showing them, it must be interested in a character. Let’s say we’ve got a cute little girl as a character and she keeps getting herself into near death situations, skipping with a rope across a motorway perhaps. If she doesn’t act cute as she does it, it’s unlikely that an audience will care about her imminent peril. So we can’t just use a boring walk to make her move across the busy road, nor can she just stare ahead with a blank expression on her face, we need to do everything we can to emphasize that she’s a cute, innocent little girl and doesn’t deserve to be run down by a 300 ton truck. Perhaps we could give her a double-skip in her walk, suggesting that she has a song in her head and is in a world of her own. Or she could have a grin on her face that is so large that it forces her eyes shut, which again adds to her innocent appearance.

MOCCA

52 TUTORIALS OVERVIEW

Summary Character animation isn’t as simple as just moving a figure around and rotating a few limbs back and forth. It is a much more involved process which depends upon the manner in which we move the figure. A character without personality is hardly worth watching. The best way to invent a character is to act out for ourselves how that character would react to things, maybe even video ourselves so that we have some reference material to work from. Whatever we do, we shouldn’t be shy to try anything which may help us in our work.

MOCCA

TUTORIALS OVERVIEW 53

Modeling for Animation If we follow three simple preparation guidelines in CINEMA 4D, we will ensure that animating our models will be faster and less prone to unexpected results.

Character animation is not about animation alone. If we plan to animate using bones, there are things we need to take into account at the modeling stage, the golden rule being: the simpler we keep our object meshes, the easier it will be to animate and manage them. Below we present some essential tips which will help us prepare our models for animating. Use HyperNURBS. Use HyperNURBS wherever possible. Using HyperNURBS enables the geometry of an object to be very simple so that it consists of only a small number of polygons. HyperNURBS then smooths this geometry, which is known as a ‘cage’ object. Cage objects work perfectly with bone deformations. Study the example below. When using HyperNURBS, the bones deform the low resolution mesh and the HyperNURBS smooths the surface afterwards. The object surface will always be perfectly smooth. Using a high resolution mesh instead, the many points in the mesh get torn apart when being deformed and hard creases result. Left: The low resolution mesh is deformed and smoothed by HyperNURBS. Right: The high resolution mesh is deformed.

MOCCA

54 TUTORIALS OVERVIEW

By carefully setting up vertex maps it is possible to get smooth deformation for a high resolution mesh, but this requires much work. However, if a high resolution model has been imported from another 3D package, this is most likely what will have to be done. Use the correct number of subdivisions. When a cage object has a very low number of polygons, we might run into problems at joints (elbows, knees, wrists) if there are not enough subdivisions in these areas. Left: Not enough subdivisions, the arm gets thinner when bending. Right: Extra subdivisions added with the Knife tool.

Above we can see that, when there are not enough subdivisions, the arm gets thinner when bending. To avoid this we add one or two extra subdivisions using the Knife tool. Remember that the bone deformations will deform only what is already there, they will not add extra detail. A good rule-of-thumb is to use at least three edgeloops per joint — one connected to the upper limb, one to the lower limb, and one to smoothly bend between. (An edgeloop is a ring of edges which goes all the way around an object.) Set up the hierarchy properly. If our character is complex and consists of many different objects such as clothing or other accessories, the objects will need to be grouped in a certain way. Let’s take a character as an example; it uses HyperNURBS for the body and the clothing but high resolution geometry for a pair of sunglasses.

MOCCA

TUTORIALS OVERVIEW 55

Left: Wrong hierarchy order. Right: Correct hierarchy order.

If we simply group all objects under a Null object and put the bones into this Null object, the bones will deform the body and the clothes after the HyperNURBS smoothing. They are effectively deforming the high resolution meshes and much of the usefulness of the HyperNURBS is destroyed. Instead, we should remove the HyperNURBS objects from the body and the clothes, then group body, clothes and sunglasses under a Null object and then put this Null object into a HyperNURBS. To prevent the sunglasses from being unnecessarily subdivided by the HyperNURBS, we assign a Stop Tag to the object. So now the bones are inside the Null object, deforming the low resolution body, clothes and sunglasses, before the HyperNURBS smoothing takes effect.

Summary When animating characters, not only are the surfaces of our models important, but equally critical to the smooth operation of the animation tools is the relationship of objects to one another in the Object manager hierachy. Deformations and bones should always be applied to the low resolution objects before operations such as HyperNURBS are applied. We should also keep in mind that imported objects from other sources will often have a high resolution, leading to the problems outlined above. Try to model characters within CINEMA 4D or, if for whatever reason this is not possible, try to obtain low resolution cage objects.

MOCCA

56 TUTORIALS BASICS

Basic 1 Forward Kinematics Although not one of the most useful animation tools, a basic understanding of forward kinematics will help us to develop more advanced skills.

Forward kinematics (FK) is the easiest method of animation. It doesn’t take much preparation at all to animate a character with FK. In this tutorial we will see how to use FK to animate an arm. In order to help you become familiar with the way forward kinematics works — before you start using the more advanced tools in MOCCA, that is — for this tutorial we will be using only tools which are part of the core CINEMA 4D package. If you know the basics of forward kinematics you might like to skip over this tutorial as it is designed for those with little or no experience of character animation. Load the file named ‘Arm.c4d’ from the Basics folder on the MOCCA CD. The scene we are loading contains an arm made of three separate parts.

The arm in this scene is made of three separate objects. Glancing at the Object manager, we can see that the lower arm is a child of the upper arm, and the hand is a child of the lower arm. This hierarchy order is one of the basic requirements of character animation so that when the upper arm is rotated, the lower arm and the hand follow automatically.

MOCCA

TUTORIALS BASICS 57

In the Object manager, one after the other, select the Upper Arm, Lower Arm and Hand objects to see the placement of the object axes in the viewport. By clicking on each arm segment in turn we can see where the object axis is positioned. At the moment the axes are placed in the middle of each segment. Use the Object Axis tool (left-hand toolbar) and the Move tool (top toolbar) and, in the Viewport, move each object axis to the left end of every segment, as illustrated in the picture below. The axes are now correctly positioned at the arm joints.

The Object Axis tool (left) is in the left-hand toolbar; the Move tool (right) is in the top toolbar.

For character animation, the object axes need to be at the joint area between two segments. The Upper Arm axis needs to be at the shoulder joint, the Lower Arm axis at the elbow and the Hand axis needs to be at the wrist. This is because the object axis is the center of rotation for an object. For the Hand, the center of rotation is the wrist, for the Lower Arm it’s the elbow, and so on. The arm is now ready to be animated with the FK method. In the Object manager, select all three arm segments. We want to use the current position of the arm as the starting position for our little animation. We need to record keyframes for all three arm segments, so we need to select them all. In the animation toolbar, disable the buttons for recording Position, Scale and Parameters, leaving only the Rotation button enabled. Disable everything in the animation toolbar except for the Rotation button.

In the animation toolbar we can choose what type of keyframes we want to record. Since we want to animate the arm by rotating each part of it, we disable everything except for the Rotation button.

MOCCA

58 TUTORIALS BASICS

Press the Record button to record all three arm segments at their current positions. Drag the timeslider to frame 20. In the viewport, rotate the arm segments until they look similar those in the picture below. Position the arm like this, ready to record a second keyframe.

This will be the second arm pose in our animation. In the Object manager, select all three arm segments again and press Record in the animation toolbar. If we now move the timeslider back and forth we can see the arm moving from pose 1 to pose 2.

MOCCA

TUTORIALS BASICS 59

Move the timeslider to frame 40 and rotate the arm segments so that they appear similar to those in the following picture. Before recording our third keyframe, move the arm into this position.

This will be our final arm pose. In the Object manager, select all three arm segments once again and press Record in the animation toolbar. Press Play to watch the animation.

Summary We have seen how to use forward kinematics as a simple animation technique. For every pose, every segment of an arm (or leg, or any other part of a character) needs to be rotated manually. This technique requires hardly any setting up but it can become time consuming if we want to prepare a complex animation because every arm segment needs to be recorded if it has been moved, which creates a lot of keyframes. Another disadvantage of this technique is that something like an arm picking up an object is difficult to achieve; to get the hand to the object, all arm segments need to be rotated accordingly and adjusted several times until the hand is positioned correctly at the object — making a character hold on to an object while it is moving is nearly impossible. So, while forward kinematics has its uses, it is not something we’ll be using very much.

60 TUTORIALS BASICS

MOCCA

Basic 2 Inverse Kinematics Animating with inverse kinematics is quicker and easier, primarily because it is more flexible and less manual work.

As its name suggests, inverse kinematics (IK) means animating in a reversed way. With FK, all arm segments are rotated and it is more or less unpredictable where the hand will end up. This makes it difficult to position the hand precisely. IK, works completely the other way around. With IK, we can grab the hand and drag it around in the scene while the arm adjusts automatically to compensate. In this tutorial we will illustrate how to make use of IK to animate an arm while recording keyframes for a single object only. In order to help you become familiar with the way inverse kinematics works — before you start using the more advanced tools in MOCCA, that is — for this tutorial we will be using only tools which are part of the core CINEMA 4D package. If you know the basics of inverse kinematics you might like to skip over this tutorial as it is designed for those with little or no experience of character animation. Load the file named ‘ArmIK.c4d’ from the Basics folder on the MOCCA CD. The arm in this scene will be animated with IK.

This is the same arm as in the previous tutorial, however the object axes are already in the correct places.

MOCCA

TUTORIALS BASICS 61

Select Objects > Null Object from the main menu. Null objects are empty objects that are often used as helpers, especially in character animation. We will be using null objects a lot in this tutorial manual. In the Object manager, double-click on the Null Object name and name it Shoulder Null Object. Null objects are often used as ‘helpers’ in character animation.

In the viewport, move the Shoulder Null Object to the start of the Upper Arm, where the shoulder would be. The null object is positioned at the shoulder.

Make sure it is at the correct place by checking the top and front views. In the Object manager, drag the Upper Arm object and drop it into the Shoulder Null Object. The Shoulder Null Object is now the parent object for the arm. Command-click on a Mac if you have only one mouse button.

In the Object manager, right-click on the Shoulder Null Object and select New Tag > Anchor Tag from the context menu. If we want to animate the arm by dragging the hand around, we need to keep the arm from moving away from its origin (the shoulder). That’s why we define the Shoulder Null Object as an anchor. It pins the arm to the position of the null object. It can rotate around this point, but not move away from it. Typical anchors in a character hierarchy would be the shoulders and the hips. Create another null object and name it Effector. This null object will act as the handle (or ‘effector’) which we can drag around in order to move the arm. In the viewport, move the Effector to the fingertips.

MOCCA

62 TUTORIALS BASICS

In the Object manager, drag the Effector and drop it into the Hand object. This hierarchy order is necessary for the IK to work.

As mentioned earlier, the correct hierarchy order is essential for character animation. The object at the end (or tip) of an IK chain needs to be at the bottom of the hierarchy. Select the Inverse Kinematics tool (left-hand toolbar) and drag the Effector object around in the viewport. The IK tool can be used to test the IK behaviour.

This tool provides an easy way to move objects with IK. No setting up is required, we can just grab the object at the tip of the IK chain (the Effector, in our case) and see how the arm reacts. However, when using the IK tool it is still necessary to record keyframes for every single part of the arm. So the IK tool is useful as a test or to quickly pose characters but, compared to using FK, it doesn’t provide many advantages for animation. Use Undo as many times as needed to return the arm to its original position. In the Object manager, hold down the Ctrl key, drag the Effector and drop a copy of it outside of the arm hierarchy. Name this duplicated null object Goal. The Goal object needs to be placed outside of the arm hierarchy.

By copying the Effector we have created a Goal object which is at exactly the same position as the Effector. The Goal object is the object we want to use to move and animate the arm.

MOCCA

TUTORIALS BASICS 63

Command-click on a Mac if you have only one mouse button.

In the Object manager, right- click on Effector and select Expression > IK Expression from the context menu.

The Effector is assigned an IK expression.

Drag the Goal object from the Object manager and drop it into the Target Object input box for the IK expression in the Attributes manager. The Goal object is dragged into the IK expression.

Select the Model tool (left-hand toolbar) and move the Goal object around in the viewport. The Model tool is in the left-hand toolbar.

The Goal object is now connected to the Effector using the IK expression — if the Goal object is moved, the Effector will move with it and pull the arm at the same time. In the animation toolbar, disable everything except the Position button. Only position keyframes will be recorded.

In the Object manager, ensure that the Goal object is still selected. Ensure that the timeslider is at frame 0. In the viewport, move the Goal object so that the arm is in a neutral position and press the Record button. Press the Record button. This records a Position keyframe for the Goal object at frame 0.

MOCCA

64 TUTORIALS BASICS

Repeat the above step at frame 20 and frame 40, recording the arm in roughly the same positions as in the pictures below. Left: Arm position at frame 0. Middle: Arm position at frame 20. Right: Arm position at frame 40.

Press Play to watch the animation.

Summary Once the inverse kinematics is set up, animating the arm using this technique is far easier and less time consuming than with forward kinematics because only the goal object needs to be animated. If we try moving the shoulder null object, we will see that the hand always tries to stay at the goal object’s position, unless we move the shoulder too far away. In this way we can make the arm hold on to an object. However, although inverse kinematics seems to be the better method, forward kinematics does have its uses. While an arm is best animated with inverse kinematics, fingers can be animated much more easily with forward kinematics as it would be a lot of work to create and animate goal objects for each finger. Instead, it makes more sense to create several hand poses and morph between them (which is something we will learn how to do later in this tutorial manual).

MOCCA

TUTORIALS BASICS 65

Basic 3 Using Bones and Soft IK For realistic character animation, particularly of organic characters such as humans or animals, we need to use bones and a special movement technique known as soft inverse kinematics.

In previous tutorials we have seen how to animate an arm made of separate parts for the upper arm, lower arm and hand. This might be OK if we want to animate a stiff puppet, but if we want to animate something as organic as an animal or a human, cutting the model into parts is not the optimal solution. Perhaps we should consider a real animal as an example of how it should be done — here a skeleton is inside the object and the skin deforms with the skeleton when the bones are moved. That’s exactly what we are going to do in this tutorial. We will create a bone chain for a dinosaur tail and make the tail move organically. We will also apply realistic dynamic behavior to the tail to make it even more believable. Load the file named ‘Tail.c4d’ from the Bones folder on the MOCCA CD. The dinosaur tail in this scene will be animated.

The tail is a low polygon object inside a HyperNURBS.

This scene contains a dinosaur tail. The tail has been modeled with only a few polygons which then become subdivided and smoothed by a HyperNURBS object. As mentioned at the beginning of this tutorial manual, HyperNURBS are essential for smooth deformations when working with bones.

MOCCA

66 TUTORIALS BASICS

Switch to the side view and select Objects > Deformation > Bone from the main menu to create a bone. In the Coordinates manager, rotate the bone to -90 degrees on the H axis. The bone is pointing in the wrong direction; it needs to be rotated so that the tip of the bone points towards the tip of the tail. In the viewport, move the bone to the root of the tail. The first bone is positioned at the root of the tail.

Select the Bone tool from the Plugins > MOCCA menu or from the Character toolbar. This tool is specially designed for creating and adjusting bones.

The Bone tool in MOCCA is a special tool which is indispensable when working with bones. The Bone tool options are displayed in the Active Tool window. In the viewport, drag the orange dot at the tip of the bone to make the bone slightly shorter, until it is as long as the first tail segment. In the viewport, hold down the Ctrl key and click to the right of the first bone to create a second bone. Repeat this until the bone chain consists of six bones, one for each tail segment. Every new bone is created as a child object of the previous bone, so we don’t need to worry about the hierarchy order of the bone chain at all. Another big advantage of bones is that we don’t need to worry about the object axes, as we did in the kinematics tutorials when working with a character that had separate parts. Bones automatically have their object axes positioned correctly at the joints.

MOCCA

TUTORIALS BASICS 67

Adjust the bones by dragging the yellow dots between them until the bones match the tail segments. Bones can be adjusted by dragging the yellow dots.

When the Bone tool is selected, yellow dots are displayed at the joints between the bones. By dragging these yellow dots (the currently selected one is orange) the bone chain can be adjusted to the object geometry. In the Object manager, drag the first bone (the top-most parent bone) and drop it into the Tail polygon object. The bone chain needs to be inside the polygon object.

In order for the bones to have any effect on the tail geometry, they need to be placed as child objects into the Tail polygon object. Command-click on a Mac if you have only one mouse button.

In the Object manager, right-click on the first bone and select Fix Bones from the context menu. In the dialog that asks if we want to include the sub-objects as well, click Yes. This defines the current position and rotation of each bone as its rest position. Whenever we have moved the bone chain and we want to return to the rest position, we can choose Reset Bones from the context menu. When fixing the bones, they were also enabled (note the green checkmark next to each bone in the Object manager) so if we now move or rotate them, the geometry will follow.

68 TUTORIALS BASICS

MOCCA

In the Object manager, click on the top-most bone and then, in the Attributes manager, on the Object page, set the Function to 1/r^10. Left: Bone Function = 1/r^2. Right: Bone Function = 1/r^10.

The bone function defines how soft or hard the bend at the bone joints gets when the bones are rotated. The default function makes very soft bends, causing the whole dinosaur tail to bend even when only the tip bones are rotated. The function 1/r^10 allows for better control since the bend area is much more limited around each bone. Ensure that the top-most bone is still selected in the Object manager, then select Setup IK Chain from the Plugins > MOCCA menu or the Character toolbar. Soft IK tags are assigned to the bone chain.

The Setup IK Chain command automatically creates a Soft IK setup for the whole bone chain by assigning Soft IK tags to each bone and defining the top-most bone as an anchor. An anchor is essential to stop the entire object being pulled along when we move a bone; without the anchor we would quickly lose control of the model. The Setup IK Chain command also creates an effector object at the tip of the last bone and a goal object (named Bone.Tip Goal) which is connected to the effector and acts as a handle for the bone chain. Note that goals don’t have to be applied only to the tip of a bone chain, a bone chain can have more than one goal. We could, for example, use the Add Goal command (from the Plugins > MOCCA menu or the Character toolbar) to add another goal object to a bone in the middle of the tail. This would give us additional control over the tail. Press the Play button to force a constant redraw in the viewport and select Quick Shading from the viewport Display menu. We choose the Quick Shading display mode to make the tail more visible than it is when in Isoparm mode. Note that it is also possible to force a constant redraw by using the Auto Redraw function from the Plugins > MOCCA menu instead of playing the animation; this is necessary if the bones are already animated.

MOCCA

TUTORIALS BASICS 69

In the Object manager, select the Bone.Tip Goal object and, in the viewport, move it up and down to see how the bone chain reacts. This behavior is not much different from the IK in the core CINEMA 4D package. It is, however, much more accurate and behaves more organically. The benefits of MOCCA’s Soft IK over standard IK are described in the MOCCA reference. In the Object manager, select the Soft IK tag for the top-most bone. The Soft IK tag of the anchor bone stores all the dynamics options.

In the Attributes manager, we can see that this Soft IK tag is set to Anchor (on the Tag page). This fixes the bone in its rest position so that it can’t be moved by the IK. The anchor bone Soft IK tag is where dynamic parameters like gravity and drag can be adjusted. Note that anchor bones are the only parts of an IK chain that can be directly animated with keyframes. With the animation still playing, in the Attributes manager enable the Dynamics option for the Soft IK tag of the anchor bone (i.e. the top-most bone). Activating the Dynamics option causes the bone chain to be pulled down by the gravity.

The bone chain is now being pulled down by the gravity. In the Object manager, select the Bone.Tip Goal object and move it up and down in the viewport. The tail seems to have weight.

The tail can still be pulled around with the goal object, but now the gravity additionally pulls it downwards, resulting in the impression of real weight. In the Object manager, select the anchor bone’s Soft IK tag again. In the Attributes manager, set the Drag and Inertia values to 0%. In the viewport, move the Bone.Tip Goal object up and down again. A high drag value makes a bone chain behave as if underwater or in glue, whilst a very low drag value or no drag at all makes the bone chain very active and results in a lot of overshooting and swinging. That’s exactly what we want for the dinosaur tail.

MOCCA

70 TUTORIALS BASICS

Now grab the Bone.Tip Goal object and drag it all the way to the right so that the tail gets stretched. As we can see, if we pull the goal object away from the tail, the bones get pulled apart. This behavior might be suitable for cartoon characters with rubbery arms and legs. In the Object manager, select all Soft IK tags except the one that belongs to the anchor bone. Select all Soft IK tags apart from the anchor.

To multi-select, hold down the Shift key while clicking, or drag a marquee over the tags. In the Attributes manager, on the Rest page, enable the Force Position option. In the Object manager, select the Bone.Tip Goal object again and, in the viewport, move it to the right. Activate Force Position to keep the bones from being pulled apart.

Activating the Force Position option prevents the bones from being pulled apart when the goal object is moved out of reach. The goal object can be moved far away from the bone chain, but the bones will stick together no matter what. This behavior is more like a real skeleton. In the Object manager, select the Bone.Tip Goal object and delete it. As the goal object is no longer holding it up at the tip, the bone chain is now hanging down under the force of gravity. We deleted the goal object because we don’t want the tail to look like it is being pulled by an invisible piece of string at the end, like a puppet. A real tail doesn’t get pulled by the tip, it gets its movement from the anchor bone at the base of the tail.

MOCCA

TUTORIALS BASICS 71

In the Object manager, select all Soft IK tags except the one that belongs to the anchor bone. In the Attributes manager, on the Rest page, set the Strength for the rest rotation to 30%. This Strength value controls the strength of the rest rotation for each bone.

In the viewport, the tail should lift up immediately. The rest rotation strength defines how much effort the bones will put in to try to remain at their rest rotations. A value of 30% means that dynamic forces like gravity affect them with 70% intensity. In the Object manager, select the anchor bone and, in the viewport, move it up and down and rotate it around. The tail is now behaving very organically. We can switch to the 3D view if we want to see the tail from a different angle. A ‘wobbly’ Soft IK set-up like this might also be applied to things like dog ears, octopus tentacles, cowboy whips or alien monster antennas. Simply adjust the rest rotation strength to make things more floppy or more wobbly as needed. In the Object manager, select all Soft IK tags except the one that belongs to the anchor bone. In the Attributes manager, on the Rest page, set the Strength for the rest rotation to 70%. We can see that the tail is much stiffer now. Gravity affects it only slightly. This behavior is probably not suitable for our dinosaur tail, but imagine using this Soft IK setup for things like radio antennas, flagpoles or high-jump athlete animations. Note that if we don’t want to constantly select the Soft IK tags in order to change one of their parameters in the Attributes manager, we can click on the little lock icon in the top right corner of the Attributes manager to lock the parameters that are currently displayed in it. Even if we now select a different object, the Attributes manager still displays the parameters which we have locked. We can open more than one Attributes manager to be able to adjust the dynamics parameters from the anchor Soft IK tag and the rest rotation strength at the same time.

Summary We have seen how to use bones to build a skeleton inside an object and then use the effectors and goals provided by soft inverse kinematics to animate the skeleton in a realistic fashion.

MOCCA

72 TUTORIALS ADVANCED

Advanced 1 Setting Up the Leg Having gained some basic experience with kinematics and bones, now we can take on a more complex project. In this series of advanced tutorials we will use the powerful tools and features in MOCCA to help set-up and animate a cartoon character.

In this series of advanced tutorials we are going to build a Soft IK set-up for a mime character. We’ll start with the leg, the set-up for which will be explained in every detail so that we can begin to understand the principles of setting up Soft IK for a character. The rest of the set-up (i.e. in later parts of this series of advanced tutorials) will be explained in slightly less detail so as not to keep repeating ourselves. Switch to the MOCCA layout by clicking on the Layout icon in the top left-hand corner of the interface and select MOCCA.l4d from the list. This layout is based on the CINEMA 4D animation layout, with some MOCCA specific additions such as a Character toolbar with all the MOCCA tools and the Automatic Redraw function (which will be explained later). During the set-up tutorials you may want to reduce the height of the Timeline to get a larger viewport. Load the file named ‘MimeLeg.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to begin the tutorial.

This scene contains the mime character we want to set up and animate. We won’t explain how to use the Bone tool again. If you need guidance on this then you should first complete the Basics tutorials or check the relevant chapter in the MOCCA Reference.

MOCCA

TUTORIALS ADVANCED 73

The leg bones are already created.

In the Object manager and the viewport we can see that the bone structure starts with the Pelvis bone at the top as the parent bone. This Pelvis bone will be the main parent bone for all other bones. Arm, leg, spine and head bone chains will all be sub-objects of this bone. Further down the bone hierarchy are Left Thigh, Left Shin, Left Foot, Left Toes and an additional bone called ++ which is a sub-object of the Left Foot bone. The ++ bone acts as a stabilizer to keep the foot in shape when it is deformed. Select the Claude Bonet tool from the Plugins > MOCCA menu (or from the Character toolbar) and, in the Object manager, select each of the bones in turn. Restrictions have already been set up for the bones. Each bone has a limited influence on a certain part of the geometry. Without a restriction, a bone would have influence on the entire geometry and this might lead to unwanted deformations — fingers being deformed when the leg is bent, for example. By clicking on each bone in turn we can see that the leg bones are all restricted to the leg while the foot and toe bones are restricted to the foot area. These Claude Bonet ‘bone maps’ were painted by selecting the Left Thigh bone and painting the entire left leg green. The map was then copied to the Left Shin by clicking on the Set Reference button in the Active Tool window and selecting the Left Thigh as a reference. The foot was then selected and the foot area was painted green. The toes were then set to reference the bone map from the Left Foot bone, as they are roughly in the same area. The Pelvis bone is restricted to the hip area using Claude Bonet also. Select the Move tool. Ensure that Use Soft IK is disabled in the Plugins > MOCCA menu (or disable it in the Character toolbar). While setting up a character it is a good idea to turn off Soft IK, otherwise the bones will move away from their rest positions as soon as Soft IK forces are applied to them.

MOCCA

74 TUTORIALS ADVANCED

In the Object manager, select the Pelvis bone and Select Children from the context menu. Also from the context menu, select New Tag > Soft IK tag. This creates Soft IK tags for all bones. Remember to click on the object name to open the context menu for that object. Delete the Soft IK tag from the ++ bone. All bones except the stabilizer bone have Soft IK tags assigned.

This bone doesn’t need a Soft IK tag. The ++ bone is a child of the Left Foot bone and will always rotate with it; it is effectively an extension of the Left Foot bone. Select the Soft IK tag on the Pelvis bone and in the Attributes manager, on the Tag page, enable the Anchor option. This makes the Pelvis bone the anchor of the entire bone hierarchy. The Pelvis bone can now be moved only manually, and all child bones will follow. In this way it will be possible to move the whole body by moving the Pelvis, while arms and legs are dragged along with it. Select all Soft IK tags apart from the one on the Pelvis and in the Attributes manager, on the Rest page, enable the Force Position option. This option prevents the bones from being pulled apart. In the Plugins > MOCCA menu, select Set Chain Rest Position and then Set Chain Rest Rotation (or select them from the Character toolbar). This defines the bones’ current position and rotation values as their Soft IK rest positions and rotations. (We can see those values on the Rest page of a Soft IK tag in the Attributes manager.) Doing this immediately after adding Soft IK tags is important to avoid problems later on. These two commands always affect all the Soft IK tags of a bone chain as long as at least one of the bones of this chain is selected. Select the Left Toes bone and select Plugins > MOCCA > Add Root Goal from the main menu (or select it from the Character toolbar). A goal object will be added for the Left Toes and placed inside the bone hierarchy.

MOCCA

TUTORIALS ADVANCED 75

Rename the Left Toes.Root Goal object to Left Foot Controller and drag it out of the hierarchy to a position above the HyperNURBS. This goal object is the main foot controller.

This goal object will be the main foot controller. With it we will be able to move and rotate the foot. So now the center of rotation is in the ball of the foot, not the ankle; this is important if we want to make the foot roll naturally when walking. Select the Left Foot bone and create another root goal. Drag it out of the bone hierarchy and make it a child of the Left Foot Controller. The goal object at the ankle is made a child of the foot controller.

This new goal object is placed at the ankle. We have made it a sub-object of the foot controller so that, if the foot controller is rotated, the heel of the foot is moved up and down automatically; or, if the body is dragged away, the heel gets lifted while the ball of the foot stays on the ground as long as possible. Select Left Toes and this time select Plugins > MOCCA > Add Tip Goal from the main menu (or select it from the Character toolbar). This command not only adds a goal object, it also adds an effector at the tip of the bone. This is necessary if we want to control the tip of the toe bone. Drag the Left Toes.Tip Goal object into the Left Foot Controller. Now the foot can be rotated with the Left Foot Controller, while toes and heel rotate with it. If the Pelvis bone is dragged away, the heel will lift first, yet ball and toes will stay on the ground as long as possible. There’s only one problem — using this set-up we can’t control the sideways banking of the foot. Save the scene (use Save as), switch on Soft IK and enable Automatic Redraw. If the Automatic Redraw controller is not in our layout, open it by selecting Plugins > MOCCA > Auto Redraw.

To test the set-up, first we should save the scene, using an appropriate filename, so that we can Revert to Saved after we have wrecked it! If we now turn on Soft IK, ensure that Automatic Redraw is enabled and move the Left Foot Controller or the Pelvis around, the left foot should behave in a sensible way; check it out in the different viewport views.

MOCCA

76 TUTORIALS ADVANCED

Select Revert to Saved to re-open the scene we just saved. Now we have finished testing, we want to bring back the scene for fur ther development. Select the Left Foot bone and select Plugins > MOCCA > Add UpVector from the main menu (or from the Character toolbar). Drag the Left Foot.Up object (the UpVector) into the Left Foot Controller object. The UpVector object is dragged into the foot controller as well.

UpVectors act as stabilizers and are needed whenever we want to control the rotation of a bone or when we want to keep a bone from rotating by itself, twisting and distorting the geometry. A bone which has an UpVector assigned will always point in the direction of the UpVector object with its Y axis (or optionally X axis, defined in the constraint attributes for the Soft IK tag). In the case of the foot it is necessary to add an UpVector, otherwise we wouldn’t be able to make the foot bank sideways. In the front viewport, zoom out until the Left Foot.Up object is visible. Now move the Left Foot.Up object closer to the foot by dragging the handle of the green Y axis. The UpVector shouldn’t be too far away from the foot.

We move the UpVector closer to the foot because otherwise it might become confusing later on if we can’t see which UpVector belongs to which bone. We now have all the control over the foot that we need. It’s only the knee that still can’t decide which way to go when the foot is moved around. This problem needs to be solved before we can call the leg setup finished.

MOCCA

TUTORIALS ADVANCED 77

In the Object manager, select the Left Shin bone and add a root goal. Leave the root goal where it is in the hierarchy and rename it to Left Knee.Goal. We leave the knee goal object as a child of the Pelvis bone. This way it will always remain in its position, no matter where we move the character. Select the Soft IK tag for the Left Shin, and in the Attributes manager on the Constraint page, set the goal Strength to 22%. The knee goal keeps the knee from bending into the wrong direction. Switch to the side viewport and move the Left Knee goal away from the knee so that it is positioned in front of it. The knee goal keeps the knee from bending in the wrong direction.

The knee will now always point towards its goal object but it will hardly ever reach it because of the low Strength value. In the Object manager, multi-select the Soft IK tags for Left Foot, Left Toes and Left Toes.Tip Effector. In the Attributes manager, on the Constraint page, set their Goal Strength values to 100%. The strength values for the three foot goals are set to 100%.

The three foot goals have maximum strength to make sure the foot stays firmly on the ground as much as possible. (The knee goal object is set to a much lower strength, which means the foot goals have priority.) Select the Soft IK tag for the Left Foot bone and in the Attributes manager set the UpVector strength to 100%. Select the Left Thigh bone and select Plugins > MOCCA > Bone Mirror from the main menu.

MOCCA

78 TUTORIALS ADVANCED

In the Bone Mirror dialog, set Origin to Parent. Remove the text from the Prefix input box. Type ‘Left’ into the Replace input box and ‘Right’ into the With input box. This ensures that the word ‘Left’ is replaced by the word ‘Right’ in all object names when mirroring. Enable the Auto Find Center option. Click the Mirror button and close the dialog. All the bones are now mirrored to the other side, including Soft IK tags, goals, UpVectors and even the Claude Bonet maps.

Summary We have seen how stabilizer bones and upvectors can be used to prevent objects from deforming when they are animated, and also how goal objects and effectors are used to control object animation. The leg set-up is now finished. (Load the file named ‘MimeLegComplete.c4d’ from the Mime folder for comparison.) We can play around with the legs by moving and rotating the Left Foot Controller and Right Foot Controller to get a feeling for how the goals influence the bones.

MOCCA

TUTORIALS ADVANCED 79

Advanced 2 Setting Up the Spine With the legs and feet now in good working order, we can begin work on our character’s backbone, ensuring that it bends the way we want and that limbs stay attached.

In the previous tutorial we finished setting up Soft IK for the legs, the next step is to set up the spine. Getting the strength of the spine correct, and tension along it, is important. If it is too strong then the other limbs will have to work extra hard to stay in place, which may cause them to over stretch or not reach their goals at all. On the other hand, a spine which is too weak will possibly bend in the wrong direction or crumple up, thus ruining the character. Load the file named ‘MimeSpine.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue the character set-up.

This scene contains the legs (which are already set up) along with four additional bones — a Spine bone in the middle of the main body, a Torso bone in the chest area, a bone for the Neck and another one for the Skull. Using the Claude Bonet tool, we can see how the bones are restricted. In this tutorial, we will be adding controls to the Spine and Torso bones, the Neck and Skull bones will remain untouched for now.

MOCCA

80 TUTORIALS ADVANCED

In the Object manager, multi-select the Spine and Torso bones and select New Tag > Soft IK tag from the context menu. Soft IK tags are assigned to the Spine and Torso bones.

First, we need to add Soft IK tags to the bones to which we want to add controllers. In the Plugins > MOCCA menu, select Set Chain Rest Position and then Set Chain rest Rotation. Select the Torso bone and create a root goal. This goal object will be the main torso controller. Name the goal object Torso Controller and drag it out of the hierarchy to a position above the HyperNURBS. Select the Soft IK tag for the Torso bone and in the Attributes manager set the Goal Strength to 100%. We will be able to move and rotate the mime’s torso by moving and rotating this Torso Controller object once the set-up is finished. To achieve that, we must create a number of additional controls. At the moment, this goal object controls only the position of the Torso bone, not its rotation. Select the Torso bone again and add a tip goal. Drag the Torso.Tip Goal object into the Torso Controller object. Select the Soft IK tag for the Torso.Tip Effector object and set the Goal Strength value to 100%. We now have a goal object at the tip of the Torso bone (an effector has been automatically added at the tip of the bone) which enables us to control the left/right and forwards/ backwards tilting of the Torso bone. However, we still can’t control the global heading rotation of the torso. Select the Torso bone and create an UpVector. Drag the Torso.Up object into the Torso Controller as well.

MOCCA

TUTORIALS ADVANCED 81

In the side viewport, move the Torso.Up object closer to the body. The UpVector for the Torso is placed in front of the body and controls the heading rotation of the Torso.

In the Object manager, select the Soft IK tag for the Torso bone. In the Attributes manager, set the UpVector Strength value to 100%. Using the Torso Controller, we are now able to fully control the position and rotation of the mime’s upper body. The goal objects at the root and tip of the bone control the sideways and forwards/backwards rotation, and the UpVector controls the global heading rotation. That’s all the control that we need for the Torso bone.

MOCCA

82 TUTORIALS ADVANCED

Select the Soft IK tag for the Spine bone. Drag the Torso.Up object from the Object manager (it’s in the Torso Controller) and drop it into the UpVector input box in the Attributes manager. By dragging the Torso.Up object into the Up Vector box for the Spine bone, we ensure that the mime’s belly will rotate along with the torso.

In the Attributes manager, set the UpVector Strength value to 30%. The Spine bone is now using the same UpVector object as the Torso bone, but with less strength. This means if we rotate the torso with the Torso controller, the Spine bone (the mime’s belly) will rotate as well, but only slightly compared to the Torso.

MOCCA

TUTORIALS ADVANCED 83

In the Object manager, make the Torso Controller object a child of the Pelvis. The Torso Controller is a child of the Pelvis bone.

We make the Torso Controller a child of the Pelvis bone so that we have to move only the Pelvis — the torso will automatically move with it and we don’t have to manually drag it along with the character when animating the mime. It can still be rotated and moved freely, of course.

Summary Using similar techniques to those we learned when setting up the legs, in this tutorial we have seen how to fine tune goals, and upvectors to make an altogether more rigid backbone structure. This completes the second part of this character set- up. Load the file named ‘MimeSpineFinal.c4d’ from the Mime folder for comparison. We could now make the mime walk and bend down or twist around. The next step will be setting up the controls for the head.

84 TUTORIALS ADVANCED

MOCCA

Advanced 3 Setting Up the Head Legs and torso are now working together well. Time to put a head on our character and make sure its movement remains independent of the torso.

In this tutorial we will set up the controls for the mime’s head. Once again we will be using goals, effectors and upvectors to describe animation characteristics, and we will also be using the XPresso node editor to create a small expression that will help us to keep the head facing forwards when the torso is moving. Load the file named ‘MimeHead.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue the character set-up.

This scene is identical to the one we ended up with at the end of the previous tutorial after setting up the mime’s spine bones. Here, we will concentrate on the bones called Neck and Skull. In the Object manager, multi-select the Neck and Skull bones and select New Tag > Soft IK tag from the context menu. Soft IK tags are assigned to Neck and Skull.

In the Plugins > MOCCA menu, select Set Chain Rest Position and then Set Chain rest Rotation.

MOCCA

TUTORIALS ADVANCED 85

Select the Skull bone and create a root goal object. This goal object will be the main controller for the mime’s head. Name this goal object Skull Controller and drag it out of the hierarchy to a position above the HyperNURBS. Select the Soft IK tag for the Skull bone and in the Attributes manager set the Goal Strength value to 100%. Similarly to the Torso Controller and the Leg Controllers, we will be able to use the Skull Controller to move and rotate the head once we have set up a few more controls. At the moment, only the head’s position can be controlled. Select the Skull bone again and add a tip goal. Drag the Skull.Tip Goal object into the Skull Controller object. This goal object at the tip of the Skull bone is connected to the effector that was automatically added at the tip of the bone. It enables us to control the left/right and forwards/backwards tilting of the head. However, we still need an additional control for the global heading rotation of the head. Select the Skull bone and create an UpVector. Drag the Skull.Up object into the Skull Controller. In the side viewport, move the UpVector object closer to the head. The UpVector for the Skull is placed behind the head and controls the global heading rotation of the head.

In the Object manager, select the Soft IK tag for the Skull bone. In the Attributes manager, set the UpVector Strength to 100%. We are now able to fully control the position and rotation of the mime’s head with the Skull Controller. The goal objects at the root and tip of the Skull bone control the sideways and forwards/backwards tilting and the UpVector controls the global heading rotation.

MOCCA

86 TUTORIALS ADVANCED

Now we need to make sure that the head always remains where it belongs. We want it to automatically move with the body. We could simply make it a child object of the Torso Controller, then it would always move with it, but the downside here would be the rotation — the head would always rotate the same way as the torso. So if the mime bends down, the head rotates downwards as well (nose pointing to the floor). We want the head to move with the torso, not rotate with it as well. We want the nose pointing straight ahead even if the mime bends down. Imagine yourself walking. When we walk, our upper body slightly rotates (left shoulder moves forward, right shoulder moves back etc.) but our head always remains pointing at something specific in the distance. So we need to create a connection between torso and head which affects only the head position, not the rotation. This can be achieved using a simple XPresso expression. Create a null object and name it Skull Placement. With the Skull Placement object selected in the Object manager, select Functions > Transfer from the main menu. In the Transfer dialog, ensure only the Position option is ticked, type ‘Skull’ into the Search For box and click OK. This null object is placed exactly at the root of the Skull bone, courtesy of the Transfer function. Make this Skull Placement object a child of the Torso Controller. The Skull Placement object is made a child of the Torso Controller.

The Skull Placement object can be described as a marker which will be used in the expression to get the necessary position information for the head. It is now a child of the Torso Controller and will always move with it. In the Object manager, make a copy of the Skull Placement object and name it Skull Position Controller. Drag Skull Position Controller out of the hierarchy to a position above the HyperNURBS.

MOCCA

TUTORIALS ADVANCED 87

Make the Skull Controller a child of the Skull Position Controller. The Skull Controller is made a child of the Skull Position Controller.

We now have a Skull Position Controller with the Skull Controller as a child object. The reason we have copied the Skull Placement object instead of creating a new null object is so that we can ensure that both the Skull Placement and the Skull Position Controller are at exactly the same positions. Copying an existing object is quicker than making a new one and having to reposition it. In the Object manager, select the Skull Position Controller and select New Expression > XPresso Expression from the context menu. Drag the Skull Position Controller and the Skull Placement objects from the Object manager into the XPresso Editor. Nodes for the Skull Position Controller and the Skull Placement objects are created.

By dragging the objects into the XPresso Editor, two object nodes are automatically created. In the XPresso Editor, click on the red rectangle in the top right-hand corner of the Skull Placement node and select Coordinates > Global Position > Global Position from the menu. This creates an output port for global position in the Skull Placement node. Click on the blue rectangle in the top left-hand corner of the Skull Position Controller node and select Coordinates > Global Position > Global Position from the menu. This creates an input port for global position in the Skull Position Controller node Drag a connection from the global position output port of the Skull Placement node to the global position input port of the Skull Position Controller node. The global position of the Skull Placement object is connected to the global position of the Skull Position Controller object.

We have now connected the global position of the Skull Placement object to the global position of the Skull Position Controller. This means the Skull Position Controller will always stick to the position of the Skull Placement object.

MOCCA

88 TUTORIALS ADVANCED

Since we have earlier made the Skull Placement object a child of the Torso Controller, the position is effectively controlled by the Torso Controller. Using the Skull Controller within the Skull Position Controller we can still move the head independently, and, most important of all, the head rotation is independent of the torso rotation. If we now enable Soft IK in the Plugins > MOCCA menu (or in the Character toolbar) and enable Automatic Redraw, we can rotate the Torso Controller to make the mime bend down and the head will remain with the nose pointing straight ahead. The head rotation is controlled separately with the Skull Controller.

Summary We have used goals, effectors and upvectors to describe yet another set of animation characteristics. To gain even more control over the movement of the head, we have used the XPresso node editor to create a small expression. Legs, spine and head are now fully set up. It is time to turn our attention to the arms.

MOCCA

TUTORIALS ADVANCED 89

Advanced 4 Setting Up the Arm A character will use its arms to create gestures and to interact with its environment.

In this tutorial we will be setting up the mime’s left arm. The fingers are not included in this set-up, they will be described in the following tutorial. Setting up the arm involves mainly creating controllers for the hand, similar to those we have already set up for the other body parts. Additionally, some controls are needed for the elbow and shoulder. Once the left arm is finished, we will mirror the set-up to the right arm. Load the file named ‘MimeArm.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue the character set-up.

This scene includes all previously set up body parts, plus new arm bones, which need a bit of explanation before we can start.

90 TUTORIALS ADVANCED

MOCCA

These are the arm bones.

The arm bones start off with a bone called 00 at the shoulder, an extra bone in the chain which we won’t assign a Soft IK tag to because we don’t want the Soft IK of the arms to influence the motion of the spine in this rig. Since we don’t want this bone to have any influence on the deformation, it has been turned into a null bone by enabling the Null option on the Object page in the Attributes manager. This option also makes the bone display only as a small green circle, so it won’t get in the way. It has to be a bone object though, else the deformation of the mime would stop at the shoulder. Below the null bone are the bones named Left Shoulder, Left Upper Arm, Left Lower Arm and Left Hand Root. The Left Hand Root bone will be the last bone controlled by Soft IK. All child bones of the Left Hand Root bone will be controlled by a so-called PoseMixer object; this is something we’ll learn about in the following tutorial, all we want to concentrate on in this tutorial are the bones from 00 down to Left Hand Root. In the Object manager, select the bones named Left Shoulder, Left Upper Arm, Left Lower Arm and Left Hand Root, then select New Tag > Soft IK tag from the context menu. Soft IK tags are assigned to the arm bones.

The 00 null bone at the shoulder doesn’t get a Soft IK tag. If we assigned one, pulling the mime’s arm would result in the whole upper body being dragged with it. Not assigning a Soft IK tag to this bone makes the arm IK chain independent of the rest of the body. From the Plugins > MOCC A menu, select Set Chain Rest Position and Set Chain Rest Rotation. This defines the bones’ current positions and rotation values as their Soft IK rest positions and rotations. Doing this immediately after having added Soft IK tags is very important to avoid problems later on. These two commands always affect all the Soft IK tags of a bone chain as long as at least one of the bones of this chain is selected. We can see rest position and rotation values for a Soft IK tag in the Attributes manager on the Rest page.

MOCCA

TUTORIALS ADVANCED 91

In the Object manager, select the Left Hand Root bone and create a root goal. This goal object will be the main controller for the left hand. We will be able to move and rotate the hand by moving and rotating the Left Hand Controller once we have added several more controls. Name the new goal object Left Hand Controller and drag it out of the hierarchy to a position above the HyperNURBS. Select the Soft IK tag for the Left Hand Root bone and in the Attributes manager, on the Constraint page, set the Goal Strength value to 100%. In the Object manager, select the Left Hand Root bone and add a tip goal. Drag the Left Hand Root.Tip Goal object into the Left Hand Controller object. Select the Soft IK tag for the Left Hand Root.Tip Effector object and in the Attributes manager set the Goal Strength value to 100%. We now have a goal object at the tip of the Left Hand Root bone which enables us to control the rotation of the hand on two of the three axes. (Note that an effector has been automatically added at the tip of the bone.) In the Object manager, select the Left Hand Root bone once again and create an UpVector. Drag the Left Hand Root.Up object into the Left Hand Controller. In the viewport, move the UpVector object closer to the hand. The UpVector for the hand is placed above the hand.

In the Object manager, select the Soft IK tag for the Left Hand Root bone and in the Attributes manager set the UpVector Strength to 100%. We are now able to fully control the position and rotation of the mime’s hand with the Left Hand Controller. The goal objects at the root and tip of the bone control the hand rotation on the H and P axes, and the UpVector controls the hand rotation on the B axis.

MOCCA

92 TUTORIALS ADVANCED

If we now test the set-up by switching on Soft IK (Plugins > MOCCA menu), enabling Automatic Redraw and moving the Left Hand Controller around, we will notice that it is difficult to control where the elbow moves, and sometimes the arm gets bent in a way that would, in real life, break it. Also, the shoulder is very loose. We need to add some additional controls to the arm. Note that we can save a bit of time when testing by saving the scene before testing and reverting to the saved version (File > Revert to Saved) after testing. In the Object manager, select the Left Lower Arm bone and add a root goal object. This goal object will help to keep the arm from bending in the wrong direction (similar to the knee goal object). Name it Left Elbow and make it a child of the 00 bone. The Left Elbow goal object is a child of the shoulder null bone.

We make it a child of the shoulder null bone so that it always remains in this position and doesn’t need to be dragged along with the mime manually if he decides to go for a walk. Select the Soft IK tag for the Left Lower Arm bone and in the Attributes manager set the Goal Strength to 45%. We set the Goal Strength to only 45% to make sure that the hand goal objects have priority over the elbow goal, otherwise the hand bones wouldn’t be able to reach their goal objects. In the side viewport, move the Left Elbow goal away from the arm, as illustrated in the picture below. The elbow goal object is placed behind the arm to force the arm to always bend correctly.

By moving the goal object away from the arm and behind the mime, it will always pull the elbow back and force the arm to bend correctly.

MOCCA

TUTORIALS ADVANCED 93

In the Object manager, select the Left Upper Arm bone and add a root goal object. This goal object is needed to help keep the shoulder in place. It forces the tip of the shoulder bone (i.e. the root of the upper arm bone) to remain fixed unless other forces are strong enough to pull it away. Name it Left Shoulder and make it a child of the Torso bone. The Left Shoulder goal object is a child of the Torso bone.

Since we want the shoulder bone to always stick to the upper body, we make the shoulder goal object a child of the Torso bone. Select the Soft IK tag for the Left Upper Arm bone and in the Attributes manager set the Goal Strength to 100%. In the Object manager, select the Soft IK tag for the Left Shoulder bone and in the Attributes manager, on the Rest page, set the Rest rotation (Rot) Strength to 100%. The rest rotation strength value controls how easy or difficult it is to rotate a bone.

The shoulder bone is now held in place with a goal object of 100% strength and a rest rotation strength of 100%. The rest rotation strength value controls how easy or difficult it is to rotate a bone. Setting the strength to 100% makes it fairly hard to rotate the shoulder bone.

MOCCA

94 TUTORIALS ADVANCED

In the Object manager, select the 00 bone and select the Bone Mirror tool from the Plugins > MOCCA menu. In the Bone Mirror dialog, set Origin to Parent. Remove the text from the Prefix input box. Type ‘Left’ into the Replace input box and ‘Right’ into the With input box. This ensures that the word ‘Left’ is replaced by the word ‘Right’ in all object names when mirroring. Enable the Auto Find Center option. Click the Mirror button and close the dialog. The Bone Mirror tool mirrors the arm to the other side.

This mirrors the arm to the other side, including all goal objects, UpVectors, effectors and also the restrictions that have been painted with the Claude Bonet tool.

Summary Once again, goals, effectors and upvectors have been combined with restrictions to describe how a connected set of bones should animate. With the arms finished, the only major rigging left to do is for finger movement.

MOCCA

TUTORIALS ADVANCED 95

Advanced 5 Setting Up the Hand The Mime hands need to be set up in a very different way from the rest of the character. We will see how to do this using several new tools.

In the previous tutorial we set up controls for the arm that let us move and rotate the hand. In this tutorial we are going to set up the fingers. Animating fingers with Soft IK would be almost impossible, the amount of setting up required wouldn’t justify the result. Fingers are better animated with forward kinematics. Now, instead of repeatedly animating the fingers manually each time we want the mime to stretch out its fingers or form a fist, we are going to use a PoseMixer object. PoseMixer is a tool that enables us to define a set of ready-made hand poses, between which we can easily morph. Load the file named ‘MimeHand.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to begin the hand set-up.

This scene includes the mime with all the controls that we have set up until this point (i.e. in the Advanced 1-4 tutorials).

96 TUTORIALS ADVANCED

MOCCA

In the Object manager, unfold the Left Hand Controller object by clicking on its plus sign. The Left Hand Controller contains all hand poses for the left hand.

Hand poses for the mime have already been set up for both the left and the right hand. They can be stored anywhere in the scene, but storing them in the hand controllers seems the most obvious place and will help us to remember where we put them. They do need to be outside of the original bone hierarchy, otherwise they would interfere with the rest of the bone hierarchy. These poses were created by selecting the Left Hand Morph Root bone (or the Right Hand Morph Root bone for the right hand) and then copying them by Ctrl-dragging the bones out of the hierarchy. The first copy was named Default. The Default pose always needs to be an exact copy of the original bones and is needed as a reference for PoseMixer. Three more copies were created, made to form certain poses and named Spread, Fist and Bend; these are just three example poses, we can create any number of poses we like. Note that the bones for the fingers are restricted to each finger to ensure that the bones for one finger don’t deform the other fingers as well. This time vertex maps have been used instead of Claude Bonet. Different types of restrictions can be combined without problems, it is not necessary to use the Claude Bonet tool exclusively. Sometimes it is easier to select points of an area with the freehand selection tool and then Selection > Set Vertex Weight. In the Object manager, scroll down until the bones for the left arm are visible. Unfold the bone named Left Hand Morph Root. PoseMixer will control all the hand bones, starting with the Left Hand Morph Root bone.

The bone named Left Hand Morph Root is a null bone that doesn’t have any influence on the deformation of the geometry. This bone is placed in exactly the same position as its parent bone, the Left Hand Root bone.

MOCCA

TUTORIALS ADVANCED 97

The Left Hand Morph Root bone is needed if we want to be able to still rotate the hand at the wrist with Soft IK when using PoseMixer. If there was no Left Hand Morph Root bone placed between the wrist and the fingers, PoseMixer would take over the Left Hand Root bone at the wrist and control its rotation, making it impossible to control the rotation with Soft IK goal objects. Note that if we have created our own Soft IK set-up and decide afterwards that we would like to use PoseMixer for the hands, we can add this extra bone to the existing bone hierarchy by selecting the bone at the wrist with the Bone tool and enabling the Add Null Bone option in the Active Tool window. This creates a new bone in the same position. In the Object manager, click the upper visibility dot next to Left Hand Morph Root in the original bone hierarchy (the one which controls visibility in the viewport) to change it from red to gray. Small extra bones at the fingertips help to keep the fingertips in shape when being deformed.

The bones are now visible in the viewport and we can see a few strange looking bones at the fingertips. These are not necessary for most characters, but our mime has very thick fingers and these extra bones help keep them in shape when the fingers deform. They are similar to the extra bones at the heels and are only for stability. Not including the extra stability bones named ++, every finger has four bones, one in the palm and another for each of the three finger segments. Only the thumb is different, it has a null bone at the root so that the odd angle of the thumb can be animated easily, plus another for each of the thumb segments. Note that the stability bones (++) are not included in the poses; this is OK, but only if they are at the end of a bone chain (e.g. fingertips). In the Object manager, click the same visibility dot again two times to change it back to red. The bones are now invisible in the viewport and we can see the hand geometry much more clearly.

98 TUTORIALS ADVANCED

MOCCA

Create a PoseMixer object by selecting it from the Plugins > MOCCA menu, then make it a child of the Left Hand Morph Root bone. The PoseMixer object needs to be a child of the Left Hand Morph Root bone.

The PoseMixer object doesn’t work too differently from the standard deformation objects (bone, bend, twist, etc.). It deforms whatever object it is dragged into, including all subobjects. So in this case, it controls the rotation of the Left Hand Morph Root and all the finger bones. With the PoseMixer object selected, lock the Attributes manager by clicking on the little lock icon in the top right corner. This icon locks the display of the PoseMixer parameters in the Attributes manager.

Until the lock is opened, the Attributes manager will now always display the parameters for the PoseMixer object. We are doing this to ensure we don’t lose the parameter display if we accidentally click on another object. In the Object manager, drag the pose named Default from the Left Hand Controller and drop it into the input box for Default Pose in the Attributes manager. Poses are added by dragging and dropping them into the input boxes of the PoseMixer object.

We have now defined the default pose that will be used by PoseMixer as a reference when mixing all the other poses.

MOCCA

TUTORIALS ADVANCED 99

In the Object manager, drag the pose named Spread and drop it into the input box next to the slider currently labelled Empty in the Attributes manager. As soon as we release the mouse button and the pose drops into place, the slider is automatically named Spread. In the Attributes manager, click the Add Pose button twice to add two more sliders. Two more empty sliders are added. Note that to remove unused sliders we can right-click (command-click on Mac) on the name of the slider and select Remove Entry from the context menu. In the Object manager, drag the Fist pose and drop it into the second slider input box, then drag the Bend pose and drop it into the third slider input box. The hand can be animated with these three sliders.

The set-up for the left hand is now complete and it can be deformed by moving the sliders and mixing the different poses. Repeat the same procedure for the right hand, starting with the creation of another PoseMixer object. Make the PoseMixer object a child of the Right Hand Morph Root bone and assign the poses from the Right Hand Controller to the PoseMixer object in the same way as described for the left hand. Don’t forget to unlock the Attributes manager first, otherwise we won’t be able to see the parameters for the new PoseMixer object.

Summary Quick and easy posing is very important for the whole process of animating a character. Try moving the sliders within the PoseMixer objects to see how it all works. We have seen how the PoseMixer deformation object makes posing child’s play. If we need more poses for the hands we can simply create more duplicates of the Right Hand Morph Root and Left Hand Morph Root bones, adjust the bones, add new sliders and drop the new poses into the slider input boxes. Besides hand poses, another common use for PoseMixer is facial animation to control eye blinking and lip movements. The set-up procedure is similar — instead of duplicating bones, the actual geometry is duplicated and used as morph targets. Note that PoseMixer isn’t limited to being used just with bones. Normal geometry can be deformed with PoseMixer, and even animated objects can be used as poses.

100 TUTORIALS ADVANCED

MOCCA

Advanced 6 Cleaning up the Hierarchy The basic set-up for the mime is complete. Arms, legs, hands and feet could all be animated at this point. However, to make life even easier for ourselves there are a few little things still left to do.

With the basic character animation set-up now completed, we can turn our minds to those little jobs that make the difference. Among other things, these include making expressions for the feet to keep them from sinking through the ground, making the controller objects easier to select in the viewport and certain value adjustments. We’ll begin our finishing touches with a hierarchy cleanup. Load the file named ‘AddHierarchy.c4d’ from the Mime folder in the MOCCA tutorials folder. This scene includes the set-up from all previous tutorials.

This scene includes the result of the previous tutorials so far, with all Soft IK controllers and hand poses set up.

MOCCA

TUTORIALS ADVANCED 101

The controller objects are not included in the mime hierarchy.

As we can see in the picture above, the controller objects for hands, feet and skull are all placed outside of the mime hierarchy and if we wanted to copy and paste the mime into a different scene in which we have already prepared an environment for an animation, we couldn’t easily do that. Even if the mime needed to be moved to a different position in this scene, as the hierarchy stands we would have to move all the controller objects manually along with the mime. Drag all the controller objects into the Boned Cage object. Now the controller objects are included in the mime hierarchy.

Summary To ensure that our rigged character is portable, we have moved all the controller objects into an existing null object deeper in the hierarchy. We could have simply grouped everything in a new null object, but then we would end up with another, unnecessary, hierarchy level which would add to the complexity of the character. Much better to integrate the controllers into the existing hierarchy. Moving the controllers doesn’t change the Soft IK set-up, and now we are able to move the mime around in the scene or copy it and all its controllers to a different scene.

102 TUTORIALS ADVANCED

MOCCA

Advanced 7 Easy Controller Selection To animate the mime, it is important that we are able to quickly and easily select its controllers.

The controllers are not as easily accessible now because they are hidden inside the mime hierarchy. In the following few steps we are going to make it easier to select the controllers by clicking on them in the viewport. When creating goal objects or upvectors these objects, which are nothing more than null objects, are set to display either as small hexagons (goal) or triangles (upvector). Null objects can be displayed in many shapes and sizes and we are going to use this feature to make the controllers appear as large, three-dimensional boxes. Load the scene named ‘AddConselect.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

In the Object manager, select the Left Hand Controller and Right Hand Controller objects.

MOCCA

TUTORIALS ADVANCED 103

In the Attributes manager, on the Object page, set Display to Cube. Additionally, set Radius to 30 and Orientation to XY. These options control how Null objects are displayed in the virewport.

The two hand controllers are now displayed as wireframe boxes at the wrists of the mime. If we now want to select one of them, we need only click within the box area. In the Object manager, select the Left Foot Controller and Right Foot Controller objects In the Attributes manager, on the Object page, set Display to Cube, Radius to 40 and Orientation to XY. The feet controllers are now also displayed as boxes; we can even see how they are rotated. In the Object manager, unfold the Skull Position Controller and select the Skull Controller. In the Attributes manager, on the Object page, set Display to Cube, Radius to 50 and Orientation to XY. Remember that the Skull Position Controller is used only to pin the head to the body, the actual animation controller for the head is a child of the Skull Position Controller. In the Object manager, select the Torso Controller (a child of the Pelvis bone). In the Attributes manager, on the Object page, set Display to Cube, Radius to 65 and Orientation to XY.

Summary All the main controllers are now displayed in the viewport as boxes. Not only can we now select them more easily, we can also see their orientations; this wasn’t possible before. Note that selecting works best when clicking into an area of a box where there’s no other geometry in the way. However, to completely disable the selection of anything else apart from null objects, we can use the Selection Filter options in the Selection menu and disable everything except the Null option.

104 TUTORIALS ADVANCED

MOCCA

Advanced 8 Final Value Tweaking If we animate the mime, at the moment we will notice that the animation appears a little rubbery and the feet tend to slide. Some adjustments are required to remedy these aberrations.

If we animate right now we will soon notice that some bones are being pulled apart too much, causing the mime to appear as if he is made of rubber in some areas. The effect can be noticed when the Torso Controller or the Skull Controller is moved. We therefore need to enable the Force Position option, mainly for the spine and head bones. For the arms, however, we shouldn’t use Force Position because, if we did, it would often be difficult for the hand bones to reach their goal objects. The same is true for the legs. In the leg set-up tutorial we set all the leg bones to Force Position, but we need to loosen the leg bone chains a little to ensure that the feet bones reach their goal objects and to avoid sliding feet. Load the file named ‘AddTweaking.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

In the Object manager, multi-select the Soft IK tags for the objects named Spine, Torso, Torso.Tip Effector, Neck, Skull and Skull.Tip Effector.

MOCCA

TUTORIALS ADVANCED 105

In the Attributes manager, on the Rest page, enable the Force Position option. The Force Position option makes sure the bones can’t get pulled apart when the mime is animated.

In the Object manager, multi-select the Soft IK tags for the Left Shin and Right Shin bones. In the Attributes manager, on the Rest page, disable the Force Position option. This makes both legs a bit more flexible and helps the feet to stay on the ground as much as possible without the legs looking too much like rubber.

Summary We have seen that we can use the Force Position option on bones to quickly make the skeleton more rigid in some areas and more flexible in others. Note that it may still be necessary to adjust certain bones. For example, we may want to pull the mime’s neck longer to create a funny pose. Just activate or deactivate the Force Position option whenever necessary; it can even be animated by using the Set Keyframe option from the context menu in the Attributes manager. The same is true for the Rest Rotation Strength value, which controls how much a bone tries to remain in its rest rotation. If we want to give the mime stiff arms, increase the Rest Rotation Strength value.

MOCCA

106 TUTORIALS ADVANCED

Advanced 9 Feet Expressions Having stopped the feet from sliding, now we need to ensure that they don’t sink into the floor.

When animating the mime, we want to prevent the feet from sinking into the floor. We could do this manually by carefully placing the feet controllers exactly above the floor, but if we wanted to make the mime walk for a distance this would soon become tiring. Instead we will create expressions for the feet which always keep them above the ground. We will be using a small plane for each foot which gives us visual reference and which also makes it possible to change the height at which the feet get stopped by simply moving the plane up and down. Load the file named ‘AddFeet.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

Create a Polygon object (Objects > Primitive > Polygon) and name it Left Foot Floor. This will be the plane for the left foot.

MOCCA

TUTORIALS ADVANCED 107

Position the Left Foot Floor object below the mime’s left foot and scale it so that its width is about 175 and its height 200. The first plane is positioned below the left foot and scaled appropriately.

Command-click on a Mac if you have only one mouse button.

In the Object manager, right-click on the Left Foot Controller object and select New Expression > XPresso Expression from the context menu. The XPresso Editor window will automatically open when we add an expression. In the Object manager, drag both the Left Foot Controller and the Left Foot Floor objects and drop them into the XPresso Editor.

Object nodes for the foot controller and the floor plane are created.

Object nodes for the two objects are created. We want to set up an expression which enables us to move the foot controller around freely but always keeps it above the floor plane. This means we have to define the Y position of the Left Foot Floor plane as the minimum Y position of the Left Foot Controller. Command-click on a Mac if you have only one mouse button.

In the XPresso Editor, create a Clamp node by right-clicking and selecting New Node > XPresso > Calculate > Clamp from the context menu. The Clamp node is the core part of our expression. We will use it to cut off (or clamp) any Y values below the Y position of the Left Foot Floor plane. Click on the red corner of the Left Foot Floor node and select Coordinates > Global Position > Global Position.Y from the menu. Repeat this for the Left Foot Controller node. Draw a connection between the Left Foot Floor node and the Clamp node’s Min input port. Draw another connection between the Left Foot Controller node and the Clamp node’s Max input port.

108 TUTORIALS ADVANCED

MOCCA

Draw another connection between the Left Foot Controller node and the Clamp node’s Value input port. The nodes are connected.

The Clamp node has an input port for a minimum value (the Y position of the floor plane), another one for a maximum value and another one for the original value (the Y position of the foot controller) which is either set to the Max value if it is bigger, to the Min value if it is smaller or left as it is if it is between Min and Max. Since we don’t want to define a maximum value for the Y position of the foot controller (maybe our mime one day decides to climb Mount Everest, you never know) we connect the Y position of the foot controller to the Max input port as well as to the Value input port of the clamp node. In the Object manager, drag the Left Foot Controller and drop it into the XPresso Editor to create a second object node for it. For this new node, create an input port for Global Position.Y and connect it to the Clamp node’s Output port. This is the expression for the left foot.

The clamp node decides whether the Y position of the Left Foot Controller needs to be cut off or not and the result needs to be fed back into the Left Foot Controller. So whenever we now try to move the Left Foot Controller below the floor plane, the expression won’t let us do that. In the Object manager, duplicate Left Foot Floor, name it Right Foot Floor and, in the viewport, position it below the mime’s right foot. The second plane is created by duplicating the first one.

MOCCA

TUTORIALS ADVANCED 109

In the Object manager, copy the expression tag from the Left Foot Controller by Ctrl-dragging it onto the Right Foot Controller. Double-click the copied expression to load it into the XPresso Editor. Instead of recreating an expression for the right foot, we simply copy the expression for the left foot. In the Object manager, drag the Right Foot Floor object and drop it onto the Left Foot Floor node in the XPresso Editor. Do the same with the Right Foot Controller object to redefine the two Left Foot Controller nodes. The nodes are now no longer referring to the left foot but to the right foot instead. In the Object manager, drag the two floor planes into the HyperNURBS to a position below the Boned Cage object. The two floor planes are integrated into the mime hierarchy and made child objects of the HyperNURBS.

Note that it is important to put the two planes at the bottom and the Boned Cage object at the top; this is because only the first object in a HyperNURBS gets smoothed.

Summary We have seen how a very simple expression can save us hours or even days of manual labour. Here, for example, we have automated the feet so that the mime can walk on the floor rather than through it.

110 TUTORIALS ADVANCED

MOCCA

Advanced 10 Using Selection Objects Earlier we made our controllers visible in the viewport so that we could select them easily. To further improve our workflow we can group objects in selection objects so that only the members of the active selection object can be selected.

Our mime character can now be animated, but the controllers are all placed deep in the hierarchy and we would have to unfold the hierarchy whenever we want to select certain controllers. To help us we can use a selection object to combine all the animation controllers into a list. Selection in the viewport can then be restricted to those objects which are listed in the selection object. A selection object is also important for use with automatic keyframing, it ensures that keyframes are recorded only for the objects in the list — we don’t want the bones inside the mime’s hierarchy to accidentally receive keyframes as this might cause problems with the Soft IK structure. Load the file named ‘AnimSelectobj.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

Select Scene > Selection from the Objects menu and name the selection object Main Controls. This selection object is for the controls which will be used the most when animating.

MOCCA

TUTORIALS ADVANCED 111

Drag the Main Controls selection object inside the HyperNURBS and drop it above the Left Foot Floor object. The first selection object will include the main animation controls.

Drag the Left Foot Floor, Right Foot Floor, Pelvis, Left Foot Controller, Right Foot Controller, Torso Controller, Skull Controller, Left Hand Controller and Right Hand Controller objects from the Object manager and drop them into the Selection Object list in the Attributes manager. This list includes all the main controls.

Note that the Skull Position Controller should not be in the Selection Object list. Create another selection object and name it Extra Controls. The controls in this selection object will be used less often. When animating, it makes sense to start with the Main Controls and then fine tune the animation using the Extra Controls. Let’s take the arm as an example. First the hand is animated using the hand controller. Sometimes this might be all we need to do, but other times we may need to adjust the elbow movement with the elbow goal object. So the Main Controls are for defining animation poses and the Extra Controls are for fine tuning, if necessary. Drag the Extra Controls selection object inside the HyperNURBS and drop it below the Main Controls selection object.

MOCCA

112 TUTORIALS ADVANCED

Drag the Left Knee.Goal, Right Knee.Goal, Left Toes.Tip Goal, Right Toes.Tip Goal, Left Elbow, Right Elbow, Left Shoulder and Right Shoulder objects from the Object manager and drop them into the Extra Controls Selection Object list in the Attributes manager. These are the extra controls.

To set a selection object for automatic keyframing, in the animation toolbar click on the Keyframe Selection button and select one of the selection objects from the menu. A click on the Keyframe Selection button opens a menu which lists all selection objects in the scene.

To restrict the viewport selection to the objects in the active selection object, in the animation toolbar click on the Keyframe Selection button and select Restrict Editor Selection. Selection in the viewport is now possible only for the controls in the active selection object list.

Summary We have seen how a little thought and preparation can improve our workflow. By using selection objects we can lessen the risk of accidentally selecting the wrong object in a complex scene.

MOCCA

TUTORIALS ADVANCED 113

Advanced 11 Optimizing Display and Speed As our scenes get more complex, so the viewport display will slow down. However, we still have a few tricks up our sleeve to improve performance.

When animating, it is important to get the best possible viewport speed. There are several things we can do to speed up the display, such as making unnecessary objects invisible. Additionally, we can adjust the display of HyperNURBS and see if using OpenGL will improve performance on our system. Load the file named ‘AnimDisplay.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

In the Display menu for each viewport, disable the Disable Backface Culling option. Backface culling is now enabled, making all polygons not facing the camera invisible. This results in a small speed-up in display performance. In the Object manager, select the HyperNURBS object and in the Attributes manager, on the Object page, set the Subdivision Editor value to 0. Zero subdivisions mean that HyperNURBS are completely disabled.

This switches off HyperNURBS in the viewport, which speeds up the display remarkably. Note that, when rendering, the Subdivision Renderer value is used.

MOCCA

114 TUTORIALS ADVANCED

Deselect Bone from the Selection > Display Filter menu. Switching off the display of bones will reduce clutter in the viewport and speed up the display of everything else.

All bones will now be invisible in the viewport. (A checkmark next to the name means visible, no checkmark means invisible.) While animating, we don’t need to see the bones, they only obscure the view. However, there is one bone we need to select every now and then, the pelvis bone; this is easy enough to select in the Object manager or Timeline. Select Edit > Preferences and go to the Viewpor t page. Ensure that OpenGL Shading is enabled. Enabling the OpenGL Shading option may dramatically improve display speed if our system includes a suitable graphics card.

Depending on the graphics card used by the system, OpenGL Shading may be several times faster than normal software shading.

Summary Workflow is always improved by a fast interface. We have seen that CINEMA 4D helps us by providing display options that enable us to make the choice between speed of display and quality of display. Note that changing display properties for the viewport (aka editor window) does not affect the quality of renders.

MOCCA

TUTORIALS ADVANCED 115

Advanced 12 Frame Zero To save us time when testing a Soft IK set-up, we can store the rest pose of a character in frame 0.

Because of the nature of IK, and especially Soft IK, once a bone chain is moved it can be difficult and time consuming to get it back to its rest position just by moving the controller back to where it started. To avoid having to constantly reset the bones to their rest positions, we can use frame 0 to record position and rotation keyframes for all the bones in the mime. Load the file named ‘AnimFrame0.c4d’ from the Mime folder in the MOCCA Tutorials folder. Load this scene to continue.

In the Object manager, select the HyperNURBS object and then Edit > Select Children from the Object manager menu. In the animation toolbar, disable everything except the buttons for position and rotation. Position and rotation keyframes are recorded.

We want to record keyframes for position and rotation.

MOCCA

116 TUTORIALS ADVANCED

Press the Record button. We have now recorded every single object in the mime hierarchy and, most importantly, all the bones in their rest pose. In the Timeline Edit menu, disable the options for Object, Track and Key Selection. Click once into an empty area of the Timeline window to ensure the Attributes manager will display the Timeline parameters, then select the Select All command from the Timeline’s Edit menu. Now all the animation sequences are selected (not including the keys, objects and track names) and the Attributes manager displays several options concerning the sequences. In the Attributes manager, disable the Right Influence option and set Right Border to 1. We have now scaled all animation sequences down to one frame and switched off the influence to the right. We have done this to make absolutely sure that the keyframes we recorded at frame zero have no influence on the Soft IK calculations after frame zero. If we now switch on Soft IK and move the controllers around at any frame after zero we can always revert to the rest pose by moving the time slider to frame zero.

Summary By recording our character’s position in frame zero, we can freely test movement and amimation on all other frames, safe in the knowledge that we can very quickly ‘reset’ our character by moving the time slider back to frame zero and switching off Soft IK.

MOCCA

TUTORIALS ADVANCED 117

Advanced 13 Animating the Character With the mime now prepared for animating, here are some final tips and guidelines that will help us get the desired results more quickly.

The mime is now fully set up and prepared for animating. If we now switch on automatic keyframing and move the time slider to the frame at which we want to start the animation, we can move the controllers and pelvis bone and they will automatically get recorded in their new positions. Pick a good starting frame. Many animators prefer to start at frame 20 or 25 because of the timing. It takes about 20 frames for a character to walk two steps at normal speed, so to make it easier why not use exactly 20 frames and start the animation at frame 20? But this is, of course, a matter of personal preference. Switching between selection objects. Remember that we have set up two selection objects, one for the main controls and one for the extra controls. The selection object for the main controls is active at the moment, and selection in the viewport is restricted to those controls, so it won’t be possible to select or record keyframes for anything other than the main controls. If we want to animate the extra controls, such as knee or elbow targets, we can switch to the extra controls via the menu on the Keyframe Selection button. The pelvis controls walking. For things like walking we need to animate the pelvis bone directly. The pelvis bone is the root of all other bones and moves the mime’s hip area.

MOCCA

118 TUTORIALS ADVANCED

Use PoseMixer to animate the hands. To animate the hand poses, select the PoseMixer object inside the arm hierarchy, adjust the sliders in the Attributes manager and record the poses using the Record button in the Attributes manager. An organized Timeline will aid workflow. There are now many animation tracks in the Timeline; in fact there are six animation tracks for each and every object. To help organize the Timeline, select the important control objects (such as Left Foot Controller, Torso Controller and so on) and set them to a different layer color by Ctrl-clicking the yellow color box in the top left corner of the Timeline window. Then make the gray layer invisible by clicking on the little eye icon below the gray color box. It also makes sense to put things like extra controls, hand poses and camera animation tracks on a different layer color each so that we can concentrate on animating one part of the scene while the rest is hidden.

MOCCA

Bibliography Many good books have been written about character animation. Here we list a few of our favorites.

BIBLIOGRAPHY 119

If there were one book that could teach us everything there is to know about character animation, people wouldn’t keep writing new ones. The truth is there are lots and lots of excellent books on the subject of character animation and every single one of them seems to have something new or different to teach us. Below are a few of our favorites; this list is not exhaustive, but we feel that anyone who absorbs the contents of two or three of these will be will be giving themselves a head start on the road to becoming a top character animator. The Animator’s Survial Kit. By Richard Williams. Published by Faber and Faber. ISBN 0-571-20228-4. Based on his animation masterclasses in the US and across Europe — attended by animators from the Walt Disney Company, PIXAR, DreamWorks, Blue Sky and Warner Bros — Williams provides the underlying principles of animation that every animator needs. Muybridge’s Complete Human and Animal Locomotion. By Eadweard Muybridge. Published by Dover Publications. New Volume 1 ISBN 0-486-23792-3 New Volume 2 ISBN 0-486-23793-1 New Volume 3 ISBN 0-486-23794-X This unique study of motion shows not just the basic forms of movement using ‘perfect’ models, but also highlights the different ways in which people of all shapes and sizes move in different ways to achieve the same function. If there were such a thing as a bible for character modelers and animators, these three hardback volumes might be it. Digital Character Animation 2, Volume I: Essential Techniques. By George Maestri. Published by New Riders Press. ISBN 1-562-05930-0. This step-by-step, full color guide applies conventional character animation techniques such as walk cycles and lip sync to computer animation, along with tips for giving your characters the illusion of life. Volume 1 is geared to entry level animators. Digital Character Animation 2, Volume II: Advanced Techniques. By George Maestri. Published by New Riders Press. ISBN 0-735-70044-3. Cuts right to the chase; there are no chapters on modeling, lighting or rendering. Every chapter focuses on character motivation, character movement, framing a story, preparing a character for animation, and acting itself.

MOCCA

120 BIBLIOGRAPHY

Acting for Animators. By Ed Hooks. Published by Heinemann Publishing. ISBN 0-325-00229-0. Sorts out the acting theory that animators need, presenting it in a form and with references that are more relevant to the animator’s world. The Illusion of Life: Disney Animation. By Frank Thomas, Ollie Johnston. Published by Hyperion. ISBN 0-786-86070-7. This definitive account of the development of Disney animation explains what made Disney’s style unique and features original sketches and drawings revealing the origins of Mickey and the rest. The Artist’s Complete Guide to Facial Expression. By Gary Faigin. Published by Watson-Guptill Publications. ISBN 0-823-01628-5. Probably one of the most complete documents currently available that deals with facial expressions. The Animator’s Workbook. By Tony White. Published by Watson-Guptill Publications. ISBN 0-823-00229-2. A complete course on the principles and techniques of drawn animation. The Human Figure in Motion. By Eadweard Muybridge. Published by Dover Publications. ISBN 0-486-20204-6. A comprehensive collection of photos of people engaged in normal activities. Animals in Motion. By Eadweard Muybridge. Published by Dover Publications. ISBN 0-486-20203-8. A momumental work photographing animals in all different gaits and poses and tests of ability.

Index

MOCCA

A Actor default 37 Add anchor to bone 18 bone with bone tool 20 child bone 20 motion track 37 pose 35 pose to library 40 root goal 18 tip goal to bone 18 up vector to bone 19 Anchor 8 add to bone 18 Animation mixing 37 Auto Redraw 19

B Bone adding child 20 adding with bone tool 20 add anchor 18 add root goal 18 add tip goal 18 add up vector 19 null, add with bone tool 21 null, update with bone tool 21 split with bone tool 20 tool 20 weight, removing 27 weighting 25

C Chain IK, setting up 18 limit position of 15 Character rest position 11 Child bone, adding 20 Children of bones, mirroring 24 Chopsticks 14 Claude Bonet tool 25 Clone tags 24 Constraint goal 13

INDEX 123

mirror 24 Soft IK 12 strength 13 up vector 14 Constraint page Soft IK 12

D Default actor 37 pose 36 Drag Soft IK 10 Dynamics Soft IK 9

F

L Layout configuration 5 MOCCA 5 Library of poses 40 P2P 40 Limit position of Soft IK chain 15 rotation in Soft IK chain 17 strength of in Soft IK chain 15 Limit page Soft IK 15

M

Goal add root to bone 18 add tip to bone 18 Goal constraint 13 Gravity Soft IK 10

Manager P2P 40 Mirror children of bone 24 constraint 24 Mix animation tracks 37 Mixing poses 35 Mocca.l4d 5 MOCCA Layout 5 MOCCA Palette 5 MoMix object 37 Motion mixing 37 Motion Track add 37

I

N

IK Chain rest position 11 setting up 18 updating 19 Inertia Soft IK 10 Inverse kinematics 6

Null bone 21

Find keyframes 34 Forward kinematics 6 Frames finding easily 34

G

K Keyframes finding easily 34 recording in realtime 29 Kinematics forward 6 inverse 6

O Object MoMix 37 up vector 14

P P2P Manager 40 Painting bone weights 25 Palette MOCCA 5

MOCCA

124 INDEX

Pose add 35 default 36 library 40 mixing 35 recording 35 record key 41 PoseMixer tool 35 Position limit of in Soft IK chain 15 rest state 12

R Realtime keyframe recording 29 Record key for selected pose 41 poses 35 Reference pose 36 Remove bone weight 27 Reset chain to rest state 11 Rest Page Soft IK 11 Rest Position of bone chain 11 Rest rotation set for bone chain 19 Rest State position 12 reset chain to 11 rotation 12, 19 Rotation limit of in Soft IK chain 17 rest state 12

S Setup IK chain 18 Soft IK 5 adding tag 18 anchor 8 constraint 12 drag 10 dynamics 9 gravity 10 inertia 10 limit position 15 limit rotation 17 Rest page 11

speed 9 strength 9 tag 8 turning on and off 8 updating chain 19 Speed of SOFT IK playback 9 Split bone with bone tool 20 Strength of constraints 13 of limits in Soft IK chain 15 Soft IK 9

T Tag adding Soft IK 18 cloning 24 Soft IK 8 TimeWarp tool 34 Tip effector 7 Tool bone 20 Claude Bonet 25 PoseMixer 35 TimeWarp 34 Track mixing 37 motion, add 37 Transition between tracks 38

U Update IK chain with auto redraw 19 null bone with bone tool 21 Up Vector 14 add to bone 19

W Weight bones, removing 27 Weighting bones 25