[huge rant deleted]
Yes, I sometimes doubt my own sanity for having spent about a small sportscar's worth on hobby software over the years (and still continue doing so... I'm a bird. No, I'm an airplane...) I have one huge complaint. Out of all the graphics companies I've purchased software from, the CAT boys have been the only ones to never produce that one elusive part which separates the boys from the men when it comes to products: a manual. And considering their pricetag - they haven't exactly been the cheapest gadget, not by a long shot. Okay, so I also bought more expensive stuff, anyway, the point is: from anywhere between 7K EUR and 20 EUR, they have been the only manual-incapable ones.
Sure, there was a good attempt at one from back in the days of CAT 1.4 but following the early 2.x versions it was replaced by a Wiki, which was devastating in it's silence. Yes, it was updated. At the same pace that took the world from dinosaur to human domination.
A huge pain, especially when you're using CAT on a laptop while travelling (heck, it's my hobby, so I have odd 'working hours'), so I really liked that on-line help file, even while it was a little crippled. That was when I still admired the CAT guys.
Nowadays, I associate CAT developers with car tires, Mandela style.
Anyhow, enough of a rant as otherwise the BBC guys at the censor desk get calluses on their Beep Button Finger.
The work you see before you is an amalgam of CAT 1.4, 2.4 / 2.5x and the few CAT 3 wiki updates; I use this file as an off-line help document (no, my dear, I am not on-line all the time when I find time to work on my hobby, so I want off-Net documentation to go with my tools.
Publishing the content below has been too long in postponing from my side as well, as this gathering work was largely done back in October 2007, but I never made the move to put it on-line, until today. I was (and am) lacking the 'happy thoughts' I otherwise associate with putting something on my sites.
I hear Autodesk bought CAT. Let's hope they do a better job at the manual, in due time. And cut off some cojones while they clear the LZ. When you guys find this here: it is, to the best of my knowledge, the most complete CAT documentation available publicly anywhere. YES, that includes the CAT Wiki, which lacks several helpful chunks which did exist before. (If there's better stuff in private places you can reach, dang, you are so lucky!)
See the various parts of this document, which each show a line at the bottom stating where I got the info from. At the end there's a very crude 'ChangeLog'!
When you have a look and maybe download the off-line copy and wonder why it's in such a disorganized state, manual-structure wise: this is a 'fast job' done by me to help myself out, while a certain set of (bleepards) went AWOL towards Avid/SoftImage and other green pastures. The structure is largely based on the order which I found in the CAT 2.4 off-Net CHM manual, mixed in with some good CAT 1.4 bits and Wiki additions. In short: a mess. You'd almost think I'd been at it in my spare time, that level of disorganized can't happen by accident, now can it?!?!
Meanwhile, I hope you find this file as useful as I have till today. My apologies for the rant just there, but the worries about the continuity of CAT have taken a lot of the fun (and time!) out of it - the only reason I am still around is that I have not found an equivalent package to help me with my (multi-pedal) animations. Which says something about the CAT concept (it's that good), but the execution is, alas, not on par. Now I'll shut up and leave you with the manual, or rather the bits and pieces which try to constitute one.
Enjoy, while I weep silently.

Videos covering CAT Functionality
Saving and Loading Poses and Animation
Introduction
Using CAT's Licensing System
CAT2 for CAT1 Users
How Do I...?
Rig Setup
Introducing the CATRig
Introducing CATRig Elements
Editing your CATRig
Animating with CAT
Using the Layer Manager
Keyframe Animation
CAT Element Keyframe Controls
CATMotion
Introducing the CATWindow
The CATMotion Controllers
Individual Controllers
Motion Data Saving and Loading
CAT Menu Tools
Tips and Tricks
Scripting Documentation
CATmuscle
The CATMuscle Interface
The Preset Manager
Getting Started
Appendix
Software Changes
Welcome to the online Wiki for CAT™!
All of CATs documentation has been moved into and online wiki. This enables us to do faster more frequent updates.
The great thing about having such a talented user base is that they have great ideas! CAT's speedy and dramatic development is in part the result of having so much valuable feedback from all the artists using our software.
Your first port of call for technical support is our active forums.
CAT Forums (http://www.catoolkit.com/forum/)
For direct support from the CAT support team and its developers, or if you have support issues that are sensitive or time-critical, please email us at techsupport@catoolkit.com
CAT3 has been released and here are a list of the changes in CAT3.
More information on the CAT product can be found at the catoolkit.com website. CAT Website (http://www.catoolkit.com)
To request more information on the product, demos, evaluations or or PR opportunities, please email us at info@catoolkit.com
Looking forward to hearing from you.
All the best,
Philip Taylor
Product Manager
No part of this publication is to be reproduced in any form whatsoever, for any purpose (except as is explicitly allowed at law).
Character Animation Technologies Limited makes no warranty, expressed or implied, as to the suitability of these materials for a particular purpose. They are general in nature, and are provided on an "as is" basis.
Character Animation Technologies Limited may revise and improve its products at any time. This publication describes the product as at 16 August 2005. It may not reflect the product after that date.
Copyright © 2006 Softimage Co. All Rights Reserved.
Downloading and Installing CAT
Restrictions on Unlicensed Versions
Configuring Multiple Network Adapters
You cannot use CAT1 & CAT2 at the same time with the same installation of 3dsmax.
The only way to have CAT1 and CAT2 on the same computer is to have 2 copies of 3dsmax, each with a different CAT install.
Any 3dsmax scene saved from CAT2 cannot be reloaded into CAT1.
To install CAT2 you need a CAT2 serial number, provided upon purchase of a CAT2 license. Your CAT1 serial number will not work with CAT2.
CAT is a Character Animation plugin for 3dsmax. CAT is owned by Softimage a subsidiary of Avid Technologies.
CAT has been on the market for 3 years and is developing very fast.
CAT is quickly becoming a standard in the animation industry with important studios such as Relic Entertainment, Rainbow Studios, Relentless Software, Flagship Studios, Remedy Entertainment, Encore Hollywood, Obsidian Entertainment, Terminal Reality, Digital Pictures Iloura, PRPVFX and many more already using CAT in their pipelines.
The great thing about having such a talented user base is that they have great ideas! CAT's speedy and dramatic development is in part the result of having so much valuable feedback from all the artists using our software.
All the best,
Philip Taylor
Product Manager
Once you have purchased a license of CAT, your catoolkit.com profile will be updated and you will then have access to download the full versions of CAT.
Depending on the type of license you purchased, you will be able to see a different set of downloads.

catoolkit.com downloads page
If you have purchased a Full Commercial version of CAT you will be able to see the "Commercial Downloads" section. If you have purchased a Student, or Faculty version of CAT you will be able to see the "Student/Faculty Downloads" section.
You should select the CAT download that corresponds to the version of Max that you will be working with, and download the CAT Installer.
1.4 Page 4: Enter Serial Number
1.6 Page 6: Authorisation Options
1.7 Page 7: Get Auth Key Button

Page 1 of the installer. Press 'Next'.

If you have read and agree with the EULA, check on the checkbox and press 'Next'.

If this is the 1st time for you to install CAT2 on this computer, and you wish to work with CAT, then select "Yes I want to Authorise this CAT installation".
If you are have not already authorised this machine, or if you plan on using this machine for rendering purposes, or you wish to open max files that contain CATRigs, then select "No, I do not want to Authorise this CAT installation". This will mean that the installer skips the installation process and goes straight to Page 9

Enter the serial number that you received when you purchased CAT.

If you have already received an Authorisation Key, then select "Yes I do have my Authorization Key"
Note:
This is not your "Serial Number"
In most cases, you will not have your Authorization key, so simply press 'Next'.


There is a button in the middle of the page. Press this button to perform automatic online authorisation.

the CAT Installer will connect to the online licensing system and retrieve your Authorization key.

The installer displays the default path for your Max8 installation. If you have installed 3dsmax in a different folder than the one displayed, then please press the "Change Installation Location" button and browse to find the correct path.

Press "Exit" to quit the installer.
With CAT's licensing system we have done our very best to protect our software and provide as little inconvenience as possible. We have found that most problems could have been avoided with a more solid understanding of how the system works, so please read on!
3 Moving CAT licenses from one computer to another
3.1 To Activate your CAT License while online
3.2 To Deactivate your CAT License while online
3.3 To activate a CAT2 license when offline
When you first purchase CAT2 you will be provided with a serial number. This number is important! Please store it somewhere safe.
You will only be provided with one serial number for many different installations of CAT. As you purchase additional licenses we increase the number of machines that can share that serial.
You can install CAT2 with a single serial number on as many machines as you like. Once installed you can then use the license manager to move your licenses around the network at will. Of course you can only have as many machines activated as licenses you have purchased!
The licensing is managed from the License Manager, found in: START Menu/All Programs/CAT/License Manager. It works best when you are online. As long as you are online, you can activate and deactivate instantly, as often as you like. If you are offline, you have 2 options. 1, you can use our website licensing features www.catoolkit.com/licensing.asp, or the manager can produce an email for you to send to us. Unfortunately, in this instance you will have to wait for us to process manually. This will be done within the next 24 hours (usually sooner).
If your computers are connected to the internet, you can move licenses from one computer to another quickly and easily using our license manager. The license manager connects to our database and manages allocation and de-allocation of licenses form your computers.

Company Name: This is the name of your account with CAT. Typically this will be the company name that you provided when you purchased CAT. If you didn't provide a company name it will most likely be your name.
Current Serial Number: This is the serial number that was last entered. If you have just installed CAT it will be the serial number you entered when you installed. If you have more than one serial number you can enter a new one here.
Note:
CAT1 serial numbers will not work with CAT2!
Computer Name: This is the name of your computer as entered in System in the Windows Control Panel.
Maximum Installs: The maximum number of CAT2 licenses that you can have activated at any one time. If you need this number to increase please buy another license :)
Current Auths: The number of machines that currently have an activated CAT license. If this number is less than Maximum Installs then you can activate right away.
License Manager list box: This lists the computers on the network that currently have active CAT licenses and what date they were activated.
Activate License: Press to activate the license on your current machine.
Deactivate License: Press to deactivate the license on the current machine.
Refresh: Use to update the License Manager list box.
To move a CAT license from one computer to another, you simply need to deactivate the license on the currently activated computer, and then you can activate the license on a new computer.
Go to START Menu/All Programs/CAT/License Manager.
The License Manager window will appear.
Press Activate License.
Your current computer will now be added to the list. You are now ready to start animating!
Go to START Menu/All Programs/CAT/License Manager.
The License Manager window will appear.
Press 'Deactivate License'.
Your current computer will now be removed from the list. You can now activate a CAT license on another machine.
Go to START Menu/All Programs/CAT/License Manager.
The License Manger will appear. The list box will be empty because the system cannot get the required information from CAT's server.
Press 'Activate License'.

The dialog above will be presented to you. There are 2 ways to activate your license while your local machine is offline.

At www.catoolkit.com/licensing.asp: If you can access a different computer that does have internet access then you can activate you machine instantly by entering the details provided in the dialog into the licensing webpage.
Via Email: If you press the 'Generate Email' button, an email will automatically be created to be sent to our sales support team. Please allow 24 hours for a response.
Go to START Menu/All Programs/CAT/License Manager.
The License Manger will appear. The list box will be empty because the system cannot get the required information from CAT's server.
Press 'Deactivate License'

The dialog above will be presented to you. There are 2 ways to Deactivate your license while your local machine is offline.

At www.catoolkit.com/licensing.asp: If you can access a different computer that does have internet access then you can deactivate you machine instantly by entering the details provided in the dialog into the licensing webpage.
Via Email: If you press the 'Generate Email' button, an email will automatically be created to be sent to our sales support team. Please allow 24 hours for a response.
Tip:
When using CAT1 or CAT2, if you change your network card or hard drive your licensing will break and you will need to reactivate your license. To get going again just run the CAT license manager and reactivate your license!
If CAT is installed, but not authorised, or you have a demo version of CAT installed, and the scene has been saved more than 20 times, you will have the following restrictions.
You cannot animate CATRigs;
You cannot load or save any CATRigs, CATMotion presets, hand pose presets or clips;
You cannot change rig structure (add limbs etc).
Change rig bone properties;
Rename CATRigs;
View the animation and render the scene.
We have made sure that any work not related to CAT can continue even if your CAT installation is not authorized. This means that you can for example continue to edit your scene and perform operations to non CAT elements of your scene. You can also install CAT on all your rendering machines without needing to worry about licensing. See Installing CAT Without licensing.
CAT’s licensing system uses your network adapter to identify your computer. Every network adapters has a unique number that is different on every network adapter in the world. You may experience problems using CAT if you need to temporarily install a network adapter to gain access to the internet during the authorization process. An example of this would be installing a wireless adapter into a laptop that normally uses a normal cable network adapter, to enable access to a wireless network.
The problems are caused by CAT using the temporary network adapter to authorize CAT. Later, if you remove the network adapter, then CAT becomes unlicensed, because it cannot see the network adapter that is originally used during install.
Note:
You must have at least 1 network adapter installed in your computer to be able to use CAT. If you need to temporarily install a new network adapter in your machine during installation, it is important to make sure CAT uses the same network adapter that will be installed when animating using CAT.
To resolve any problems you need to make sure that CAT is using the network adapter that is permanently present and active on your machine.

In Windows XP, right-click on the ‘My Network Places’ icon on your desktop and select ‘Properties’. In the ‘Advanced’ menu, select ‘Advanced Settings’.

Here you see a tab called ‘Adapters and Bindings’, and in this tab in a listbox labeled ‘Connections’. This listbox displays the network adapters that are installed on your computer, and there are arrows to the right of the box for re-arranging the adapters. CAT will always use the adapter found at the top of the list.

If you have added a temporary network adapter to your computer, then you may find that this new adapter is at the top of the list. Select the adapter that you will be using when animating using CAT, and move this adapter to the top of the list.
In the example above, CAT will be installed using ‘Local Area Connection’ instead of the temporarily added ‘Wireless Network Connection’.
To Uninstall CAT, run the Uninstaller found on the Start Menu.

To run the CAT Uninstaller, press on the start button, navigate to the CAT menu and select 'Uninstall CAT2'.

When you press the 'Uninstall' button, all files that were put on your computer during the original installation of CAT will be removed.
Note:
Any ini files, new rig files, and scene files that have been created since you installed CAT will remain on your hard drive. In your <3dsmax-folder>/plugcfg/ folder you will see a CAT folder remains that you may wish to manually delete after the uninstaller has completed.
CAT needs to be installed to be able to open scene files containing CAT. You can render scene files containing CAT using as many machines as you like. You do not need to authorize CAT for rendering or viewing of files. During installation, you can simply not authorize the machine, and skip that whole part of the installation process.

If you plan on using this machine for rendering purposes, or you wish to open max files that contain CATRigs, then select "No, I do not want to Authorize this CAT installation". This will mean that the installer skips the installation process and goes straight to Choose Install Path
One common setup for network rendering using 3dsmax is to keep a single repository for all the plugins that are loaded by the render nodes. Most plugins, including CAT, only require that the machine has access to the plugin dll during startup of 3dsmax. Sample files and scripts are often not required simply for rendering. You should check for each plugin however that this is all it requires.
Create a folder on the network that all the render node machines can access.
For each render node, add the path to this common folder to the plugin.ini file.
In the 3dsmax installation folder locate your plugin.ini file
e.g. C:\Program Files\Autodesk\3dsMax9\plugin.ini
Add the network plugins folder path to the plugin.ini file
[Directories] Additional MAX plug-ins=C:\Program Files\Autodesk\3ds Max 9\PlugIns\ Network Plugins=\\Server\NetworkPlugins\
Remove the plugin that might have been installed locally to avoid getting 'Duplicate Plugin ID' errors
The benefit of this setup is that you are guaranteed that all your render nodes are using identical versions of the plugins. It is also easy to update the entire render farm by simply replacing a single plugin file.
Note:
You may also find it beneficial to have all your workstations accessing the common plugin folder also. The difference being that these machines also need to have the latest scripts installed with each update of CAT.
More CAT2 Rig Presets
Support for small-icon UI's
Support for dark colour schemes
Spine direction vector gizmo added to procedural spines This enables procedural spines to me more flexible in the direction they are pointing. Spines can easily now be made to point directly down.
A new Tip Hub position gizmo has been added This is a scene debugging tool helping the user to understand the motion of the procedural spine. Tip hubs now display a blue cross indicating the goal position for the hub. If your spine is behaving oddly, you may now find that the blue cross indicates the hub is forcing the spine into an insolvable position. It is very easy to see the effects of your manipulations of the tip hub on the goal position.
Procedural Relative Spines now automatically remove error when being manipulated in setup mode.
All Button texts and tool tips are now read from the CAT.ini file found in the plugcfg/CAT/ folder. This for the purpose of localising CAT for separate regions.
Added new script exposure to LimbData, and SpineData, and TailData controllers. Access to the CATParent, name, PasteLayer, and PasteRig functions.
The scale tool can be used to resized an entire hierarchy of objects in the same way scale is normally inherited down hierarchies.
The CATMotion Time Warp curve has been exposed as a subanim. In future, we will show how this can be used to synchronise keyframe layers with CATMotion layers giving the artist another level of control over the CATMotion system.
All Rig copy/paste, and extra bone buttons are now disabled while not in Setup Mode.
Limb Clip and Pose buttons are now disabled in Setup Mode.
New Limb bones and spines now initialise the name parameters to the bone ID.
The reactor script is re-written and improved. Now includes the ability to constrain only body parts, digits, and tails.
Tail bones are now stretchy and can have independent length settings.
The Limb Retargeting vector option found in the hierarchy panel is now enabled and working. This rollout gives the user controls over the direction that the retargeting moves the hub. Previously the hub always moved towards the IKTarget of the limb. Now the user has the option of setting a limb to always retarget the hub in the world-Z axis. This is preferable for retargeting legs.
Locking the scale channel will guarantee that no changes are made to the scale values. Previously when either collapsing animation, or capturing animation, scale keys would be created even if the scale channel was locked.
The AutoMap feature on the Capture Animation tool has been improved to handle FBX hierarchies better.
A new tool has been added to the CAT menu in max for assigning Max IK chains to CAT bone hierarchies.
The Clip and Pose Manager will not allow the user to load files that are very out of date. Also the Clip and Pose Manager is now disabled if the character is in Setup Mode, and the Pose Manager is disabled if a target layer is not selected.
Improved hit testing for the FootPlatform. Sometimes it was difficult to select the FootPlatform in the viewport if the character was set to X-Aligned mode.
Fixed issues with upgrading old files made using versions of CAT 1.41 and earlier. Loading old files would cause a crash on some installations of Max.
Fixed an upgrade issue where Transform node information was not being upgraded to the 2.0 format.
The Foot Pivot cross gizmo resized to fit the size of the rig.
Fixed bugs in the CATMotion system relating to footprints. Pressing the delete button would cause a crash.
Tails on X-Aligned rigs would move if a CATMotion layer was assigned. This is now fixed
Procedural Spine bones made stretchy when in Setup Mode. You can use the move tool to change the shape of the procedural bones and edit bone lengths.
Rig system now loads new parent/child relationships between bones. This means that if you link your collarbone to a different bone than the ribcage, the rig loader will re-load this relationship
Arm IK Target Settings now get saved to the Rig preset file.
Fixed bugs in Limb Clip and Pose loading. Clips were not being correctly mirrored when transferring animation from a left arm onto a right arm. IK Targets were not being mirrored correctly to the opposite side of the body.
An undo issue relating to undoing a pose or clip being loaded has been fixed.
The long standing PageUp/PageDown bug has finally been fixed. The for PageUp and PageDown buttons are very useful for navigating hierarchies in the view port, but the CAT user interface would stop the user from navigating more than one bone at a time if the user happened to be in the Modifier panel.
Incompatibilities resolved with the Gamebryo Exporter. Changes were made to both CAT2.1, and the Gamebryo Exporter
For Customers using Gamebryo 1.2 then the fix will be available in Gamebryo 1.2.2.4 patch.
For Customers using Gamebryo 2.0 then the fix will be available in Gamebryo 2.1.
Fixed incompatibility between CAT's new stretchy bones and the Align Tool in Setup Mode.
Fixed bug in Clip Loading where the Time Warp curve would be defaulted to Manual Ranges. The clip loader will now not attempt to re-load Manual Range settings. This feature will be re-written for an upcoming point release.
Fixed an undo issue on the global weight and time warp spinners.
Fixed an update issue when using script to enable and disable layers.
Fixed a bug in the clip loader that caused a crash if the original file contained animation for extra bones and the target rig did not the required contain extra bones
For CAT2.0 the palm and ankle bone were being linked to the 1st segment in the parent limb bone instead of the 1st. This has now been fixed.
A bug has been fixed in the Copy and Paste system. When digit bones were pasted, the length parameter was not being correctly pasted. The digit length parameter would revert to its original length if certain events happened in the scene.
A bug has been fixed a bug in using the scale tool to resize Limb Bones in Setup Mode. Previously the objects would be scaled twice, only to revert to the correct size at a later time.
A bug has been fixed a bug meaning new CATMotion Layers on hubs contained default curves that were not correct.
Improved Auto-Mapping of Character Studio Bipeds, using the Capture Animation System.
Fixed a bug in the Capture Animation Mapping(*.CAM) file format.
When Digits were pasted, the name parameter was not being pasted. This is now fixed.
Fixed a bug that caused a jump when a bone was linked to a different bone in a CATRig.
Fixed a bug in copying and pasting layers from old pre-CAT2 files. The foot controller would not be copied correctly.
Fixed a bug in the layer system where when layer selections were made, the UI would flicker as it was destroyed, then created. Now the layer system is much smoother when switching layers. Also, the flickering may have been the cause of some random crashes in CAT.
In an effort to remove the old dangle limbs property, old rigs will continue to use the dangle property while new rigs, will have it disabled.
Fixed a limitation in the clip saver meaning it could only save out less than 9 layers at a time.
Limb Z-Axis Force Feedback vectors was not working correctly in CAT2.0. Now fixed.
Fixed a bug In CAT2.0 where if a digit was deleted from a character, then a rig preset was saved, it caused a crash.
Fixed a bug where loading an animation clip into a limb without a valid target layer selected caused a crash. Now an informative error message is displayed.
Fixed a bug in the CAT Rig rollout where all the radio buttons acted as one big group instead of 2 small groups.
Fixed a bug where if a ranges, or Global or Local Weights, or Time Warp track views were open and a layer were removed, Max would crash. Ranges, and Global or local weights, and Time Warp track view buttons are now disabled when there are no layers in the layer stack. When the last layer is removed, the track view windows are closed. Also now when a character is deleted, the track views are all closed now
A rogue sub-anim was visible in the track view on the CATParent, and showed up as "??". This has now been removed.
Undos are disabled after a new spine has been added to a rig.
One very small resource leak was fixed.
A bug in the Ankle meant it did not correctly save the target align value to the rig preset. This is fixed.
On Tails the Setup Mode Transform was not being exposed to script correctly.
When loading older rigs, due to the more flexible naming scheme, often 2 bones would end up with identical names. This does not happen now.
Bugs were fixed in the BIP, BVH, and FBX importers.
CATMotion Layers were not affecting the colour of a character when in Layer Colours mode.
A change to the CATMotion system meant that CATRigs with Tails would no longer upgrade to the CAT2 format. This has been fixed.
Update issues when using the local weight spinner have been fixed.
Tail local weights were dependant on their hub’s weight, but now they are only dependant on the global weight value.
The uninstaller no longer removes the licensing.
Collarbone Scales would get reset after every move in stretchy mode. This has been fixed.
Bugs with cloned characters causing crashes have been resolved.
When moving a layer up or down, an assertion would be thrown, and the user interface would become corrupted. This has been fixed.
CAT would allow the user to uninstall when the machine was currently authorised. As part of the uninstallation, the authorisation information was deleted. Now the uninstaller requires that CAT be de-authorised before uninstalling.
The spine and tail bone were being updated during the CAT 2.1 update to a new bone object. The upgrade process would remove all modifiers from the modifier stack. This no longer happens.
Pasting Tiphub rig settings would not correctly mirror the spine projection vector. This is now fixed.
The clip loader was disabled while in setup mode. This is no longer the case.
Pin Tip Hub did not work when using Local coordinate transforms. This is now fixed.
Spine Stretchy Bones didn't work so well in FK mode. The child bone would always rotate with the parent. Now it behaves correctly in stretchy mode.
Pin Tip hub feature did not work on FK spines
The Absolute Relative Radio buttons were enabled on FK spines where they are irrelevant.
Pressing page-up or page-down while navigating the palm of digits hierarchies would cause further page-up, or page-down presses to not navigate the hierarchy.
If the spine was select and then the IK panel was selected, a Spine Setup rollout would get displayed, and then after this you would get a crash by simply selecting a different panel.
If you Add a Spine, then press undo you would get a crash.
If you selected a spine bone and pressed delete you would get a crash.
changing the number of spine bones would break the undo system.
If you removed a spine, and then added another one, your rig would have trouble loading clip files.
The World Z force feedback vector was not being weighted properly. This meant that if the retargeting weight on a leg was animated, you would see a popping as the retargeting turned on and then off..
New Legs now default to "World Z retargeting"
The Retargeting system was not very accurate when used on Arms, or any limb attached to a hub at the end of a spine.
When using Retargeting, the 1st bone in the IK chain is forced to use the FK rotation. This means that any error in the retargeting system is now absorbed in the ankle instead of the knee making it easier to create smooth straight legged walk cycles.
If the number of spine bones was reduced, and the bone that was selected gets deleted, then max would crash.
Linking one CAT bone to another with the available layer selected would cause a crash.
If you did not have an IKTarget for a limb, and had the IK/FK ratio set to 0.0, and tried to move or rotate the palm, all you would get is an odd wobble.
If you pressed MoveIKTarget to palm while not having an IKTarget, the undo system would get broken
In SetupMode, it was not possible to set the transforms of the IKTargets directly using script
If a Bone were scaled, then adding a new layer would result in all its child bones being scaled with the inverse of the parent bone scale.
I.e., if a bone had a scale of 200%, then after a new layer was added, the child bones would receive a 50% scale.
Scale was not being interpolated correctly up the procedural spine.
The scale tool would only effect the whole spine at once. Now it will effect all selected bones.
When changing spines from Procedural to FK, settings such as "Lock SetupMode Pos", and "Lock Animation Mode Pos" on the the tip hub were not being set as they should have been.
When the IK target was selected the button on the motion panel was supposed to say "Select Limb End", instead it said "Select IK Target"
When bones from one rig were linked onto bones of a different rig some times there would be a jump in the location of the child bone.
Linking bones to the rig would cause a jump in the bone position.
If you changed the number of bones in a limbs and then pressed undo, you would get a crash. The undo system is disabled when you change the number of bones in a limb.
If the number of bones in a limb was reduced by more than 2 bones at a time, CAT would crash.
Scaling the ribcage would cause the collarbones to move in the wrong direction
The collapse Layer Button was disabled when no layers were selected
Newly collapsed layers would often need to be updated or refreshed before they would display correctly
Keyframe brackets weren't working on the global weight spinner until after the slider was scrubbed.
The layer manager was not being refreshed when layers were enabled and disabled using script. Now it is.
After undoing removing a layer, the listbox displays 0% weight when it should be 100;
In some cases, undoing the selection of a layer, CAT would crash
Copying and pasting into a layer slot above the copied layer on the same character would cause the layer not to be pasted correctly.
If a layer was copied, and then that layer deleted, the paste button was not disabled.
Pasting Layers with the autokey button 'on' would cause keyframes to be created on some of the controllers one the pasted layer.
Copying and pasting CATMotion layers would cause a crash. Now copying and pasting of CATMotion layers is disabled.
Undoing the Pasting of layer could cause a crash if limb bones were selected when undo was presses. This issue no longer exists.
In some cases, editing the pivot graph would cause a jump in the location of the foot when the mouse button was released.
When new layers were added, the retargeting value was not defaulting to the previous value.
An optimisation was causing some reference messages were not being passed through CAT, and this meant that some controllers were not able to correctly configure themselves. This would cause problems with spring controllers assigned to CATBones.
local weights controllers were not returning their subanims properly.
Adding a CATMotion layer with the animate button on would create a corrupted CATMotion Layer
Resetting Footprints would cause the animate button to be left on.
If you delete the CATMotion footprints and then press Reset in the CATMotion Globals page, then CAT would crash
CATMotion FootPrints were not effecting hubs position correctly.
When a CATMotion layer with a path node was deleted, a crash would occur.
Adding a CATMotion layer and then pressing undo would cause a crash
Resetting Max with the CATwindow open would leave the CATwindow open. If the CATwindow was not closed then this would cause a crash.
The retargeting and LimbIKPos values were not being saved to the clip file format.
Constraints are now saved out to CLP files regardless of whether they are animated or not.
Motion Capture Import
Capture Animation System now always captures to a target layer instead of the currently selected one. This enables you to select and add other layers while still capturing to the correct target layer.
If the AutoKey was on, when Motion Capture Data was imported, then the imported data would fly apart.
The License Manager would allow the user to Authorise their machine before the CAT server had been contacted or the Cancel button was pressed.
The License Manager would allow users to enter their serial numbers in lower case. Lowercase serial numbers are not valid, and so would not validate against our server. This is now fixed.
When the Max scene was ‘newed’, or Max was exited with a CATMotion scene, sometime you would see a crash. This has been fixed.
Some v1.4 CAT files were crashing on load; now these files load correctly.
When browsing for files, CAT would default to the wrong folder, often always defaulting to the CAT folder instead of the correct folder. This has been fixed.
CAT now detects being exported (FBX, Collada, etc), and configures itself so that the export is more likely to be successful.
The BIP file importer now gives the user the option to resize the BIP file to fit the CATRig.
All CAT bones can now create extra layer controllers that can be used on Custom Attributes, or Max parameters. These extra controllers will maintain setup values, and manage adding, removing and manipulations of layers.
A bug was fixed in the collarbone where it was not possible to collapse the stack using the modifier panel collapse.
Rig presets could not be loaded using script. This has been fixed.
CATParents created using script did not have a mesh. This has been fixed.
The GetBoneAddress method would not return the 1st bone in a limb.
A problem has been solved where if IKTargets were hidden, then the IK system would not evaluate the IKTargets position.
Loading pre-CAT2 rigs has been improved with swivel angles being loaded more accurately.
New script functionality has been added that enables artist to create custom float animation controllers for use on parameters such as Custom Attributes and any Max animatable parameters.
Layer Transforms now display ghosts of the animation layer.
Ghost Transforms are now always created directly below the character if it is using that layer.
Onion skins can now be turned on for any CATBone. The difference between CAT onion skinning and the default, is that the CAT onion skinning can be left on for non-selected objects. It is more useful than simply trajectories because it illustrates rotational and translational velocities.
We now have a "Remove Displacement" setting available on Absolute Layer Transform Nodes.
On characters with many layers a scrubbing could be slowed down. Now it is always smooth.
Soloing of layers is now undoable.
Linking a transform node to another object would cause the transform node to jump. This has been fixed.
If the time-warp is a keyframe controller, but contains no keyframes are found, then time warp is applied. This solves the problem, of users selecting all keys on the timeline and pressing delete, thereby deleting all time-warp curve keys, and thereby destroying the layer’s playback.
The Pivot controller is now on the arm’s IK Targets.
The LinkConstraint could cause crashes or severe slowdown in some cases. This has now been fixed.
Often after using any of the graph editors like the ‘Globals’ Window, or Layer Ranges Editor, Max would crash if any of the Track Views were 'Deleted' from the Track Views menu.
The weights controllers were returning key frames for all layers regardless of the settings on the CATParent for Layer Display. Now they follow the same rules as all layer controllers.
Collapsing to a Relative World later now works correctly. It now correctly subtracts the effect of previous layers, and stores the delta in the Relative World Layer as you would expect.
Curl Weight on digit rollout in the Modifier panel has been removed. The 'Curl Weight' value on the Digit bone rollout is used instead.
CATMotion layer’s script functionality was not working correctly. This has been fixed.
Editing the range bar for a CATMotion layer in the 'Ranges View' would cause Max to lock up. This has now been fixed.
Loading v1.4 CATMotion files has been improved, with upgrading the knee angle graph more correctly
Customised inheritance flags on PRS controllers now reload correctly.
When pe-CAT2 clip files were loaded an internal flag was not being correctly set meaning that soloed layers would not behave correctly.
Extra bones on limbs now reload correctly.
The Clip Saver now supports saving and loading of the Link Constraint.
The Clip saver can now save and load CATMotion layers. This gives the benefit of a non-name dependant file format for the CATMotion layers.
Manual Ranges and ORT settings are now being saved properly from the LayerInfo controller.
When inheritance flags have been customised, and a clip has been saved and reloaded, the clip now reloads correctly.
The AutoMap feature in the Capture Animation system would map the upper arm of a CS Biped incorrectly resulting in a 180 degree offset rotation. This is now fixed.
The License Manager now supports offline authorisation and de-authorisation. All license management can now be performed from the License Manager.
2 Changes in 2.5 from previous versions
CAT2.5 is another big update to CAT. We have fixed many critical bugs throughout the software, and a lot of ground work has been done towards preparing for the future.
Throughout the tool a lot of new scripting methods have been exposed. This is because we have many new scripted utilities that required access to more of the C++ methods.
We have taken the problem of facial animation a lot more seriously and actually provided a usable workflow with the Pose Mixer. The pose mixer has been used heavily by our beta testers and this has helped drive the refinement of the tool.
Motion Capture workflow got a huge improvement, with simpler more responsive tools.
Batch Exporting and Importing tools compliment this already very powerful toolset.
You can now clone an ArbBone by simply selecting the bone and shift dragging the bone. This provides a much faster workflow for configuring facial bone hierarchies
There is now a setting on the hub to disable inspine manipulation filtering. This was because on some spines with extreme distortions the filtering system would cause a pop in the position of the tip hub during editing.
You now cannot paste settings from Z aligned rigs to X Aligned rigs and vice versa. This is because doing this would cause undesirable results.
Maybe for CAT3 I could do an conversion of X aligned rig settings to Z and vice versa during the paste.
This is a very low priority.
Editing the spine bones rotations individually was not working correctly in 2.4
It is now possible to re-arrange the hierarchy in segmented limb bones without causing jumping or changes to your animation
This change was made to help Obsidian who are using the Unreal3 engine. The Unreal engine IK system requires a shallow hierarchy. If the 1st bone segment on each bone is linked to the 1st bone segment on the previous bone then the resulting hierarchy is shallow and yet the bone segments behave as if they are one continuous bone.
The label 'Limb IK Pos' has been changed to 'Num IK Bones' which is a lot more intuitive name.
Rigs now save CATUnits. If you simply click in the viewport, the rig gets created at the right size.
The digits were inheriting their pos offset from the IKTarget. Now the position offset of the 1st digit bone is in the coordinate space of the ankle bone.
On previous builds, in very rare cases where a bone was rotated exactly 90 degrees from its parent, when a layer was added, it would disappear. This was due to some rounding error in the 3dsmax math libraries. We have managed to avoid this problem now by bypassing the PRS controller setvalue altogether and use our own custom code.
Customised rotation inheritance flags now perform as expected. Previously, disabling rotation inheritance would cause problems when manipulating position.
New FK Limb display for limbs that are in IK
This feature is designed to help users debug their IK system.
Spines now have an animatable Abs/Rel slider on the motion panel. This means that during your animation, you can change the behaviour of the spine. It will be very useful for the following situations.
Some times you need to position constrain a biped ribcage to something. (flagship)
CATMotion on Gorillas. Quadrupeds should be able to walk on 2 legs.
Position constraining the ribcage to objects in the scene. (Climbing rope)
New Gizmo system for easier manipulation of the rig.
Simply Select a CATBone, and if you are in setup mode
Each bone segment on a limb bone now displays a BoneSeg name field. This means that you can label your bone segments 'A' 'B' and 'C' if you wish, instead of '1' '2' and '3'.
When you manipulate the shoulder now using the move tool, it actually rotates the collarbone instead of rotating the ribcage.
A mirror bone property has been added to CATNodeControl so that we can build a mapping of all bones to their mirror bones.
When the Paste Mirror function is used, the bone remembers what its mirror bone is.
FootTrans now returns the layer controller using 'LayerTrans', like all the other bones instead of 'LayerTransform'
All the PR&S locks are now exposed to script.
ArbBones exposed as an Array
ApproxCharTM exposed on CATParent
GetSymLimb Expose to Script.
MoveIKTarget to limb End exposed to script
CreateIKTarget exposed to script
Expose Layer Setup values to script
Setting the length axis for a rig with the animate button on caused keyframes to be created on the CATParent.
new property Added to CATParentTrans that returns an array of nodes of all the nodes in the CATRig. This makes rig traversal 1 line of script.
new property added to CATParentTrans that returns an array of CATClipValues of all the layer controllers in the whole rig including all the extra ones that have been assigned to materials, morphers etc. .
FootTrans was not returning the CATParent correctly.
Editing Spine length was not undoable.
The Spine weighting system was not getting refreshed when a spine settings were Copied and pasted form one spine to another.
CAT would crash if you shift cloned a character and then pressed Cancel on the clone dialogue.
If you parent the root hub to an Extra bone, then when adding a layer, the root hub always jumps to the end of the extra bone, even if it wasn’t when in setup mode.
You could not delete an entire CATRig using script in CAT 2.4. this is now fixed.
when Pasting rig settings, newly created limbs need to have the LMR and name settings pasted also.
Undo Pasting hubs causes a crash when there are less limbs after the paste.
Pasting Hubs where facial bones gets deleted causes a crash.
Pasting a hub that had less limbs onto a hub that had more limbs would cause a crash.
You could not undo changing the number of bones in a spine. Now you can.
ExtraBones were not loading their custom colours.
I.e. you cannot colour each extra bone independently.
It was not possible to re-link digits to other bones other than the palm. Now you can.
The lockpos flags are now checked when a new collarbone is added to and existing limb.
Setting a transform on a tail bone didn't actually work if there are locks set. This was causing problems with the Capture Animation system.
More work has been done on generating unique names for bones in rigs. It is not guaranteed to always generate unique names however and the artist is encourages to name each bone with a useful name.
Improved loading of Quadruped rigs created using CAT 1.X.
The spine length settings were not being upgraded correctly to the 2.0 format and this would cause some rigs to collapse on load.
If you turn off the palm and then try to reduce the number of bones. CAT used to crash.
Creating new bones would not force the new bones to generate their name correctly. This would mean that newly created bones would have incorrect names. Usually, they would simply have the name of the Rig.
A new CATUnits position controller that always multiplies the result by CATUnits.
This will be useful for anyone who would like to use max
new 'Cap' layers specifically for mocap import have been added. These layers configure themselves with controllers that suit mocap import.
HI Pivot Trans is now public so it can be used with reaction controllers.
This will become a lot more useful for CAT3 when the new rig preset system will allow us to save these complex procedural controllers to the rig preset.
Collapse to current layer option has been added to the collapse dialogue.
This means that the user can customize a layer with specific controllers and then collapse to it. It will also allow users to collapse animation to a Relative layer and this opens up a very interesting workflow of collapsing Motion captured walk cycles to a relative layer following an CATMotion layer. This new layer can then be synchronised with the CATMotion layer
We now have the ability to bake the selected layer into the rig.
New RCM interface saving and loading clips and poses.
When in animate mode, you can now right-click on any bone in CAT to save and load poses and animation.
Copy/Paste Layers made scriptable.
Layer controllers now return their weights controllers and and the layer root controller as script properties.
GetEffectiveWeight added to WeightsControllers. Weights controllers now include script functions for querying the combined layer weight for that weights controllers taking into account the hierarchy of weights controllers.
All layer scripting methods are now available on the CATParentTrans. For CAT3, all scripts need to be written accessing the CATParentTrans instead of CATParent, because XRefed rigs won't have a CATParent.
A new 'SelectedLayerController' script property added to CATClipValue
A new 'Weights Controller' property has been added to CATClipValue
copying and pasting layers between rigs that had different combinations of Limbs, arbitrary bones, tails and spines would often cause crashes, but this has now been fixed.
The Gimbal Gizmo has been disabled on CATBones now. You can still use it but the axes won't represent the actual gimbal settings of the Euler Controller. This was because the gimbal system did not work with CATs inheritance scheme. The gimbal axes were therefore always wrong, and cause much confusion. At lease now, rotations will occur around the axis you have chosen.
Target align could be broken and make the foot behave oddly. The values could be made to go outside the valid range of 0..1. Now it is fixed.
If a layer were configured to ‘Remove Displacement’ using the Transform Gizmo, then blending between layers would cause the characters position to jump. This is now fixed.
If there was a constraint on the limb bones, and then retargeting was turned on for the limb, then an infinite loop was generated in the code, and Max would crash instantly. This has now been fixed.
Undo Redo adding removing Layers would sometimes cause a crash. This is now fixed.
When a layer stack had many layers in it. For example over 100 layers, the layer system would pause for long periods of time when layers were added, removed, or moved up and down the stack. This has now been improved greatly and so layer stacks of over 100 layers can be modified and the pause has been reduced to 1-2 seconds.
CATMotion received a long overdue polish up for CAT 2.5. No significant updates have been made to CATMotion since CAT1 aside from changes made to hubs motion for CAT 2.0.
hand twist graph added.
CATMotion now includes 3 'Walk Modes'. 'Walk on spot', 'Walk on Line', and 'Path node'.
The new walk mode is 'Walk on Line' which is useful for a variety of reasons.
The artist gets a much better feeling for the movement and weight shift of their character as the characters feet actually plant correctly as it walks off in a straight line.
Game developers can actually export the 'Walk on line' motion directly to their engine. This removes the need to create a path node.
CATMotion now includes controls for gradient and direction.
These are really only useful for walk-on-spot and walk-on-line as the help define cycles that will be useful in other contexts.
Switching to Walk On Spot and back to pathnode, would cause the footprints to be deleted. This is now fixed
Graphs like FootBend, Digit Curl, Spread were inverted on XAligned Rigs
On X aligned Rigs, Digit Spread, and curl were not configured correctly on new layers assigned to the rig. Basically the DegToRad conversion was happening twice and therefore we were getting very little movement back. This is now fixed.
Fixed a bug in CATMotion where when footstep masks were on the knees would pop as the mask started to remove the knee movement.
CATMotion footprints on hubs that contained arms and legs on would not cause the full effect to the hubs motion fotem meaning that rigs were not fitting to ground surfaces accurately.
The Axis order on Euler controllers are now saved and loaded with the clip file.
The clip saver will now save and load INode pointers to objects in the scene, if while loading objects with identical names exist in the scene.
This is really useful for saving and loading constraints that constrain CATObjects to scene objects.
Saving Link Constraints that included a 'Link to World' has been fixed.
Loading clips from character with digits that contained different numbers of bones would cause problems with other parts fo the rig. **The Rig was not skipping the unused sections of the rig file correctly.
Loading clips onto rigs that contained old IKTargets created before CAT2 would crash with CAT2.4 because some information was missing from the IKTarget. This is now fixed.
When clips were loaded with a time offset, the keyframes would be offset 2X because the timing graph keyframes were also moved.
Limit Controllers would not re-load if either smoothing parameter was animated.
If the last character in the script on a script controller was not a newline then the script would not re-load.
Mocap was never our strong point and although we have had studios creating mocap heavy games using CAT, it was never something that I was happy with or enjoyed demoing. The workflow was clunky and unresponsive. The UI was a disaster with spinners and buttons everywhere, and there was very little interactive feedback. We had many problems with Gimbal locking in the Capture animation dialogue and editing Cam files was a very tedious job that only I seemed to be able to do without tearing my hair out.
A new option to "Run Capture Animation" and “Cam file” have been added to HTR and BVH, BIP, and FBX importers so people can simply import the files, or import the file and load a cam file rather than relying on automap.
The BVH Importer now supports more Axis Orders in the source file, although still not all, but I believe we have covered the 2 major ones and therefore 90% of cases.
The Capture animation system has been completely re-written using a new custom controller and constraints.
The user interface is now a nice clean well organized workspace.
This means that instantly after mapping, the user has a scrubable animation giving feedback.
Editing bone offsets now involves simply selecting the bone and rotating it.
We actually have the ability to nonuniformly scale motion on any bone or IKTarget, although due to the lack of user interface this may be an unused feature till CAT3. Maybe a good video tute is all that is required.
Improved Automapping. Automapping can always be inproved.
IKTargets now get mapped to the tip of the palm instead of the wrist and the now get correctly rotated by 180 degrees.
Vicon files now automap quite well, where before due to their odd naming scheme, the would not map at all.
Improved automapping of FBX files.
Bug fixed in the HTR importer that may have caused small offsets to the motion one bone in the hierarchy.
The HTR Importer would sometimes skip the very last line of some HTRs. This is now fixed.
The HTR importer would import data with a 180 degree world rotation. This is now corrected.
HTR Importer made more memory efficient. On large HTR files the importer would simply run out of script memory despite allocating more than enough memory. We may have highlighted a bug in the MaxScript garbage collection.
A batch exporter is now distributed with CAT to stream line game pipelines. This tool has been integrated into several pipelines successfully. We know that every studio has slightly different ways of solving problems and so we need to provide an easily customisable tool that a non-max programmer can tweak to suit their own requirements.
This tool was originally written as a favour for Obsidan who were doing some heavy mocap import using Motion analysyste Mocap studios to do the work. This tool allows many files to be loaded into CAT and provide feedback. It looks and works very similar to the Batch Exporter with reduces the learning curve.
Designed specifically for facial animation, this tool is going to make using CATBones and poses a very good choice for game developers. It compliments our layer system very well.
CAT Now displays a rollout in place of the normal rollout when the machine is not currently licensed. This rollout has a button to launch the license manager. This integrates the license management right into Max and makes it absolutely impossible to miss.
The License Manager can now display more than 6 installations at once
The License Manager can now display more than 6 installations at once.
It was possible in the past to corrupt the max UI by licensing or unlicensing CAT when CAT objects were selected in Max. Rollouts would not be correctly removed, or Max would attempt to destroy rollouts that did not exist.
The Installer now looks up the registry for the Max path, instead of using the default “c:\3dsmaxX\”
The CAT1 dll warning has been removed. It is almost irrelevant now.
The installer has been resized and a new image is being used displaying the new Softimage|CAT logo.
All CAT’s documentation is now an online Wiki.
CAT now links directly to the wiki via a button on the Layer Manager.
Decreasing the number of vertebrae in a spine can cause a crash
Decreasing the number of bones in a limb can cause a crash
Collapsing Layers to a new Layer Causes crash
Saving Animation on layers with Max IK Chains will crash Max
Loading Mirrored Clips may cause the feet and pelvis to not load any animation
Loading Animation data with the animate button on can cause the animate button state to be incorrect
Rigs using Z-Axis alignment may crash when assigning CATMotion Layers
CATMotion Stepmasks don't mask rigcage movement
Pose Mixer requires rig to have IKTargets
This release fully supports Max9. CAT now officially supports Autodesk Max7 8 and 9.
Autobacks no longer trigger the "Demo Save Notice" Dialog on the demo builds on Max8 and 9.
When loading a rig using the browse command, the viewports are re-drawn immediately.
Limbs were inheriting scale off IK Targets. This caused strange popping in the IK Target if the IKTarget had scale values less then 100%
Changing the number of bones in a limb could cause CAT to crash if the selected bone was being removed.
Changing the number of vertebra in a spine could cause CAT to crash if the selected bone was being removed.
Collapsing of layers is now fixed. Previously, the collapse would cause a crash at the completion of the collapse.
Scaling of bones on relative layers is now fixed. Previously the scale would be reset with each scale.
Loading Animation data with the animate button on can cause the animate button state to be incorrect
When you loaded some animation data with the mirror settings turned on, the feet of your character may not have loaded the animation data correctly. The character may have jumped on side and had no animation keyframes on the feet or pelvis. This bug is actually in the Animation Saver. The animation data was not saved correctly due to a minor bug.
The CATMotion preset saver, and the Clip saver can now save and load cycles with welded/unwelded limb values. This means that if you have created an asymmetrical walk cycle, the saver can save and load this cycle correctly.
If you are working on a rig that is set to Z-Axis alignment, then add a CATMotion layer you may have experienced a crash if your rig contained fingers.
Capture Animation rewritten to use NET ListView controls.
Batch processing of files fixed.
New button added that links to the Wiki help page for this utility.
Automap MaxScript memory allocation bug fixed.
Batch Importer rewritten to use NET ListView controls
New button added that links to the Wiki help page for this utility.
Batch Exporter rewritten to use NET ListView controls.
New button added that links to the Wiki help page for this utility.
Double clicks now load pose in 'absolute' mode.
On characters with limbs that did not include IKTargets, the pose mixer was crashing.
New button added that links to the Wiki help page for this utility.
HTR importer keyframe creation bug fixed.
The Importer now creates skeletons that are more closely aligned to that of your CATRig. For example, if your CATRig is X-Axis aligned, then the importer now creates X axis aligned HTR skeletons. This makes the mapping process a lot simpler when using Capture Animation.
Bip File importer height parameter fixed.
The installer now gives you the opportunity to install plugin file and/or example files. This means that for an experienced user, or when installing on a render node, CAT can be installed with only the essential files.
With changes in the folder structure for Max 9, the installer for CAT now puts all example files in the user folder for the currently logged in artist. This means that if another user logs in, then that artist will not have any example files and will be required to re-install the sample files.
Changes in CAT 2.52 from CAT 2.51
The Upper arm was not inheriting scale correctly off the collarbone. X axis scale values were being inherited on the Y axis.
The procedural spine was not interpolating scale correctly as it did in 2.5. Each bone now applies a scale value that is the interpolated values of the base and tip hub.
If a bone had an FK offset in any axis apart from the length axis, then the IK solution would start behaving strangely. This was because, the direction vector for the bone was always assumed to be the length axis of the bone. Now the IK system calculate the direction vector based on child offsets.
When limbs were being stretched using stretchy mode, the ankles would no longer solve correctly. This was because each bone was not applying the stretch value to the bones length when calculating the ChildIKTM that the next bone based its IK solution on. So the Palm/Ankle thought it was further away from the IKTarget than it really was.
We now have a 'Load Rig' button and a 'Save Rig' button. This is to simplify the user interface for beginners. It is clear how to save a rig because the button is immediately in front of the user.
The 'Move IK Target to Palm/Ankle' button would not work if there was a link constraint applied to the palm or ankle.
Often the file browser on the right-click menu would not fit onto the Load Pose/Clip rollout. Now it resizes to fit the UI.
Pasting of poses or animation was causing problems on Max 9 builds. Once a pose was loaded, a small helper was left in the scene that displayed ghost of the rig. Eventually the performance of Max would degrade.
The Clip Loader could not load mirrored/transformed clips
The Clip Loader was mirroring clips on Z-Aligned rigs incorrectly.
Keyframes that landed exactly on the start time or end time were often not being saved correctly.
The clip save now correctly saves and load LookAt controllers and any controllers that contain parameter blocks.
We now save a pose value at the start of each sequence and at the end. This ensures that the pose is matched, even if loading into an existing set of keyframes.
CATMotion was having trouble with spines that pointed backwards. So if a spine had its Projection Vector rotated by 180 degrees the spine would not be able to work in CATMotion.
CATMotion now assigns stepping motion to all IK Targets. This means that its easy to do quadrupeds. Simply create the IKTarget and add a CATMotion Layer.
Creating Rigs from script would not work if the viewport was not redrawn between the CATParent being created and the rig file being loaded, or the 1st hub created.
Accessing the CATName parameter on the CATParent under Max 9 would give inconsistent results. This was causing many of the utilities written for CAT to not perform correctly.
The script functions for pasting rigs now has a mirror parameter.
The 64 Bit version of CAT had a serious problem with loading new rigs created in the 64 bit version. Old rigs would load ok, but new rigs would crash.
When de-authorizing offline, the License Manager now remembers your de-auth details. This means that if you do not send the de-auth details to the server immediately, you can still do this later. A common problem with the license server is that users would de-authorize locally and not send the details to the server. This would effectively break their licensing because their machine would be de-authorized, but our server would not have been notified and therefore the license was not free to be re-authorized on another machine.
The installer could be confusing to run. Previously on 3dsmax 9 builds, the installer would allow the user to specify 2 paths. One for the 3dsmax installation directory and one for the user folder. It appeared that the user folder directory was optional and customers would often browse to a different location.
Now the installer displays a group box around both paths and the install plugin checkbox to illustrate the connection between the plugin installation and the 2 paths.
The user folder path is not never disabled as it is required for both the plugins installation and the sample files.
Changes in CAT2.521 from CAT 2.52
This release was mainly to fix one bug that was released in CAT2.52. This bug appeared close to the release date and was not picked up before we released CAT2.52. We do our best to avoid releasing bugs in our tools, but if bugs are found, we respond quickly.
Accessing the LengthAxis parameter on the CATParent would return a corrupt value. Many tools used this value and so these tools were not working correctly.
Some times CAT would crash when closing down files. This crash was never reproducible but occurred randomly.
Setup Controller
Layers can now have a setup controller rather than just a value. We would expect users to only put procedural animation onto the setup controller rather than animate with keyframes as this violates the principle of SetupPose being static. Now any complex procedural animation can be configured onto the 'Setup' or 'Base' controller.
Foot Roll reaction controllers
Spring secondary dynamics for tails and ears
Auto ground surface collisions
Tail can be pre-configured with spline IK
Extra Rig Nodes
We have the ability now to add any extra bit-n-pieces on to the rig so that they get save/merged/deleted with the rig. This is going to allow us to save all sorts of things like muscle configurations and
skin meshes with a rig.
Skin Meshes
Muscle Configurations
Props
New Rig Saver(*.RG3)
We have a new rig preset system that actually saves an entire scene file containing the rig. We do some cool stuff like temporary un-parenting the CATBones form objects in the scene that they are parented to, and also making the whole layer system pretend that its empty so that the saved scene file contains just the rig and no animation.
Re-loadable RG3 Rig Presets
It is now possible to reload rig presets onto existing rigs to update the rig in a scene with animation. This work flow allows you to update many scenes with changes to your rigs. This is a far superior system to using XRefs to manage updating CATRig changes.
Update rigs in scenes with new rigs as changes are made in the rig file
Swap Hi-Rez versions with Low-Rez and vice versa to enable faster animating.
Scene files can automatically reload rig presets whenever changes are made to the rig preset.
Animators can start working before the final rig is ready for use. New changes will be carried through to your scene
We now fully support X-Refs in Max
This was achieved by moving all functionality off all the objects. Each object now simply displays itself, but performs no actual calculation. The CATParent object was the biggest change with many functions being moved onto the CATParentTrans.
Real Limits on all CATBones
In the hierarchy panel now we have sets of limit values that are applied .
IK UpVectors
Now CAT includes the option to pick an up-vector
Palm/Ankle Tip Pivot Control
The Palm now contains a user positionable marker that defines where the ankle pivots when it gets rolled. Right now it always pivots around the tip of the palm, and this means that the ankle always must be on some weird angle aiming at the foot platform. Biped allows the ankles to be flat and I now think that this is a good idea.
CATMuscle Part of CAT3
CATMuscle is now part of CAT3. This means we have real tendons and surfaces.
Polygon Skin Patches
Bone Skin Patches
Muscle Primitives with squash and stretch
New Inheritance Settings on Bones
Bones now have Inheritance options for Animation now as well as Setup Mode. It is possible with only one toggle to disable position, rotation or Scale inheritance for the entire bone including all layers.
Very useful for creating COG nodes that are the parent of the hierarchy and yet driven by the hierarchy
Disabling Scale Inheritance for all layers at once
It is now possible to remove a spine from a hub
This means it is possible to have simpler characters with no spine separating the 2 hubs. Simply set the number of bones in a spine to 0, and then deselect.
CATParent has a new default mesh that indicates the forwards direction
Previously, it was very ambiguous which way a rig should point when creating a CATRig from scratch. This is because the CATParent had no defined forwards direction.
CATParent now supports custom Meshes
This means it is possible to have simpler characters with no spine separating the 2 hubs. Simply set the number of bones in a spine to 0, and then de-select.
Stretchy Mode was removed and instead each bone has its own stretchy setting for animation.
The CATMode Button was changed from a fly-out to a standard toggle button to toggle between 'Setup Mode' and 'Animate Mode'
Pasting rig setting now maintain the scene size. So if you copy an arm off a big character and paste it onto a small character, the small character will get an arm the same size as the big character
Legs now default to a length that is fits the height off the ground of the hub. This means that the default legs will not dangle if the hub is high.
Hubs would automatically rename themselves when being deselected from the Modify panel. This no longer happens
Baking Layer configuration
Each layer controller can save a mini clip file that defines all the settings for that layer. When a new layer is assigned, the clip file is parsed and all setting loaded onto the new controller. This allows TDs to configure limit controllers and customize controller types or their Euler orders.
Layer Stacks relative to Setup Pose
each layer controller can now configure the entire layer stack top work relative to setup pose. This allows bones animation to be independent of the pose of the bone. Collarbones and Ankles should be set to work relative to setup pose to allow more seamless sharing of animation between characters.
New Layer Collapsing Tool A new layer collapsing tool has been written with many new features
Preserve Source keyframe times
Keep constraints
Plot constraints to keyframes
A new Layer Manager
A whole new layer manager has been written. It is accessible from the CAT menu and from the layer manger for each CATRig.
Enable/Disable/Remove/Move multiple layers at once
Re-sizable window
Compact and Cleaner interface
It was not possible to copy and paste CATMotion layers. Now it is possible to copy and paste all types of layers
Often the file browser would not fit onto the Load Pose/Clip right-click-menu rollout. Now it resizes to fit the UI.
Pasting of poses or animation was causing problems on Max 9 builds.
The Clip Loader was not loading the CATMotion Layer weights correctly when loading
When the start time was offset from frame 0, keyframes were begin created at time zero making the time range bar ineffective in the Ranges Editor
Mirroring of keyframe animation on TCB rotation controllers was not working correctly. This cause many problems including making it impossible to mirror collapsed animation, or mocap animation as these layers use TCB rotation controllers.
Saving 'Link Constraints' that included 'world' targets would crash the clip saver. This now works correctly
When clips or poses were loaded using the right-click menu, the transform offset was not being displayed correctly in the floating rollout. Initially all the values were set to 0. This is now fixed.
Saved clips did not include the time range specified in the transform node.
Clips were not saving position constraints, or orientation constraints, or path constraints correctly
CATMotion
Any bone attached to a limb can be made into a stepping object.
For example, select and arm bone and add another extra bone. Unlink this bone from the arm and then add a CATMotion layer. The new bone will take steps at the correct time and distance as the rest of the character.
Walking Sticks
There are new Scale and offset spinners on the CATMotion graph pages
The Clip Loader was not loading the CATMotion Layer weights correctly when loading
When keys were moved in the CATWindow, multiple undo's were being registered.
A new utility called the 'Rig Resizer was added. This is for making complete CATRigs bigger or smaller quickly to fit new scenes.
Resize whole rigs including skin meshes and animation.
Resize animation on a rig without changing the rig.
Weights Controllers now expose a method "GetLayerController" to access the individual layer weight controllers.
Many script operations to the Layer Stack did not force and update the layer Manager rollout
Remove Layer
Move Layer Up/Down
The pose mixer was not working on limb bones. Now it can blend transforms on any kind of CAT bone
The new CAT3 License manager is now distributed in this build allowing management of both CAT2 and CAT3 serial at once
The licensing in CAT3 has been modified to only be tied to the machine name. This makes the licensing independent of any hardware.
Previous to CAT3, the licensing was tied to both your network card and your hard drive ID. If any changes happened to your hardware, the licensing would break. Now, the licensing is tied only to your machine name. If your machine dies, they you can rebuild a new machine with the same name, and register CAT. The same license will be re-used.
When the license manager was opened from within Max using the Licensing rollout, then the licensing would fail, and then the User would be stuck with duplicate machines on their computer but their computer would not actually be authorized.
It is now impossible to have duplicate machine names on one serial in the CAT database.
The licensing system has been made much more stable.
Now the installer performs no authorization and simply copies the files onto the computer. There is an option to run the license manager at the end of the installation process
New Root Node controller has been added. This gizmo is intended for Game developers who need one bone at the root of their entire hierarchy. This object can be used to re-position the rig, and also always maintains its position beneath the rig. The hub and feet do not inherit motion off this object as it is procedurally controlled by the hub and feet.
New Root Node controller has the ability to rest on the ground, or track the bottom of the character rig.
New reset Transform feature available via right-click menu. This resets the bone to the setup pose values.
New Bake Pose feature available via right-click menu. This saves the current pose to the current active layer. Allows selection of any number of bones for baking.
The Layer Transform node now allows for assigning of controllers to the contained PRS controller. This is really useful for constraining layers to objects to simulate parenting.
The UpVector node was not exposed to script. This was stopping the Capture animation system from using the UpVector.
The UpVector node was being assigned the name 'IKTarget, now it is renamed to 'UpVectorNode'
If a rig had layers with transform nodes, then saving and loading an RG3 file would cause a crash.
Bones linked to non-CAT bones would fall to the ground in SetupMode.
The RIG file saver was not saving UpVector values
If a rig contained UpVectors, but not IKTargets then the UpVectors were broken and would eventually crash.
Rig updating issues were cleaned up. CATMotion layers were not updating on rigs with different topologies.
The new Setup Controller feature did not allow for scale values to be generated from the setup controller. Now, if the rig is not in setup mode, and the bone is set to be relative to setup value, then the scale values are allowed to propagate from the setup controller
Fixed a bug in cloning rigs causing a crash during clone.
The floating layer manager window would display the layer names in the incorrect order.
If a bone has a locked channel for example position, and a layer is pasted onto the character, the locked channels are no longer pasted.
Many optimisations to speed up interaction with the layer manager.
Layers pasted above the layer in the same layer stack it was copied from did not past correctly. the controllers were in fact copied from the layer above the copied layer.
Saving a pose to a layer that had a pivot controller with pivot offsets cause the foot to to jump.
Pasting layers on to rigs that do not contain Upnodes causes them to be automatically created.
A time warp curve now require 2 or more keyframes to have any effect.
Pasting Relative Layers caused offsets to be accumulated
The 'Remember Layer Settings' feature was sped up significantly
The Ranges editor was broken and this is now fixed
Fixed a bug whereby new layers default to garbage values in very special cases. In cases where a bones transform is exactly 90 degrees different from its parent, new layers sometimes contained garbage value resulting in the bone disappearing once the layer was added.
fixed a bug in foot pivot controller where replacing the rotation controller caused a crash
The remove displacement feature where the remove displacement feature did not work correctly when rendered, or in some cases exported to game engines.
fixed a bug in the remove displacement feature where on some configurations the rig would pop at the start of the animation sequence.
The clip saver was not saving controllers with no keyframes.
Saving clips on characters with FK spines would cause a crash.
The Clip Saver was not saving UpVector values
The Clip Saver became incredibly slow on rigs with large layer stacks.
If a timewarp curve contained no keyframes and a clip was saved and then loaded, the re-loaded timewarp curve contained one keyframe that caused the timewarp curve to stop the layer from playing back
Clip and pose files would break facial rigs when loaded using the mirror option. The bones on the face would swap sides. Now the bones will stay on the correct side as long as the Copy and Paste feature has been used at some point to defined the mirror relationship.
List controllers now save and load correctly including the list item names and the active item. This means that the new 'Freeze Transform' feature saves correctly
The UpVector node was not exposed to script. This was stopping the Capture animation system from using the UpVector. Now the Capture animation feature works with the UpVector nodes
The Capture animation tool was not loading Tails into the list view
The FBX importer now defaults the FBX importer dialog to the correct values
The FBX importer now does not automatically load the last used CAM File.
When a CATMotion layer was copied and then pasted, the copied layer got broken and required and update. This is now fixed.
Step masks were not working in CAT3. The motion of the legs would continue to work when the motion was supposed to be masked.
Typing in values to the Scale and offset spinners would not save an undo.
typing in values to the scale spinner would not cause the spinner to be reset to its default state
Fixed bugs relating to copying and pasting CATMotion Layers between rigs of different structures
Saving Animation clips now saves the walk mode for the CATMotion layer
The Pose Mixer now supports Scale in the bone poses.
If a bone's layer stack is set to be relative to to Setup Pose in the hierarchy panel, then the pose mixer could not be used to load poses onto a relative layer on that bone.
the Batch Exporter would not enable and disable the correct layers for a batch export operation.
The Rig Resizer script was crashing on the 64 bit version of Max because it was still using ActiveX controls that at not supported by Vista
New exposure to Root Node. Allows to create the new root node via script, and retrieve created root node
The UpVector node was not exposed to script. This was stopping the Capture animation system from using the UpVector. Now the Capture animation feature works with the UpVector nodes
The Badly named 'Relative Bone' property was renamed to 'AdditiveToSetupMode'. This refers to the checkbox in the hierarchy panel that makes bones work relative to SetupMode.
If bones had used Extra Layer controllers in CAT 2.5, and these controllers were deleted, then opening the files in CAT3 could cause a crash when certain manipulations happened. This includes selecting a different layer in the layer stack.
The License Manager now has an option for allowing totally unlicensed version of CAT. This means you can work on scene files that contain CAT Rigs, and not be bothered by 'Save Warning' dialog boxes
The About box was not displaying the correct serial number in the 64 bit version of CAT
Due to an upgrade to Visual Studio SP1, we are now installing a Microsoft Patch to ensure CAT continues to load on older installations of Max.
CAT now supports 3dsmax 2008
CATs installer now detects the correct location of the 3dsmax installation on 64bit versions of XP and Vista

Pose Mixer Video Download and watch the video tutorial.
This video covers working with the Pose Mixer. Setting up rigs, saving poses and then reloading them onto your rig.
Pose Mixer: Complete documentation on the Pose Mixer tool.
![]()
This video covers working with the Capture Animation utility. Setting up Capture animation Mapping presets saving and then transferring animation between rigs.
Capture Animation: Complete documentation on the Capture Animation Tool.
Sometimes you just want to find out how to do something, without wading through the entire guide. This section is for that purpose.
How Do I Use CAT's Non-linear Animation System?
How Do I Create Walk Sequences?
How Do I Reuse Animation with CAT?

Robot courtesy of Yu Nagasima
Load an existing CATRig Preset?
Remove elements from my CATRig
Create a layer to keyframe into
Create a layer to tweak existing animation with
Blend between animation layers
Edit the speed and direction of an animation layer and set the Looping options
Transform an animation layer in the viewport
Collapse the layer stack to one layer
Edit my curves in the Curve Editor?
Create an IK target for an arm?
Move my arm in IK and rotate the palm with FK at the same time?
Pin my ribcage so I can adjust my pelvis without affecting it?
Edit procedural motion (CATMotion) in CAT?
Switch on Walk on Spot (to assist with editing your walkcycle)?
Assign a Path Node (to drive your character around the scene)?
Control the stiffness of a horizontal (quadruped) spine?
Show, hide, and reset footprints?
View the output curves for a rig element (e.g. IK target for leg)?

Image courtesy of NHNZ
The CATRig is the hierarchy that defines the CAT skeletal animation system. It is a highly sophisticated character rig that has been designed so that you can create the characters you want without having to code yourself. The fact that it is mostly written in C++ rather than script means that it is very fast, and includes many features that would be impossible to create using script.
To make the system as flexible as possible we have done our best to keep the system as generic as we can. This is immediately obvious with CAT's modular component structure. A spine could also be a neck. Instead of pelvises and ribcages, CAT has hubs.
Different rig elements can be added and removed from a rig to get the exact skeleton you need for your production.
All rig elements have different functionality built in. For example all limbs have their own, sophisticated IK system built right in; spines have their own powerful procedural spine algorithm; hubs have a system called retargeting, etc.
Each rig also has its own layered animation system, procedural walkcycle system, and clip/pose system. In addition, CAT comes with a number of utilities to manage things like importing, exporting, motion data mapping and ragdoll (physics) setup.
Customising the Geometry on CATBones
Configuring the Hierarchy Options
Editing your Rig Interactively in the Viewport
A CATRig can take any form you require. It can have as many spines, heads, pelvises, limbs, fingers, toes and tails as you could ever want. In CAT2 you can now add extra bones too.
CAT comes with a library of rigs of everything from humans to horses, insects and robots.
CATRigs can be created from scratch, but usually it is easiest to load in the rig closest to your requirements and edit from there.
Once you are happy with your creation you can save it as a new preset for reuse later on. This approach has been used right across CAT. Load in the preset closest to your requirements, edit it to suit your purposes and then save the result out as a new preset.
Using CAT you can create the rig you need, in very little time. CATRigs come with their own inbuilt IK system, as well as easy to manipulate spines and tails. Advanced digit controls make it easy to position fingers and toes. By default legs are created in IK; arms in FK. All limb bones can be segmented for twisting bones. Segment twist weights are spline controlled.
Even in Setup Mode the rig is set up so that it can be manipulated intuitively. The arms are in FK and the legs in IK. The pelvis, ribcage and head can all be moved and rotated as expected.
During setup CATRigs can be resized without breaking IK setup etc; perfect for merging files. Resizing is deactivated once an animation layer is created to prevent problems with existing animation.
Tip:
CATRigs can be created from scratch, but usually it is easiest to load in the rig closest to your requirements and edit from there.
[Creating and Editing CATRigs video (http://www.catoolkit.com/support/videos.asp?vID=30)]
Go to the Create panel.
Click Helpers.
Choose CATObjects>CATParent.

Select a preset from the list.
Click in a viewport.
The selected rig will appear in the viewport.

Marama CATRig Preset
In addition to clicking in a viewport you may also drag. When you drag to create a CATRig, the length of the drag will be approximately the same as the CATRig’s initial height. The initial width and depth will remain proportional to the height.
In the Create panel the Character Setup rollout shows the CATRig's basic parameters.
Character Setup rollout
During creation you can change the parameters. Otherwise, like all 3ds Max objects you can edit the creation parameters in the future by selecting the CATParent object and going to the Modify panel.
Tip:
CATUnits Scale and Bone Length Axis cannot be changed if an animation layer is present.
Go to the Create panel.
Click Helpers.
Choose CATObjects>CATParent.

Don’t select a rig from the list. If you already have a preset selected in the list box, select (None). Now click and drag in the viewport.
A CATParent is created.
With the CATParent selected go to the Modify Panel.
Click Create Pelvis down the bottom of the Rigs rollout.

A pelvis will appear in the viewport at the default size.
Select the pelvis and go to the Modify panel.
For more information on the Hubs user interface see Hubs
In the Hub Parameters rollout you can add Legs, arms spines, tails and extra bones as required.

Press Add Leg twice

Press Add Spine
Select the hub at the top of the spine

Press Add Arm twice
Press Add Spine
Select the hub at the top of the new spine
Use the move command to reposition and resize the new spine

You will now have a very basic CATRig. All of the example CATRigs have been created using these tools and you can see that you are able to create a vast variety of CATRigs.
You will find that this system allows you to quickly create any rig structure you want.

CATRigs with customised geometry
All of the bones in CAT can have their geometry customised and these edits can be baked into the bone mesh. These edits also get saved to your rig preset allowing you define complex rigs with customised geometry and load these presets into new scenes.

To edit the geometry of your CATBone, you simply need to apply any modifier to the bone and begin editing. You can change the topology of the mesh, or even delete the mesh, and assign a whole new one.
Tip:
You can use the 'attach' command on the Edit Mesh modifier to copy the mesh of a different object in Max.


Once you have finished editing the mesh, you can simply collapse the stack using the modifier panel, or the right click menu in Max.

The 'Use Custom Mesh' setting gets turned on to show that the bone is now using a custom mesh.
Tip:
To revert back to your old mesh, uncheck the 'Use Custom Mesh' checkbox
Elements are removed by deleting. Deleting an element will delete it, and all bones that are part of its local weights group. For example, if you delete a limb, all the bones in the limb, and the IKtarget, and any extra bones that have been added to the rig regardless of whether they have been re-linked to other parts of the hierarchy, will be deleted.
Delete the CATParent.
Or:
Delete the pelvis (root object).
Select any part of the arm and delete.
Delete the spine, or the ribcage.
Select any part of the digit and delete.
Note:
Individual rig elements can only be deleted in Setup Mode. When in Animation Mode if you select any part of the rig the whole rig will be deleted.
CAT does not define any particular naming scheme. Instead, each rig preset contains a different naming scheme. It is very easy to modify the naming scheme to suit your own productions requirements.
Each bones name is defined by the combination of the CATRigs name, and name of any group the bone belongs to and also the bones local name. Of course, you can set any of the name fields to blank and then this fields will have no effect on the final bones name.
$<CATRig Name> + <Limb Name> + <Bone Name> + <Bone Seg Name>
The default names given to bones when you create a rig from scratch are only intended as a basis for you to modify and define your own naming scheme.
CATRigs are created with their allocated preset name. If you want to have more than one of the same CATRig preset in a scene it is a good idea to give it a unique name.
To change a CATRig name:
Select the CATParent, go to the Modify panel and enter a new name in the Name field in the Character Parameters rollout.
The CATParent is renamed and the entire CATRig hierarchy inherits the new name.
Important Note (Q&A):
lupusanimation:
Q: I have just found a very frustrating bug with a rig I have been working on. It seems that when I use a muscle strand, and link the start and end controllers to a bone in the CAT rig, I find out some time later, that the CAT bones start to rename themselves and take on names of the muscle strand end controllers. This is causing me no end of trouble with the skin modifier.
I can try to type in the name the CAT bone should have, but the changes do not take. I have tried starting from a new rig, making sure all bones have the correct names. Get things linked up, everything looks like it is correct, but at some point after the skinning begins, I will find that the bones start to rename themselves.
Any clue what could be causing this?
This is actually not a real bug, but an update issue with the naming system in CAT. Are you renaming the bones correctly? Do you type in the name in the default top dialog of the Modify Panel or in the corresponding name box in the CAT rollout?
CAT bones need to be named in the CAT rollout, not in the top dialog of the Modify Panel. It doesn't make any sense to name them there, because each time the rig is being updated anyhow, the name is being generated from the internal CAT system and will overwrite the top dialog of the Modify Panel, actually the name in Max. So always rename your bones in the CAT rollout.
$<CATRig Name> + <Hub Name>
Each limb has a name parameter that you may wish to fill in with an appropriate name.
When you add an arm for example, the new arms limb name parameter defaults to "Arm"
Limb bones can be divided into segments, and each segment should have a unique name.
Each bone will be assigned a name according to the following scheme.
$<CATRig Name> + <Limb Name> + <Bone Name> + <Bone Seg Name>
If you would like your Right upperarm bone to be called
$"FredLUpperarm"
Then you should name the CATRig "Fred", and enter "L" in the the limb name field, and enter "Upperarm" in the bone name field.
When the names get added together the following will result.
"Fred" + "L" + "Upperarm"
Each bone segment can have a customised name too. The Bone Seg Names only become valid when youhave more than one bone segment. The bone seg names default to '1', '2', '3' etc, but you could change this to 'A', 'B', 'C' etc..
The palm or Ankle stores a local name that gets added on to the CATRig name and the Limb name.
$<CATRig Name> + <Limb Name> + <Palm/Ankle Name>
Digits are made up of a hierarchy of bones that are all connected together with one digit controller. This is much the same way that limbs work. The digit controller stores a name for the entire digit, and each bone in the digit also stores its own local name.
$<CATRig Name> + <Limb Name> + <Digit Name> + <Digit Bone Name>
The Tail is made up of a hierarchy of bones that are all connected together with one tail controller. This is much the same way that limbs work. The tail controller stores a name for the entire tail, and each bone in the tail also store thier own local name. Each bones name is the result of adding together the CATRig name and the tail name and the bone name.
$<CATRig Name> + <Tail Name> + <Bone Name>
Extra Bone names are much simpler than other body parts. Each Extra bone stores its own name, and this gets added on to the CATRig name.
$<CATRig Name> + <Extra Bone Name>
The Spine is made up of a hierarchy of bones that are all connected together with one spine controller. The spine controller stores a name for the entire spine, and each bone in the spine also stores its own local name. Each bones name is the result of adding together the CATRig name and the spine name and the bone name.
$<CATRig Name> + <Spine Name> + <Bone Name>
Every body part on a CATRig can be copied and pasted from one body part to another on the same rig or on different rigs.


Press this button to copy the settings of selected bodypart ready for pasting.

Press this button to paste the settings of the copied bodypart on to this body part.

Press this button to paste the settings of the copied bodypart on to this body part but mirror the setting during the paste.

Manipulation Gizmos give you a much cleaner interface to work with your character. Often times, the CATBones are submerged under the skin mesh, and therefore selecting and editing these bones becomes a real headache.
Once gizmos are applied, all the user interface elements of the CATRig get displayed on the Gizmo. All the keyframes that get created on your CATRig will show up on the timeline when you select the gizmo. Even all your script calls will work on the Gizmo. When you right-click on a Gizmo, you get all the normal right-click menus that the CATBone should have.
2.2 Creating Custom Gizmo Hierarchies
2.3 Defying the laws of Circular Dependencies
2.4 Adding to the list of Gizmos
2.5 Removing unwanted Right-Click Menus

If your CATRig is in SetupMode and you Right-Click on any CATBone and you will get the option to apply a Gizmo.

A list box will be displayed with a list of preset Gizmo shapes.

You can edit the Gizmo Settings to fit the size an shape of your character skin mesh.

Once you are done, simply press the 'Apply' button and your gizmo configuration will be complete.
You can delete a Gizmo, by selecting it and pressing delete. The CATBones that is was manipulating do not get deleted.
It is not necessary to link Gizmo objects to any part of the CATRig, although if you wish, this is not a problem. Often it is more interesting to link the gizmos together.
You can create hierarchies of Gizmos that reflect your desired navigation of the rig, rather than the actual hierarchies of the CATRig. You can link the ribcage gizmo directly to the Pelvis Gizmo and then quickly navigate your rig using the PageUp and PageDown buttons.
You are able to Link Gizmos together in ways that would normally cause a circular dependency in Max. You can, for example, link the Gizmo for the FootPlatform directly to the Gizmo for the Ankle without causing a circular dependency.
The List of Gizmos that gets displayed in the Gizmos list box is simply read out of a Max file called Gizmos.max. You can open this file and you will see a selection of shape objects. You can add your own Gizmos to this file and resave it to add to the list of predefined gizmo shapes. Any kind of object can be used as a gizmo.
CAT uses the Right-Click menu in Max heavily to augment its workflow. If you assign a Gizmo to CAT that is an editable spline, has an Edit Spline or Edit Mesh modifier at the top of the stack, or any other object with any Right-Click menus, then you will see that whenever you right-click on your Gizmo, you will have many right-click menu options that you are unlikely to want to use. The simplest solution to this is to assign a push modifier to the top of the stack. Any modifier with no right-click menu options will work. Now when you right-click on the Gizmo, you only get the CAT menus.
Every Bone in the CATRig has a selection of controls that defines how it can be manipulated and how it inherits motion. Select a CATBone, go to the 'Hierarchy Panel', and choose on the 'Link Info' option.
The settings and locks in the hierarchy panel allow you to configure a rig to be saver and more robust while animating. You can stop an animator from moving and editing bones in ways that are undesirable for the rig by simply changing a few settings. It is a good idea to look at the existing CATRigs that get distributed with CAT and look at the settings on different bones to see how they effect the manipulation of the bones.
The Hierarchy Panel Rollout for every CATBone
Apply Transforms: This toggles whether this bone is effected by transform Gizmos. Bones that have no parent usually need to have this option turned on, and bones that are a child of other CATBones should have this option turned off. These bones are usually the root hub, and the IKTargets.
When the transform gizmo is used to move the animation of a layer, child bones in the hierarchy do not need to be transformed because they inherit the transformation from their parents. See Layer Transform Nodes
Display Onion Skins: You can turn on onion skins for any CATBone. This makes the CATBone display onion skins in the same way that the Max onion skins work. The only difference is that
Position: This toggles whether the bone inherits position from its parent or from the CATParent in setup mode.
Rotation: This toggles whether the bone inherits rotation from its parent or from the CATParent in setup mode.
Position: This toggles whether the bone inherits position from its parent or from the CATParent in animation mode.
Rotation: This toggles whether the bone inherits rotation from its parent or from the CATParent in animation mode.
Scale: This toggles whether the bone inherits scale from its parent or from the CATParent in animation mode.
Manipulation Effects neighbours in Hierarchy: Determine whether this bone will effect neighbouring bones in the hierarchy.
Position: This means that in Setup Mode the position of this bone is locked. When you try to move it, it will not move, but try to move its neighbours if 'Effect Hierarchy' has been turned on.
Rotation: This means that in Setup Mode the rotation of this bone is locked. When you try to rotate it, it will not rotate.
Scale: This means that in Setup Mode the size of this bone is locked. When you try to scale it, it will not re-size.
Manipulation Causes Stretching: Determine whether this bone will stretch when it or one of its children are pulled.
Static Matrix: By default, SetupMode is totally static, and the pose that the character returns to when in Setup Mode it defined by this matrix.
Animation Controller: You can set your bones to use an Animation Controller to define
Lock Local Position: This means that in Animate Mode the position of this bone is locked. When you try to move it, it will not move, but try to move its neighbours if 'Effect Hierarchy' has been turned on.
If you are working on a bone that you do not wish to move during animation then you should turn this lock on. The means the if an animator accidentally tries to move the bone, then it will not allow the movement. This setting also effects the Capture Animation utility tool and they way it maps animation onto this bone.
Lock Local Rotation: This means that in Animate Mode the rotation of this bone is locked. When you try to rotate it, it will not rotate. This setting also effects the Capture Animation utility tool and they way it maps animation onto this bone.
Lock Local Scale: This means that in Animate Mode the scale of this bone is locked. When you try to scale it, it will not scale. It may be a good idea to lock the scale on bones that you do not wish to be scaled during animation. This means that if an animator accidentally scaled the bone, then the CATBone will ignore the scaling.
Manipulation Causes Stretching: Determine whether this bone will stretch when it or one of its children are pulled.
Additive to Setup Mode: This toggle means that all the layers in the layer stack work relative to the Setup Pose. During evaluation this is what happens...
Bone Pose = 'Setup Mode Pose' + 'Layer Values'.
Remember Layer Settings: Pressing this button saves the current layer configuration to the bone. If you want a bone to use a particular combination of controllers, you can simply setup the desired configuration, and then press this button. The bone then saves that configuration, and then whenever a new layer is added, the bone reloads that configuration.
Note:
This only works on Absolute layers now.
Note2:
This does not work with Reaction controllers. Reaction controllers are not accessible via the SDK and so it is not possible to save and load them using CAT's animation saver and loader. If you wish so set up reaction controllers, please set them up using the 'Animation Controller' setting in the 'Setup Mode' group. You can set up a reaction controller on the Setup Controller, and then toggle on the setting 'Additive to Setup Mode' in the 'Layer Settings' group. The new RG3 file format will save and load the reaction controllers with the rig.
Note3:
You can setup limits using the new 'Limit Controller' that was introduced in Max8. You can limit your values manually, and then use the 'Remember Layer Settings;' to make the bone remember these limits values and reapply them each time you add a new Absolute layer.
It is possible to set up joint limits using CAT that are independent of the layers. the benefit of using the CAT limit system is that you can limit any kind of controller. You can limit constraints for example. You could assign a look at constraint for your eye controllers on their setup controller, and then limit their motion so that they do not turn too far. You can limit TCB rotation controllers, or any kind of controller that you cannot limit using the Max Limit systems.
In this example we have a simple hierarchy of 3 Extra Bones
If we select the green bone and move it along the X axis, it moves as you might expect.
Go to the Hierarchy Panel and turn on the 'SetupMode' 'Position' lock.
Now when you try to move the bone, nothing happens, because the position is locked.
Go to the Hierarchy Panel and turn on the 'Effect Hierarchy' setting
Now when you move the green bone, it's local position doesn't change, but it rotates its parent, and also rotates is self to look at its child.
Select the red bone, go to the hierarchy panel and turn on 'Stretchy Bone'.
Now when you move the green bone the red bone stretches to reach the position of the green bone.
Select the green bone, go to the hierarchy panel and turn on 'Stretchy Bone'.
Now when you move the green bone, both the red and green bones stretch to reach the position of the green bone.
The quickest and easiest way to edit your rig is in the viewport. Simply edit the proportions of the rig by dragging the elements around.
In the case of spines the spine length is edited by simply moving the child hub. The spine stretches to fit.
With limbs it is much the same: move the child element to edit the length and rotation of the element above it in the hierarchy.
Element dimensions can be edited with the 3ds Max's scale function (you will usually want to use non-uniform scale for this). When in Setup Mode the rig elements are not scaled, but rather resized.
Using the methods described above it will be possible to set up the majority of your rig simply by placing the joints correctly into your model, which is much faster then the alternative of incrementally editing the length and orientation of each element in turn.

Select the bone below the joint you wish to edit (in the case, the forearm).

Move the arm joint as required.
The arm bones resize to suit.
Sometimes you need to edit bone pivot positions. This is achieved by positioning your CAT bone relative to its pivot point.
The best way to do this is with the XForm modifier. Simply apply the XForm modifier and reposition the bone as required.
Once your changes have been finalized, you can collapse the Modifier Stack to bake the changes into the bone, as with any other CATRig Mesh edits.
Every CATRig has one CATParent. The CATParent, which is the toolkit symbol seen under each rig as it is created, can be considered the character node of the rig.
All of the elements of the rig are associated with the CATParent. It holds basic information about the whole rig, including its name, size and other basic data.
It also holds the Rig Preset Manager, which allows you to load and save CATRig presets.
The rig is not linked to the CATParent but can be transformed by it when in Setup Mode. Scale transforms are inherited by the whole rig from the CATParent in any mode.

CATName: This edit box allows you to define the name that will be used to prefix all bones in the CATRig. See Using CAT's Naming System
CATUnits Scale: The CATUnits parameter defines a units system for this CATRig. All size parameters on the CATRig that define such things as bone length width and height are in CATUnits. See Understanding CATUnits
Track Display Group: These radio buttons define how the layers and keyframes on this CATRig will be displayed in the Track view. See Track Display Modes
Bone Length Axis: The axis that is being used by the CATRig as the length axis. See Understanding Bone Length Axis
About CAT: Press this to display information on the CAT product.

The CATRig Load Save rollout
The CATRig Load Save rollout displays a list of existing CATRig presets.
Note:
Once a rig has been created the presets are grayed out as you cannot load a preset on top of an existing rig.
'To save a new CATRig preset:
Click 'Save Rig'.
Navigate to the desired folder.
Enter the Rig name.
Click Save.
CATUnits is a number used throughout CAT to scale the character and its motion to allow sharing between characters.
Every bone length in a CATRig is multiplied by CATUnits when it is used. Also CATMotion uses CATUnits to scale the size of the motion to fit the rig.
For Example: If a bone length is 3.5, and CAT units is set to 2.0, then the actual bone length is going to be 7.0.
The height of the foot lift graph in the CATWindow for CATMotion is also scaled by CATUnits.
If you set CATUnits to 1.0, then all the bone lengths listed in the modifier panel are actual max units and CATUnits has no effect on them.
You may be tempted to set CATUnits to 1.0 so that all you lengths are in actual Max units. This effectively disables CATUnits.
This is not recommended because CATUnits provide powerful functionality that you will find useful. CATUnits provides and approximate size setting for your character. A bigger character should have a larger CATUnits setting than a smaller character.
What this means is that if you need to share animation data between the big character and the small character, CAT can scale the motion to fit both characters. It does this using CATUnits.
When you load an animation clip, there is an option to scale the data. This scaling is calculated using the CATUnits values of the 2 characters.
Most default rigs, the CATParent fits comfortably underneath the feet of the character. You should try to build your rigs with CATParents approximately the same scale relative to the skeleton of your character. The easiest way to do this is to use and existing rig and modify it.
By default, CAT only displays the controllers and keyframes for the currently selected layer. This is to simplify the workspace. As you are working on a layer, it is easier to understand the work you are doing if you can only see the keyframes for the selected layer.

Settings for the Track Display mode can be found on the CATParent in the Modify Panel.

Only the currently selected layer is visible in the 'Assign Controller' rollout tree view, or in Track View. The other layers are not displayed and instead a dummy controller is displayed.

Only layers that are currently contributing to the pose and animation of the CATRig are displayed.

All layers in the layer stack are displayed in full. All keyframes for all layers are displayed on the timeline, and you are able to do things like copy and paste controllers between layers in Track View.

CAT Defaults to using the "X" Axis as the length axis for all bones. This means that if you select a bone and set the transform mode to 'Move' and the coordinate system to 'Local' then you can easily see the axis that is set to the length axis is aligned along the length of the bone.

If you select the CATParent and go to the Modify panel you will see that there is a group called 'Bone Length Axis'. If you change this from 'X' to 'Z', you will see that your bones are now aligned to the Z Axis.

Initially CAT was designed around using the Z axis as this seemed most logical at the the time. We got many requests from game developers to change from using Z to X. Most exporters were designed around exporting Max bones and biped, or Motion Builder, all of which use X. Often game physics engines would not work if the bone alignment was not X.
So we put in the X alignment mode to accommodate engines that were designed around specific character rigs.
Two famous robotics researchers decided one day that everyone needed to agree on a coordinate system for robotics. So they developed the Denavit-Hartenberg coordinate system that defined X as the length axis for any bone. The rest is history. Most animation systems have since been developed around using the Z axis, despite problems being caused by gimbal lock.

Select the Create menu in the 3dsmax user interface.
Click on the drop-down the listbox and select 'CATObjects'.
Click on the CATParent button.
At this point you can either select a CATRig preset to load and then click in the viewport to create it, or simply click in the viewport to create a new CATParent without a rig.
HubGroups are not elements in their own right but rather a subset of the rig. A HubGroup is composed of a hub, its limbs, and any tails.
You see HubGroups wherever you see the CATRig Hierarchy displayed, for example in the CATWindow.
HubGroups are always named with the name of the hub first followed by Group. E.g. RibcageGroup.

The RibcageGroup on the Panther rig
Hubs are the CATBones that hold CATRigs together. A hub could be a pelvis, ribcage, thorax or head depending on how it is used. Spines, arms, legs, tails and extra bones can be created off it.

The first hub created is the root object for the rig. In an upright, two-legged creature such as a human or a four-legged creature such as a horse this would be the pelvis.

Hubs on collection of different CATRigs
Hubs are created in two ways. You can either...

You can create the 1st hub of your character by pressing the 'Create Pelvis' button on a new CATParent.
or:
Hubs are automatically created when you add a spine to a hub. See Adding Spines
1.2 Copy, Paste, and Paste Mirrored Buttons
1.4 Length, Width, Height values
1.5 'Add Arm', 'Add Leg' buttons

The name of this hub. See Using CAT's Naming System

Buttons for copying and pasting the hub settings to or from other hubs. See Copying and Pasting Rig Parts
Checkbox for enabling and disabling the custom mesh for this hub bone. See Customising the Geometry on CATBones
These parameters define the size of the hub in CATUnits.
Buttons to add new limbs to this hub. See Adding Limbs
Buttons to add new limbs to this hub. See Adding Spines
Buttons to add new limbs to this hub. See Adding Tails

The Hub Hierarchy rollout
3 Retargeting - Allow IK Rotations
Hubs can be pinned with a check box called Pin Hub. It allows you to temporarily lock a hub in position so that its parent can be transformed without affecting its child hub. A typical example of this would be pinning the ribcage of a character so that you can tilt the pelvis without repositioning the upper body.
Pinning is achieved by a switch found in the Hub Hierarchy rollout (found in the Hierarchy/Link Info panel) called Pin Hub.
Select the ribcage.
Go to the Hierarchy/Link Info panel.
On the Hub Hierarchy panel check Pin Hub.
Now when you manipulate the pelvis the ribcage isn't affected.
Note:
This option does not work on FK spines.

The Pelvis is selected

As the pelvis is moved the ribcage remains static
Pin Bone works by setting a keyframe on both the parent hub (pelvis) and the child hub (ribcage). The ribcage is effectively being counter rotated automatically to keep it in place.
Normally when you try to lift a ribcage up, or push it too far, the spine will restrict the movement of the hub to ensure it stays within range of the spine. If you are finding the when you move the hub, it pops, this may be because the spine is incorrectly limiting its movement. Try disabling this feature to see if the spine is causing the problem.
Allow IK Rotations is for retargeting only. When checked the hub will both rotate and move to find a best fit between the positions of the limb IK targets and the angles of the limbs. When unchecked the hub will move only.
Limbs are used for arms, legs, wings etc. There are two differences between a leg and an arm. One is that legs are assigned FootPlatforms, which include CAT's foot pivot system. The other is that arms and legs are treated quite differently by CATMotion.
A limb can be made up of up to 20 bones, and each bone can have up to 20 segments. All limbs can have collarbones or palms as required.
The limb bones can be set up in any configuration. IK setup involves simply rotating the bones in Setup Mode.
The bone segments only rotate around the center of their bone. They exist to allow for twisting forearms etc. Their relative rotations are controlled with the Bone Twist Weight graph.
The Palm holds the controls for the arm. It has the controls for blending the arm between IK and FK. It also allows for the creation of an IK target for the arm, keying of all the rotations on a limb, and holds the master controls for the digits (fingers).
CAT supports seamless blending between IK and FK.
Each palm can have up to 100 digits and each digit up to 20 bones. Digits are set up with FK controls only. Digit controls include a weighable Digit Pose Manager and powerful Digit Modifiers for manipulating groups of digits.

The front leg of the Panther rig.
Arms and legs are both limbs. The difference between arms and legs is quite small. Both employ the same IK System. Both have identical user interfaces.

See Editing Limbs
Select the hub that you would like to add a new limb to.
Either...

Go to the Modify Panel and Press on the "Add Leg" button.
, or:
Right-Click on the Hub in the viewport and on the Bottom Left quad menu select either "Add Leg".

Either...

Go to the Modify Panel and Press on the "Add Arm" button.
or:
Right-Click on the Hub in the viewport and on the Bottom Left quad menu select "Add Arm".


Limbs are made up of a number of possible sub-elements. These include a collarbone, limb bones, and palms. Master parameters for the limb are held in the Limb Setup rollout.
Name: Edit the name of the limb in the field box. See Using CAT's Naming System
Color swatch: Edit the arm color.
L: The L radio button tells the system the limb is assigned to the left side of the rig.
R: The R radio button tells the system the limb is assigned to the right side of the rig.
M: The M radio button tells the system the limb is assigned to the middle of the rig (You would need one of these on a tripod).

Buttons for copying and pasting the limb settings to or from other limbs. See Copying and Pasting Rig Parts
Num Bones: This spinner controls the number of bones in the arm. It ranges from 1 to 20.
Collarbone: When checked the limb is assigned a collarbone.
Palm or Ankle: When checked the limb is assigned a palm (which also serves as an ankle on a leg).
There is no Create Limb button, but rather the option of creating an arm or leg. In actual fact there are almost no differences between an arm and a leg. Legs get a foot platform by default, and you can change an arm to use a foot platform rather than a cross yourself if you like.
An arm inherits motion from the hub differently than a leg. The arm inherits the rotation off the ribcage but rotates it over so it points sideways and a leg flips over completely so that is points downwards by default. You can see this by adding a new layer and then setting the limb to FK and all the rotation values to 0. You can see that the legs rotation is 180 degrees different from the hub it is attached to and the arm is 90 degrees different
Collarbones are special bones that can be added to limbs. The Limb does not inherit rotations off the collarbone.

Name: Name of the selected bone.
Copy bone settings.
Paste bone settings.
Paste Mirror bone settings.
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
X: The size of the bone in the X dimension, measured in CATUnits.
Y: The size of the bone in the Y dimension, measured in CATUnits.
Z: The size of the bone in the Z dimension, measured in CATUnits.
Add Bone: Creates an Extra Bone, linked to the selected bone.

An arm is made up of between 1 and 20 arm bones.
Individual bone parameters are accessed by selecting the bone in the viewport.
Name: The name of the bone.

Buttons for copying and pasting the limb settings to or from other limbs. See Copying and Pasting Rig Parts
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
Num Segs: This spinner controls the number of bone segments on the bone.
Tip:
Bone segments are great for “Twisting Forearms” etc.
Length: The length of the bone.
Width: The width of the bone.
Depth: The depth of the bone.
Add Bone: Creates an Extra Bone, linked to the selected bone. It will be created at the origin of the bone, which is at one end of a limb bone.
This graph controls the amount each segment twists relative to those around it.
Tangent: Controls the curve of the graph.
Value: Controls the start and end rotations.
Limbs can have palms. Palms are used for palms on arms and ankles on legs, etc.
When in IK Mode the palm can be aligned to the target or to the previous bone (e.g. forearm), as required.
Each palm can have up to 100 digits and each digit up to 20 bones. Digits do not have IK and can only be transformed in FK. Digit controls include a Digit Manager and powerful digit modifiers for manipulating groups of digits.
By default, both palms and digits are aligned to the X axis.


As well as its own dimensions, the Palm Setup rollout has a list box to add and remove digits. The Ankle Setup rollout is identical.
Name: Name of the selected bone.

Buttons for copying and pasting the limb settings to or from other limbs. See Copying and Pasting Rig Parts
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
Length: The length of the palm.
Width: The width of the palm.
Height: The height of the palm.
Num Digits: Controls how many digits (fingers) the palm has. The number of digits ranges from 0 to 100.
Tip:
As digits are added and removed the fingers distribute themselves automatically along the end of the palm. By default, Digit 0 is the thumb.
Add Bone: Creates an Extra Bone, linked to the selected bone.
The Digit Setup rollout can be accessed by selecting the digit in the Digit list box on the palm or by selecting the digit in the viewport.

Name: Edit this field to change the name of the digit.

Buttons for copying and pasting the limb settings to or from other limbs. See Copying and Pasting Rig Parts
Num Bones: The number of bones the finger has. This ranges from 1 to 20.
Tip:
Each new bone created will default to the same dimensions as the bone at the end of the digit.
Width: The width of the digit.
Depth: The depth of the digit.
Length: The length of the selected digit bone.
This rollout has the settings for the selected digit bone.

Name: The name of the bone.
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
Length: The length of the bone.
Curl Weight: This value controls how much the DigitCurl values in CATMotion affect the digit. A value of 1.0 means that CATMotion has 100% effect. A value of 0.0 would turn CATMotion off for the selected digit. A value of -0.5 would mean that DigitCurl would have half effect in the opposite direction.
Add Bone: Creates an Extra Bone, linked to the selected digit.
CAT has a completely overhauled inverse kinematics system that offers unparalleled power and flexibility. The overall idea was to create a rig that you can interact with intuitively, without having to think too much about IK and FK at all.
We call the system FK driven IK because that is exactly what it is. The system takes the current FK rotations of a limb and then fits them to the IK target. This approach offers incredible flexibility, including supporting IK chains that will rotate on any axis, not just one like other IK systems. It is also very easy to build in custom components, such as constraints, to add on custom functionality.
2 What is the difference between working in IK and FK?
4 How to expect CAT's IK system to behave
5 Tweaking the Limb Bone Rotations While Animating
In CAT1, the bones in the IK chain were set up with a system called Bend Ratios. Since CAT2, the setup is much simpler and more flexible; simply rotate/drag the bones into the configuration you require! One big upshot of this is that there is no limit on what direction you rotate the bones (in CAT1 and most other IK systems you can only rotate the bones on one axis within the IK solution).
The fact that the IK solution is derived from the FK solution means that in Setup Mode it is important to keep the FK and IK configurations as close as possible. A good trick is to hit the Match FK to IK button before you start to edit the limb in IK. For complex limbs, such as spiders, it is recommended that you position the limb in FK, only turning on IK when you are finished.

With complex limbs, rotate the bones in FK so that they sit on the FootPlatform.

Because you can rotate the limb bones on any axis it is possible to have bow legged IK chains for gun-slinging cowboys.
Since CAT 2, the difference between IK and FK is actually quite small. The way the limb behaves when manipulated is much the same whether in IK or FK. The difference is that in IK the child end of the limb, e.g. the palm, will always try and follow the IK target. In FK the limb doesn't have this restriction.

When the ribcage is moved from side to side with the arms in FK the arms simply move with the ribcage.

With the arms in IK the hands stay put while the ribcage is transformed.
You will want to use IK when you need the limb to have a fixed end position. The most common example of this is animating legs walking, as you need to be able to place the feet on the ground without them sliding around as you rotate the leg bones. Other examples would be arms holding onto other objects, such as guns or steering wheels.
As you would expect from any IK system, when you move the IK target, the IK chain retains its original configuration as much as possible.

As the leg IK target moves out the limb maintains the basic leg setup as much as possible.
You may be surprised to find that rotating the IK target does not rotate the limb. While in the first instance this may seem strange, it actually makes CAT's IK system much more flexible and isn't a problem.

When you rotate the IK target it only rotates the ankle. The rest of the limb remains unaffected.
One simple way to deal with this is simply to rotate the upper leg bone separately (see Tweaking the Limb Bone Rotations While Animating, below). Another alternative is to constrain the upper leg rotations to the FootPlatform.
As you animate the IK target around you might want to tweak the exact orientation of the bones in the IK chain. With CAT you just rotate the bones in the viewport as required.

The hand has been moved over but the elbow is too low, so we just pull the elbow up.
The Target Align value lets you control whether the palm inherits the rotations of the IK target or not.
When the Target Align value is set to 0.0 the palm will move with the IK target but will stay aligned to the last bone on the limb (forearm on a human).
CAT has a system called F/IK that allows you to just push your character into the pose you want without having to worry about the too much about IK and FK. You will find it very easy to get the pose you want. Most of the control you'd normally associate with IK is also present in FK as well and vice versa.
When working with the rig you will find you can achieve a great deal with the move tool. Rotations are, of course, possible but often won't be necessary.
The F/IK system is actually a combination of three main features: effect hierarchy, FK-driven IK, and retargeting. These are complemented by CAT's procedural spine, digit controls, and foot pivot system.
One of the features of the CATRig is that if you move a bone in the hierarchy (regardless of whether you are in IK or FK), the bones on either side will rotate to accommodate the move. This is system allows you to just push the rig around quickly and intuitively. This system is called Effect Hierarchy. Below are three examples of this:
6 Manipulating Fingers (Digits)

Arm position before edit

Simply moving the elbow back bends the arm
If you move the upper arm, the ribcage (hub) rotates to accommodate this.

Select the upper arm

As the upper arm is moved the ribcage rotates to fit

Outstretched fingers

Moving the middle digit bends up the finger
CATRigs now have two types of spines: procedural and FK; both can be worked with in much the same way. The main difference is that FK spines have PRS controllers on every spine bone, which means you can transform them individually. Be aware that FK spines have limitations too!
Spines interpolate between the hubs on their extremities, so all you have to do is transform the hubs as you want.

Original pose. Select the ribcage.

As you drag the ribcage over the spine just interpolates with it
CATRigs have two types of spines: procedural and FK; both can be worked with in much the same way. The main difference is that FK spines have PRS controllers on every spine bone, which means you can transform each spine bone individually. Be aware that FK spines have limitations too!
While FK spines do give you the option of animating every spine bone, they do have limitations:
FK spines will not work with CATMotion.
FK spines will not work with CAT's retargeting system.
It is also important to note that animation data from a rig created with a procedural spine will not load correctly onto a rig with a FK spine and vice versa.
Finally it is worth noting that FK spines require you to manage a lot more keyframes. Unless you feel you really need the extra control we would strongly recommend that you use procedural spines.
Sometimes you want to adjust the pelvis (parent hub) without affecting the ribcage (child hub). For this purpose CAT has a feature called Pin Bone.
With Pin Bone you can manipulate the pelvis without affecting the ribcage.

Pelvis selected

As the pelvis is transformed the ribcage remains stationary
In addition to transforming the fingers (digits) directly, CAT provides you with the best finger control system going. The controls give you the ability to edit the spread, bend, roll and curl of the selected fingers. It also has a built in digit pose preset manager.

Select the palm

In the Digit Manager, highlight the digits you wish to edit

Drag the Curl spinner and the fingers curl in.
An important new feature in CAT2 is its Foot Pivot system. The Foot Pivot is now just a sub-object of the FootPlatform (IK target for the foot). You simply position it as required and then rotate the foot. It is completely animateable.

Select the Footplatform. When you select it you can already see the Foot Pivot.

Move the pivot to the front of the FootPlatform.

When you rotate the FootPlatform it now rotates from the toe.
As you continue to animate the Foot pivot is simply animated into position as required.
When you are working with hubs that are connected to spines, there are some tools to make you day faster.
If you are in Animate mode and you right click on a hub, you can see an option to pin the hub. What this enables you to do, for example, is edit the base hub (pelvis), without effecting the position and rotation of the tip hub (ribcage). See Pin Hub.
Tails are easy to work with. Just select a bunch of bone in the tail and rotate. All the bones rotate together to cause the tail to curl nicely.

Multiple tail links selected

When rotated up the tail curls smoothly
Collarbones are typically only rotated. Also, you will usually not want to twist collarbones.

One of the easiest ways to edit the collarbones rotation is to select the 'UpperArm' or 'shoulder' bone and move it. When you move the UpperArm bones, the collarbone will be rotated according to your movements.
Or:
You can select the collarbone directly and use the Move, Rotate, and Scale tools.
CAT has a foot pivot system that provides unparalleled control and is as simple to use as you could want. Simply move the pivot where you want it and rotate the FootPlatform. The foot pivot is animatable, so you just move it around with the Auto Key button on, in the same way you would any other thing else in Max.
Select the FootPlatform. When you select it you can already see the Foot Pivot. It is the cross in the middle of the FootPlatform.

In the Animation panel go to the Selection Level menu and turn on Sub-Object.

Move the pivot to the front of the FootPlatform.

Turn off Sub-Object in Selection Level.
When you rotate the FootPlatform it now rotates from the toe.

As you continue to animate, simply animate the Foot pivot position as required.
IK targets are available on all limbs. On legs we call the IK targets FootPlatforms, which have foot pivot controls.

IK Target Parameters
Length: On platforms this variable controls the length of the platform. It has no effect of cross IK targets.
Width: The width of the FootPlatform, or size of the cross.
Platform: Displays the target as a platform.
Cross: Displays the IK target as a point helper.
CATMotion also integrates CAT's retargeting system. It has two big advantages over normal IK. Firstly, it removes the problem of snapping at the knee joint, caused by over extension of the IK chain. Secondly, because the leg pushes the pelvis up, the character automatically has weight.
Because it enables completely straight legs, we have found that with retargeting it is possible to achieve walks that would be either very difficult of even impossible using IK, with ease.
in CATMotion, retargeting is controlled by a combination of two controllers, KneeAngle and LegWeight.
The walkcycle is divided up into four knee angles. Control over the knee angles is accessed in the KneeAngle controller, under Legs in the CATWindow.
For clarity we have called the four knee angles: Lift, MidLift, Plant and MidPlant.
Lift: is the angle of the knee as the foot is about to leave the ground.
MidLift: is the angle of the knee in the middle of its path through the air.
Plant: is the angle of the leg as the foot is placed back on the ground.
MidPlant: is the angle of the knee in between Plant and Lift.
The other controller important to Retargeting is called LegWeight. It can be found with KneeAngle under Legs in the CATWindow.
The LegWeight graph controls the how much the foot platform is being pulled down onto the ground plane. When LegWeight has a value of 0 increasing the knee angle will pull the foot higher into the air. When LegWeight has a value of 1.0 increasing the knee angle will pull the pelvis down.
LegWeight can also be thought of as Leg Priority. The left side of the graph is the Lift Priority and the right side is the Plant Priority. This becomes important when you try to push the angles further than is possible to physically achieve. Then by adjusting the leg weights so that one is set to and the other to zero you can control where the error will be most. Usually the planting leg should get priority.
Error within the system is absorbed in the ankles. If you notice the ankles are tending to go straight up or otherwise behave strangely try adjusting either LegWeight or KneeAngle.
Usually the first thing to try will be to reduce the Maximum Stride Length or increase/decrease various knee angles.
If the movement looks a bit clunky it could be the LegWeight graph needs smoothing out. If the ankles are going too straight as the foot lifts it could be the LegWeight on the lift part of the graph is too long.
While Retargeting is a great solution for walking, it isn’t a great solution for running. At this point it is pretty much impossible to get a useful blend between where the leg weights let go and ‘flight’ takes over.
For now we recommend that you use IK for running and jumping.
CAT has a system called retargeting, which is available on all limbs. The idea behind retargeting is that it tries to maintain the IK solution and the angles of the limb bones; pushing out or pulling in, and rotating the hub to achieve this. This is in contrast to a normal IK solution that leaves the root object (hub) in place and moves the IK target only without taking into account the angle of the limb bones.
Retargeting was originally created to retarget imported motion data, and as a way to create straight-legged walkcycles in CATMotion. It is not limited to this however, and it is proving itself as a powerful keyframe animation tool as well.
Retargeting is blended on and off with the Retargeting slider found with the IK sliders on the Limb Animation rollout.
In the examples below both arms have Retargeting set to 100%.

Starting position

The IK target pulled forward
As the right IK target is moved forward the system pulls the ribcage around, maintaining the angle of the arms until it is no longer possible. This is a much more natural movement than stretching out the arm and then rotating the ribcage.

Pulling the IK target out to the side, further than the arm can reach.
Note how as the IK target is moved out to the side the ribcage moves over, trying to keep between the two hands, while of course still being limited by the length of the spine.
The behavior of the hub can be limited by a switch on the Hub Hierarchy rollout in the Hierarchy/Link Info panel called Allow IK Rotations. When this is checked the hub will rotate and move to fit the retargeting solution. When unchecked the hub will move only, and maintain its orientation.

The IK target pulled forward
With Allow IK Rotations unchecked the hub (ribcage) stays straight while still moving as far as it can.
CAT uses retargeting to calculate pelvis positioning and defaults to FK rotations for the rest of the body.
Limbs can be in either IK mode, which preserves the original end positions, or FK mode, which maintains the bone angles.
Because of the way the motion is retargeted, it is important that the data is scaled to as close to the size of your rig as possible.
Further tweaking can be achieved with an adjustment layer.
Tip:
CAT uses retargeting to retarget the legs. This means that you will usually want retargeting for a leg to be set to 1.0. As an alternative you can leave retargeting off and reposition the pelvis/FootPlatforms with a World Adjustment Layer.
Tip:
If your data describes a character falling over, or otherwise leaving the ground you would generally blend your legs to FK.
The Capture Animation tool allows you to transfer animation from any hierarchy or collection of objects in Max onto your CATRig.
Capture Animation was designed primarily to facilitate the importing of Motion capture data, but of course it can work with any animated hierarchy. Once the motion data has been loaded into 3ds Max by using one of the importers, the next stage is to map the data onto your character. This is handled by CAT's Capture Animation utility.
It is important to note that the Capture Animation utility can be used separately, externally to the motion capture process. It allows you to capture animation data from any animation hierarchy onto a CATRig.
The Capture Animation dialogue is opened up automatically after the motion has been imported into the scene. Its purpose is to map the data onto the rig, as well as providing you various options regarding the animation captured.
The other thing you will notice as the Capture Animation panel opens is that an AutoMap function is called automatically. AutoMap takes a 'best guess' at which bone in the motion capture data relates to which bone on your CATRig. We've found that the majority of the time this works very well and no more editing is required.
5 Editing the Alignment of the bones
6 Mapping Bones and Hierarchy Panel Locks
![]()
This video covers working with the Capture Animation utility. Setting up Capture animation Mapping presets saving and then transferring animation between rigs.

Target Rig: The Target Rig button is used to select the CATRig you wish to map on to. When the Capture Animation utility is called as part of the motion capture import process the Target Rig is the rig you are capturing onto, so it is selected automatically.
Source Objects: The Source Objects button is used to select the hierarchy you wish to capture off. During motion capture this is the hierarchy created from the motion capture data and the objects are selected automatically. The button is renamed to the root node of the hierarchy.
Delete Source on Close: When this check box is checked the source hierarchy will be deleted when you exit the Capture Animation panel.
AutoMap: Generate an approximate mapping of your data onto the CATrig
Clear Mapping: Removes all of the current Mapping
Mapping can be saved as a CAM file so that you don't have to reconfigure mapping every time you capture.
Load Mapping: Click to load in a previously created mapping arrangement, saved in a CAM file.
Save Mapping: Use to save your current mapping for reuse, as a CAM file.
Start time: The first frame of the capture.
End time: The last frame of the capture.
Frequency: This value determines how many keys are created. E.g. 1 = 1 key per frame; 2 = 1 key every 2nd frame.
Capture Animation: Capture Animation creates keyframes as dictated by the time range spinners. You press this button when you are ready to bake the live mapping onto keyframes on your CATRig.
The AutoMap feature on the Capture Animation window is a quick way to generate a mapping between the source hierarchy and your CATRig.
The AutoMap feature tries to find bones in the source hierarchy that correlate to bones in your Skeleton.
Note:
The AutoMap feature may fail if the source hierarchy contains unusual bone names, or the hierarchy of your source skeleton has strange alignment issues.
Note:
The Automap feature uses a lot og guesswork to try and generate alignment between the source bones and the CATRig bones. It is expected that you will need to refine the results of the AutoMap feature to get a perfect mapping.
You may need to Manually assign a mapping from a source bone to a CATBone. There are 2 ways you can do this.

If the bone you wish to use as an animation source is in the Source Hierarchy List box, then you can select it and drag the mouse over to the target CATRig bone and then release the mouse.

With the Capture animation window open, if you right click on a CATBone you will see a new menu item in the bottom left quad called 'Map Bone'
Map Bone: When you select this right click menu item, Max is put into picking mode. You then need to select the bone that you wish to drive the motion of the selected CATBone.

Once you have your character successfully mapped, the Mapping Rollout in the Capture Animation window will display the current mapping.

In many cases you will need to edit the alignment of the CATRig bones to correctly fit the source skeleton. This may be because the CATBones use a different up axis as the source skeleton you are capturing animation from, or because some software introduces offsets to bone rotations.
Once you have begun the Mapping Process, you will notice that a new layer has been added to the bottom of your CATRigs layer list. This layer uses special controllers that hold 3dsmax animation constraints. It also stores the offset, and also has the ability to do scaling of the transferred motion to fit smaller characters.
You can simply select bones and rotate and move them to edit the alignment. Each bone does not inherit the offsets of it parent. This simplifies the process of editing your skeletons alignment as you can edit each bone independently.
This edit is stored in the controller that has been assigned to that bone. When you save a Capture Animation preset file (*.CAM), all the offsets and mapping are stored also.
The Capture animation tool uses settings in the Hierarchy Panel to determine how bones should be mapped. If the animation position lock is turned on for a CATBone, then the Capture Animation tool will not constrain the position of the bone to the position of the source bone.
If the animation rotation lock is turned on for a CATBone, then the Capture Animation tool will not constrain the rotation of the bone to the rotation of the source bone.
![]()
Click to download the 3dsmax scene file
Sometimes you may not get the desired results when you begin the process of transferring animation data using Capture Animation. This may be because your source data is not a humanoid skeleton, it does not follow standard naming conventions, or there may be offsets in your source skeleton that cause the Automap function not to work.
This video covers manually mapping a character in a situation where the AutoMap feature yields undesirable results.

Motion capture data is loaded into the Layer Manager in much the same way as any other keyframe data. Once the motion capture data is loaded into CAT, all the same powerful keyframe editing tools are available to transform, edit, duplicate, retime the motion data. You are then able to use all the layering tools to edit the motion capture data in a non-destructive way.
CAT currently supports the loading of BVH, HTR, FBX motion capture file formats, as well as importing the motion from Character Studio BIP files.
The process has two stages, importing the motion data into a separate hierarchy in Max, and then mapping the animation data from the hierarchy onto your CATRig using Capture Animation.
Each format has its own importer. Once the data is imported the mapping is all handled by the Capture Animation utility, which automatically maps the data onto your character and allows you to edit the mapping if required.
Once data is imported you can use the Layer Transform Gizmo to easily transform the whole clip/layer and Adjustment layers to enable you to tweak to the animation.
Mapping Motion from Mocap Point Clouds
http://mocap.cs.cmu.edu (http://mocap.cs.cmu.edu/)
Credo Interactive Mega Mocap V2 (http://www.charactermotion.com/products/motion_capture/index.html)
The HTR import in CAT imports HTR files into the Max scene as a hierarchy of box primitives with keyframes and animation. The Capture Animation tool is the tool that you can use to map this motion onto your CATRig.

The ImportHTR tool can be accessed in 2 different ways. You can open the Import HTR dialog by right clicking on any bone in a CATRig and navigating to the FileIO menu and then to Import HTR, or you can select the CATParent and go to the Motion Panel where you will see the Cip and Pose Manager.

Load Animation: Turn this option off to simply import the base pose of the HTR file.
Capture Animation: Turn this option off to skip capturing the animation onto your CATRig
CAM File Button: You can use this to pick a CAM file if you have already created one.
Start Time: The Start time for the HTR animation keyframe to begin.
Scale Factor: The scaling that will be applied to the HTR hierarchy when it is created.
Relative Bones Size: The size of the bones that will be created.
The BVH import in CAT imports BVH files into the Max scene as a hierarchy of box primitives with keyframes and animation. The Capture Animation tool is the tool that you can use to map this motion onto your CATRig.

The ImportBVH tool can be accessed in 2 different ways. You can open the Import BVH dialog by right clicking on any bone in a CATRig and navigating to the FileIO menu and then to Import BVH, or you can select the CATParent and go to the Motion Panel where you will see the Cip and Pose Manager.

Load Animation: Turn this option off to simply import the base pose of the HTR file.
Capture Animation: Turn this option off to skip capturing the animation onto your CATRig
CAM File Button: You can use this to pick a CAM file if you have already created one.
Start Time: The Start time for the HTR animation keyframe to begin.
Scale Factor: The scaling that will be applied to the HTR hierarchy when it is created.
Relative Bones Size: The size of the bones that will be created.
For loading in FBX files CAT uses 3ds Max's own FBX importer.
When you select a FBX file to import the first thing you see is this dialogue box:

The purpose of this dialogue is to remind you to select Merge in the FBX window. If you do not select Merge, you will not get desirable results.
Next the FBX Importer dialogue box appears:

ALWAYS select Merge as your Import Type.
This screen capture shows typical import settings. You do not require geometry or cameras, .etc, as they have no relevance to the motion of the CATRig. Loading them in won't matter but they will add in lots of unnecessary data for you to filter through and slow down the import process.
Adjust 'Rescale scene's root node to unit size' and 'Y-up to Z-up root node rotation' as required.
Press OK to continue with the import.
CAT can import motion from BIP files onto CATRigs. Please note that this is not the same as importing the original BIP file. You are not loading in the original keyframes.
There are no settings for BIP file import. Once a BIP file is selected you will be put straight through to the Capture Animation window.
If you are working with motion capture data and would like to bring point cloud data right into max and then map the motion onto a CATRig, there are ways to do this. This is not really a tutorial, rather it is an example of how this problem can be solved. No scripting was used to configure this system. Please download the file and look at the solution. It may give you ideas on how you can solve your own motion mapping problems.
This is an exercise in configuring constraints to solve a complex integrated problem. Constraints are directional. By this I mean that if A is constrained to B, then B cannot reference A for any reason. This reality that constraints cannot cause circular relationships means that we are forced to take a layered approach to the problem.
The result we need is a set of bones with correctly animated joint positions and rotations. The simplest way I have found to solve this problem is to break the problem into two simpler problems, positions and rotations and solve them separately. The position of a bone is not dependant on any other bones in the skeleton, and also not dependant on the rotation of any other bone.
The best way to explore this file is to hide/unhide the layers that you are interested in. Start with the marker cloud, then unhide the 'Joint Markers' layer. Select each point helper and look at the markers it is constrained to. Start with the simple ones like the hip, knee, ankle joint positions.
CAT greatly simplifies the solution to this problem.
The Capture Animation tool makes it very quick to map the CATRig to the bones rig. Each bone can contain offsets that allow us to interactively adjust the pose of the CATRig while the motion is being mapped onto the rig.
The procedural spine means that each bone in the spine need not be specified. We only need a pelvis, ribcage, and head position and orientation, and CAT's procedural spine will accurately interpolate the vertebrate bones.
CAT's IK system allows us to simply constrain our CATRigs bones to the Box rig and CAT will handle the solving of IK. The retargeting feature means that even if the legs of the character go very straight, and our CATRig has legs that are longer, or shorter that the original leg, the pose of the CATRig will be adjusted to fit the data.
This Max Scene file contains the point cloud and the CATRig.

The original mocap data cloud.

The first layer is simply to generate joint positions in the cloud using point constraints. The joint positions are simply weighted position constraints, and therefore relatively easy to set up. The Red crosses in the scene file represent basic joint position helpers.
For the Pelvis there is a group of 3 point helpers that hare used to define the orientation of the Pelvis using 4 surrounding markers. An identical setup is used to drive the orientation of the Ribcage and Head. These are the blue points in the image.

The second layer is the box rig which defines the joint angles. Boxes are constrained to the joint positions and LookAt controllers define rotations. Note that the exact position of many of the bones is not important. The knee joints for example are moving relative to the hip bone, but when this data is mapped onto the CATRig, the CATRigs IK system effectively cleans up the motion and locks the joint locations.
UpperArm UpVectors
If you look at the max scene file, you will notice that the upper arm configuration is quite complex. You will notice that there is a marker placed on the shoulder area that we could use as the UpVector for the arms LookAt constraint, but this setting yields strange behaviour at some poses.

The CATRig has been mapped onto the BoxRig using the Capture Animation Tool.
Note:
Retargeting has been turned on for the legs to help adjust the pelvis's position.
Limb controls are held on the Limb Animation rollout.
The IK controls for the limb are held on all limb bones. Select the limb and go to the Limb Animation rollouts in the Animation panel.

The Limb Animation rollout
4 Moving the IK Target Up the Limb
The Limb Animation rollout allows you to load and save limb poses. It also gives you access to the IK settings for the limb.
An arm has no IK target by default. To animate in IK you will first have to use the Create IK Target button. This will create a special point helper which serves as the IK target for the arm. Legs use their respective FootPlatforms as their IK targets.
Note:
The Create Target button will only work within an active absolute layer.
Use Select IK Target to select the IK target for the selected palm or ankle without having to go searching for it in the scene.
Move IK Target to Palm is for when you have been animating in FK mode, leaving the IK Target behind and you wish to blend back to IK.
Click this button with Max's Auto Key button activated before you blend to or from IK. This is used to create seamless blends between the two animation modes.
IK/FK: The IK/FK slider enables you to blend between IK and FK on the limb, with 0.0 being IK and 1.0 being FK.
Num IK Bones: Num IK Bones allows you to slide the IK target up and down the limb. The Num IK Bones variable ranges from 0.0 to the number of bones on the limb, including the palm. For example, a typical leg setup of 2 leg bones and an ankle will range between 0.0 and 3.0.
Retargeting: This slider blends CAT's retargeting for the selected limb. 0.0 is off and 1.0 is on.
The IK/FK slider sets the IK weight. An IK/FK weight of 1.0 mean the limb is in FK; an IK/FK weight of 0.0 means the limb is in IK.
Note:
You wouldn’t normally want the weight to sit between 0 and 1. The slider is used to enable you to blend between IK and FK.
Make sure you are on an active Absolute layer.
Go to the frame where you wish to start the blend.
Turn on 3ds Max’s Auto Key button.
Hit the Match IK and FK button.
Wiggle the IK/FK slider to create a keyframe.
Go to the time you wish to end the blend on.
Move the IK/FK slider to 1.0.
As FK is blended on the limb will remain in the same place, but will now be ready to animate in FK.
Make sure you are on an active Absolute layer.
Go to the frame where you wish to start the blend.
Hit the Move IK Target to Palm button.
Turn on 3ds Max’s Auto Key button.
Wiggle the IK/FK slider to create a keyframe.
Go to the time you wish to end the blend on.
Move the IK/FK slider to 0.0.
As FK is blended down the limb will remain in the same place, but will now be ready to animate in IK.
Traditionally the IK target sits at the end of the limb, but sometimes you don't want this. What about crawling characters? Then you need the IK target positioned at the knee. You can animate the IK target up and down the limb as you wish, with an option called Num IK Bones.
Num IK Bones allows you to slide the IK target up and down the limb. The Num IK Bones variable ranges from 0.0 to the number of bones on the limb, including the palm. For example, a typical leg setup of 2 leg bones and an ankle will range between 0.0 and 3.0.
Lowering the Num IK Bones variable moves the IK target (e.g. FootPlatform) up the limb, bone by bone. On a typical leg a value of 1.0 will place the IK target at the knee. A value of 0.0 will place it right up the top of the leg, at the pelvis.
As the value is changed the limb is pulled down through the IK target. This is normal. The part of the limb that is 'through' the IK target is in FK.

In this image the Limb IK Pos on the legs is set to 1.0...

...with this setting the lower leg can now be rotated in FK.
Stretchy Bones Mode is designed to allow you to create bounce and stretch animations, interactively in the viewport, simply by dragging the rig elements around.

Alien rig

Pulling the elbow stretches out the adjacent bones

Dragging the ribcage stretches the spine
As you make the changes with Auto Key selected the animation is stored as scale keys in the rig bone's PRS controllers. These keys can be accessed in the Curve Editor as normal.
To stretch put a limb all you have to do is drag out the palm.

Palm selected

Moving the palm stretched the limb
Setup Mode: In Setup Mode you create and modify your CAT rig. You can also add or remove bones later even after an animation was already finished. If your character is already skinned and you want to adjust bones, make sure to go to frame 0 and uncheck "Always Deform" in the Advanced Parameters rollout of the Skin Modifier. "Always Deform" off will allow you to edit bones without effecting the mesh.
Animation Mode: In Animation Mode you animate your character.
Stretchy Bones Mode: Stretchy Bones Mode is a special animation mode for automatic bones stretching. The difference to Animation Mode is that bones stretch automatically when you push away the parent bone. So for instance you can move the ribcage anywhere you want and the spines will follow (stretch) automatically. In Animation Mode the ribcage's movement is restricted to the spine length. Only manual scaling of the spine bones will allow you to move the ribcage up in Animation Mode. Also, Stretchy Bones Mode is useful to create cartoony-like walk cycles in CATMotion. For example if you choose a very long Step Length in the CATMotion Global settings, the legs are likely not long enough to reach the foot platform. In Stretchy Bones Mode, the legs will automatically stretch to fit the foot platform.
Create an Absolute layer to animate into.
Note:
It is impossible to change out of Setup Mode until an animation layer is present.
Click on the Animation Mode drop down list.
Select the Animation Mode icon.
You are now ready to start keyframing.
Create an Absolute layer to animate into.
Click on the Animation Mode drop down list.
Select the Stretchy Bones Mode icon.
You are now ready to start keyframing in Stretchy Bones Mode.
CAT uses a layer based animation system. That means that all keyframes are created in layers. There are two main types of layer: Absolute Layers and Adjustment Layers.
Absolute layers are used to create new animation. Standard 3ds Max animation controllers are used to store all of the transforms in the same way as if you were animating as normal with any standard 3ds Max object.
Adjustment layers are used to tweak existing animation. Keyframes in an adjustment layer offset existing layers below them in the stack, including CATMotion.
Tip:
Before you can begin animating you have to be in an active layer and be out of Setup Mode!
Keyframe animation in CAT is as simple as selecting the element you wish to animate and transforming it in the viewport. A CATRig is set up so that you can just push it around into the pose you require.
Because your animation is stored in standard 3ds Max animation controllers you can create and edit your animation as you are used to. Keyframes can be edited in Track View as normal.
How various rig elements and sub-elements relate to each other is dictated by their setup parameters, accessed in the Modify panel. Some rig elements have extra animation parameters too; most notably the limbs, palms, and ankles.
Tip:
Before you skin up your rig you may wish to make a few trial animations to make sure you are happy with the way the rig behaves.
As well as holding the same Limb Animation rollout as the rest of the limb the Palm has its own, unique functionality. These include the Digit Manager and the Palm Animation rollout. The same controls are available for ankles.

Target Align: The Palm Animation rollout has a single slider on it called Target Align. The Target Align value lets you control whether the palm inherits the rotations of the IK target or not.
When the Target Align value is set to 0.0 the palm will move with the IK target but will stay aligned to the last bone on the limb (forearm on a human).

E.g. of palm not inheriting IK target rotations

When the Target Align value is set to 1.0 the palm inherits both positions and rotations from the IK target.

Digit controls include a digit manager with advanced digit modifiers.
The Digit Manager provides a powerful interface for controlling the digits on a palm. The Digit Manager rollout is found in the Animation panel on a selected palm. It has two parts, Preset Poses and Digit Modifiers.

Weight: The ratio that the highlighted preset has on the digits. This allows you to blend on a preset.
Save the current digit rotations as a new pose preset.
Delete a pose preset from the Preset Poses listbox (not from the hard drive).
Digit poses are held in the Preset Poses list box. Each pose stores the rotations for all the digits present when a pose preset is saved. These rotations can then be loaded onto any other palm.
If the selected palm has fewer digits than those of the pose preset the extra digits are ignored. If the palm has more digits the extra digits will receive no rotation data.
Each pose preset can be weighted, allowing you to blend from one pose to another or to mix poses to create a new preset.
Double click on the desired pose in the Preset Poses list box.
The digit rotations are applied immediately.
Click once on the chosen pose in the Preset Poses list box.
Drag up the weight in the Preset Weight spinner.
The digits will blend from their existing rotations towards the rotations of the selected preset.
Edit the digits to the desired pose.
Click the Save Pose button.
Enter the new pose name and save.
Tip:
By default digit poses are held in \3dsmax\plugcf\CAT\HandPosePresets\
Tip:
You are not limited to using CAT’s digit manipulation controls. You can also select individual digit bones in the viewport and transform them as normal.

The Digit Modifiers provide tools to enable you to manipulate the digits, either singly or as a group. Selected digits can be transformed parametrically with the Spread, Bend, Roll and Curl spinners.
Click and drag in the Digit Modifiers list box.
Spread rotates the selected digits away/towards each other from the base of the digit.

Bend rotates the selected digits up and down from the base of the digits.

Roll rotates the selected digits around their length.

Curl rotates the all the digit bones up and down.

Tip:
All modifications are relative to the existing rotations.
Select the palm.

Go to the Animation panel.
In the Digit Manager, highlight the digits you wish to edit.

Drag the Curl spinner.

The fingers curl in.

Spines in CAT are used to connect two hubs together. Spines provide special functionality that speeds up your workflow, enables sharing of animation data between a more diverse range of rigs, and allows more sophisticated IK Tools.
To creates a spine, select a hub that you would like the spine to be attached and either...

Go to the Modify Panel and Press on the "Add Spine" button.
or:
Right-Click on the Hub in the viewport and on the Bottom Left quad menu select either "Add Spine" .

Spine Name: The name of the spine. (See Spine Naming)
Num Bones: The number of bones in the spine.
Length: The length of the spine.
Note:
this value represents the accumulated lengths of all the spine bones. When you change this value, the spine actually changes the lengths of all the spine bones. There is no actual 'Spine Length' value stored in the spine.
Size: The average size of the spine bones. You can use this value to quickly resize all the spine bones, or you can edit them all individually.
Procedural/FK Radio Buttons: Configure whether this spine will use the built in procedural spine algorithm, or standard FK.
When a spine is set to be 'Procedural', the motion of all the spine bones is defined by an algorithm. The CAT spine algorithm tries to always bend the spine in a way that makes sense for that spine. The bend amount for each bone is defined by the 'Spine Curvature' graph.
Procedural spines have many benefits.
You do not need to keyframe each spine bone. This reduces the number of keyframes you need to create to get your animation done. This keeps you scenes simpler.
It is easy to share keyframe animation between characters with different number of spine bones because there are no keyframe on each spine bone.
You will never get unsightly kinks in your spine.

If you select any bone in a procedural spine and go to the Motion Panel, you will see a small rollout called 'Spine Motion'. There is one slider on this rollout and it defines the Absolute/Relative behaviour of the spine.
Relative spines produce a nice smooth C shaped curve, while Absolute spines create a S shaped spine.
When you select the tip hub on a relative spine and rotate the hub, the hub will move in an arc around the base of the spine.
Relative spines are typically used when the curvature of the spine is more important than the exact location of the tip hub. This is why we default necks to being relative. The position of the head is usually less important than the curvature of the neck.
When you select the tip hub on an absolute spine and rotate it, the hub should stay approximately stationary.
You should use an absolute spine in the situation where the position of the ribcage is important. For example, on a quadruped, the position of the ribcage is usually more important than the position f the ribcage on a biped. This is because, the front legs of a quadruped are usually on the ground and therefore the position of the ribcage defines how straight the legs are. In this situation, even a small movement of the ribcage can change the shape of the legs and the weighting of your character.

' ' 
In this image, the spine on the left has been set to relative and the spine on the right has been set to absolute. Both ribcages have been rotated by 90 degrees.
Of course in CAT, the Absolute Relative value is animatable and so you can decide throughout your animation how your spines should be behaving at any point in time. In many cases, you may need to animate the settings of your spine to get the very results you desire.
Note:
When animating with a spine set to Absolute, then you will need to move the ribcage and rotate it to get your ribcage in the correct location. The ribcage will not more when you rotate it.

This graph controls how much the spine links rotate relative to each other. Put another way, it controls how the rotation between the hubs is distributed along the spine.
The spline is edited by adjusting the tangent length spinners and the value spinners at the bottom of the graph.
Tangent: The Tangent spinners control the curve.
Value: The Value spinners controls the start and end values of the rotation weights.


By Default, the spine bends fairly evenly along its length. As you rotate the tip hub, the spine interpolates the rotation down throughout the spine nodes according to the curvature of the graph.
The following examples are using a spine with the Abs/Rel value set to 1 meaning that this is a relative spine.


If you change the graph to be flatter at the start and bend sharply up at the end, then your spine will also bend sharply at the end.


The spine can be configured to cause more bending at the base for the spine.
Tip:
All rotations, including twisting are effected by the graph.
Tip:
The spine colour blends from the colour of the pelvis to the colour of the ribcage. The blend of the colour reflects the falloff on the Spine Rotation Weight graph.

The Spine Direction vector is a line that determines the default direction for the spine. What this means is that when the spine is totally at rest, it should project along this vector. By default the Spine direction vector points along the base hubs length axis. Z for Z axis aligned rigs and X for X-Aligned Rigs. See Understanding Bone Length Axis

Select any bone in the spine, and go to the motion panel.
Click sub-object mode button. The Spine Projection vector will become selected and you can now re-orient your spine.
You will get better results from your spine if you ensure the blue line runs close to default curvature of your spine.
Tip:
When creating spines that default to a curve we would recommend that you edit the individual spine bones into position, leaving the hubs (ribcage and pelvis) aligned up and down, as opposed to rotating the hubs to create the curve.
FK Spines behave like a standard hierarchy of bones in CAT. Each bone gets its own layer controller and can be keyframed independently. When you set a spine to be an FK spine, each bone in the spine gets its own Layer controllers for controlling its transform. You can then keyframe each bone in the spine independently giving you very precise You can then do things like dislocate bones in the spine by animating the positions. control.
Note:
It is not possible to convert animation made on an FK spine to be used on a Procedural spine.
Note:
Currently FK Spines do not support the retargeting features found in CAT.
CAT Tails are basically long bone chains with a few special features built in to make them more useful for tails.

Tails are similar to spines except that they have do not end in another hub and they have additional controls. A tail applied to a head could also act as a dreadlock or a horn, etc.
A tail can have between 1 and 100 tail links. Tail stiffness is edited with the Tail Stiffness graph.
Select the hub that you would like to add a new tail to.
Either...

Go to the Modify Panel and Press on the "Add Tail" button.
or:
Right-Click on the Hub in the viewport and on the Bottom Left quad menu select either "Add Tail" .

The Tail Setup rollout
Name: Edit this field to change the tail name.
Colour swatch: Edits the colour of the tail.

Buttons for copying and pasting the tail settings to or from other tails. See Copying and Pasting Rig Parts
Num Links: The number of bones in the tail.
Length: The length of the tail.
Width: The width of the tail.
Height: The height of the tail.
Taper: The taper of the tail.
Creates an Extra Bone, linked to the selected bone.

This graph controls the relative stiffness of the tail along its length.
CAT does not define any particular naming scheme. Instead, each rig preset contains a different naming scheme. It is very easy to modify the naming scheme to suit your own productions requirements.
Each bones name is defined by the combination of the CATRigs name, and name of any group the bone belongs to and also the bones local name. Of course, you can set any of the name fields to blank and then this fields will have no effect on the final bones name.
$<CATRig Name> + <Limb Name> + <Bone Name> + <Bone Seg Name>
The default names given to bones when you create a rig from scratch are only intended as a basis for you to modify and define your own naming scheme.
CATRigs are created with their allocated preset name. If you want to have more than one of the same CATRig preset in a scene it is a good idea to give it a unique name.
To change a CATRig name:
Select the CATParent, go to the Modify panel and enter a new name in the Name field in the Character Parameters rollout.
The CATParent is renamed and the entire CATRig hierarchy inherits the new name.
$<CATRig Name> + <Hub Name>
Each limb has a name parameter that you may wish to fill in with an appropriate name.
When you add an arm for example, the new arms limb name parameter defaults to "Arm"
Limb bones can be divided into segments, and each segment should have a unique name.
Each bone will be assigned a name according to the following scheme.
$<CATRig Name> + <Limb Name> + <Bone Name> + <Bone Seg Name>
If you would like your Right UpperArm bone to be called
$"FredLUpperarm"
Then you should name the CATRig "Fred", and enter "L" in the the limb name field, and enter "Upperarm" in the bone name field.
When the names get added together the following will result.
"Fred" + "L" + "Upperarm"
Each bone segment can have a customised name too. The Bone Seg Names only become valid when you have more than one bone segment. The bone seg names default to '1', '2', '3' etc, but you could change this to 'A', 'B', 'C' etc..
The palm or Ankle stores a local name that gets added on to the CATRig name and the Limb name.
$<CATRig Name> + <Limb Name> + <Palm/Ankle Name>
Digits are made up of a hierarchy of bones that are all connected together with one digit controller. This is much the same way that limbs work. The digit controller stores a name for the entire digit, and each bone in the digit also stores its own local name.
$<CATRig Name> + <Limb Name> + <Digit Name> + <Digit Bone Name>
The Tail is made up of a hierarchy of bones that are all connected together with one tail controller. This is much the same way that limbs work. The tail controller stores a name for the entire tail, and each bone in the tail also store their own local name. Each bones name is the result of adding together the CATRig name and the tail name and the bone name.
$<CATRig Name> + <Tail Name> + <Bone Name>
Extra Bone names are much simpler than other body parts. Each Extra bone stores its own name, and this gets added on to the CATRig name.
$<CATRig Name> + <Extra Bone Name>
The Spine is made up of a hierarchy of bones that are all connected together with one spine controller. The spine controller stores a name for the entire spine, and each bone in the spine also stores its own local name. Each bones name is the result of adding together the CATRig name and the spine name and the bone name.
$<CATRig Name> + <Spine Name> + <Bone Name>
One very cool feature of CAT's IK is that it is very customizable. You can use all of Max's constraint systems, even script into the limb. Below I will describe two leg setups that you may find useful, Knee LookAt and Orientation Constrained.
A very popular technique when using IK on legs is to have the knee look at a knee target. With CAT this is done by using an extra bone as the target object.
Make sure there are no animation layers in the Layer Manager and return to Setup Mode.
Select the upper leg.
Go to the Modify panel
In the Bone Parameters rollout use Add Bone to create an extra bone.
The extra bone is created at the end of the bone it is created off
Note:
It is important to create the extra bone off the limb it will associated with because even after an extra bone is relinked to the pelvis, it is still part of the limb group and so will use the limb weight as its local weight. This is important for when you are working with feathered weighting.
Move the bone out in front of the knee
Link the extra bone to the pelvis. The knee LookAt is to control the leg, if it is left linked to the leg it will follow the leg, not the other way around.
Go to the Animation panel, add an absolute layer and then add a relative layer.
Put your rig into 'Animate Mode'.
Go to the Max Assign Controller rollout and select Rotation from the current animation layer.
Choose Assign Controller and select LookAt Constraint.
Go to the LookAt Constraint rollout.
In the LookAt Constraint rollout chose Add LookAt Target and choose the extra bone.
Put the thigh into FK. This is useful because you can get a much better idea of what is going on.
Select the FootPlatform as the Upnode.
Set Upnode Control to LookAt and pick the FootPlatform as the target.
Set the Source Axis to Y and choose Flip.
Put the limb back into IK.
You would use an orientation constrained setup when you would like the leg to inherit motion off both its parent the pelvis, and the Foot platform.
Select the upper leg bone.
Go to the Animation panel, add an absolute layer and go into Animation mode.
Put the limb into FK.
Go to the Max Assign Controller rollout and select Rotation from the current animation layer.
Choose Assign Controller and select Orientation Constraint
In the Orientation Constraint rollout click Add Orientation Constraint and select the FootPlatform.
Check Keep Initial Offset.
The Leg should now be standing on the FootPlatform as normal.
Blend the leg back into IK.
Now when you rotate the FootPlatform the whole leg will rotate with it
Apply an orientation constraint and select the FootPlatform as above.
Add a second orientation constraint, this time selecting the pelvis.
Weight the rotations weights between the two targets as required.
To save out your IK constraint settings set up the configuration in a layer and then save out the layer as a clip file with no keyframes on it. When you want to add a new absolute layer with the same configuration simply load in the layer (e.g. LookAt Knee config.clp).
Note:
Using these constraint systems will mean that it not be possible to blend to FK on the same layer. To blend to FK blend to another animation layer where the limb doesn't have this system added.
CAT2's new F/IK rig manipulation system lets you just push the rig around into the pose you want, whether in IK or FK. This means that CAT has can be animated with unparalleled immediacy and efficiency. It isn't necessary to have several windows open at any one time just to interact with your rig.
CAT2's IK system is unparalleled and provides big advances is flexibility and power over other systems.
For walkcycle sequences, CATMotion allows you to create a completely user defined walkcycle and then direct the character around the scene without the bother of placing individual footsteps. Footprint collision detection provides the icing on the cake.
Animation is created in CAT's powerful, non-linear animation system the heart of which is the Layer Manager. One of the big advantages of CAT's NLA system is that it you can work directly in the selected animation layer, without having to go back out and tweak the source animation elsewhere.

Image courtesy of Deck13. From the game 'Jack Keane'

Image courtesy of Nox
Introduction to Keyframe Animation
Animating in Stretchy Bones Mode
Editing Keyframes in Track View
Working With Motion Capture Data
CAT's layering system is the most powerful animation system in the world today. No other system allows you to work with such ease and flexibility as CAT. Animation layering was not a feature added on top of an existing architecture, rather, it was a fundamental part of CAT from version 1.0.
All layer management is performed using a simple rollout called the The Layer Manager.
1.1 On every bone you will see the Layer Manager
1.2 Layers are Applied to an Entire CATRig
1.3 All Basic Layers Contain Standard Max Controllers

You only need to select any bone in a CATRig and go to the Motion Panel in max to see the Layer Manager.
With CAT's layering system, whenever a new layer is added, that new layer applies to every bone in the CATRig. We do not have such a thing as an 'arm' layer or 'hand' layer. When you add a new layer, every bone gets that new layer, and you can choose the parts of the CATRig that you do not wish to use the new layer. This process is called Feathered Weighting.
Initially you may think this is a restriction, but it is actually a feature.
Each layer in CAT is simply storing Max controllers. The layer system is simply a mechanism for holding and managing Max controllers. All Max controllers are supported by CAT's layering system. This includes all the different keyframe controllers from Bezier, TCB, Linear, Quaternion, Euler, etc, to all the procedural controllers like the powerful set of constraints and script and expression controllers.
New animation is created in Absolute layers. Absolute layers include CATMotion, absolute [keyframe animation] layers and imported motion data (which is loaded into an absolute animation layer).
Before you can start animating you need an absolute layer to create your animation in.
Select any part of your CATRig.
Go to the Layer Manager rollout in the Animation panel.

Click on the Create Absolute button.

An Absolute Layer is created in the Layer Manager listbox.
In the Mode drop down menu choose
Animation Mode.
You are now ready to start keyframing.
Assign new animation layers as you need them. It is very useful to break your animations down into manageable segments.
The Layer manager is the interface to the CATLayer system. As you animate with CAT, you will use this rollout more than any other part of CAT. This rollout is the center of your layering workflow. Here you can add, remove, move up and move down layers, adjust and animate global or local layer weightings and much more.
Select any part of the rig.
Go to the Animation Panel.
Go to the Layer Manager rollout.

The CAT Layer Manager

CATModes: Select the CATMode you would like to put your CATRig into. See CATModes

ColorModes: Set the current Colour Mode that the CATRig is currently using.

Ranges View: Display the 'Ranges View' for all the layers. See Ranges View

CAT Wiki: Press this button to launch the CAT Wiki.

Add new Layer: Add a new layer to the layer stack. Press this fly-out button, drag down to the preferred layer and release to create a new layer. See Layer Types

Remove Layer: Remove the currently selected layer from the layer stack.

Collapse Time Range: Collapse a time range of your animation to an existing or new layer. See Collapsing Animation Layers

Key Current Pose: Key the current pose of the character into the selected layer when Auto Key is on or offset the current pose of the character into the selected layer when Auto Key is off.

Copy Layer: Copy the currently selected layer ready for pasting.

Paste Layer: Paste the copied layer into the current layer stack. This tool is very useful for quickly duplicating layers on one CATRig, or for copying animation from one rig to another in the same scene. It is better than using the animation saving and loading tools because there is some types of controllers that cannot be saved using the Clip file saver. An example of this would be a reaction controller.

Move Layer Up: Move the currently selected layer up one position in the layer stack

Move Layer Down: Move the currently selected layer down one position in the layer stack

Layer Transform Node: Create a transform node for the current layer in the layer stack. Transform nodes are available for absolute layers only. See Layer Transform Nodes

The Ranges View in CAT gives you the ability to move and re-time all the keyframes in a layer at once. The Ranges View is CAT's Non Linear Animation(NLA) view. You may have an animation that you created but you need to change the timing, speed, or trim off the end of the animation. This is what the Ranges View is for.
Note:
all the functionality of the 'Ranges View' is an extension of the standard 3dsmax Ranges feature. To understand all the features of the ranges view, it may help to play with the ranges on a single controller on a simple object. Create a sphere, add some keyframes and then go to the standard max ranges view and start editing the range bar. For more detailed information on the 3dsmax range bar feature, please read the 3dsmax documentation.
Click on the Ranges button in the Layer Manager rollout.

The layers will be displayed as individual tracks.
The ranges for the layers can then be squashed, stretched and moved as normal in 3ds max. They can also be reversed.
The range for a layer is defined as the 1st keyframe on any track on any part of the rig and the last keyframe. If your ranges extend before the start, or beyond the end of your animation, then there is a possibility that you have rogue keyframes on one of your bones. 3dsmax creates a keyframe at time 0 whenever you autokey a an object for the 1st time. This often causes keyframe to exist where an animator did not intend.
Whenever you use the ranges view to edit the keyframes on a layer, all the keyframes a on the rig actually get moved. You can see this clearly by selecting a bone with keyframes and then editing the layer range bar.
Note:
If you have a constraint on a layer, it can cause the ranges view to be extended to infinity. You can still use the ranges view to move your keyframes, but it is not possible to see the start and end times fop the layer.
2 Squashing and Stretching your keyframes
4 Setting the looping options for a layer
1 Manually Setting Layer Time Range
To move all the keyframes on a layer, simply click in the middle of the bar and drag to the left or right. All the keyframes for that layer are moved.
If you have a complex character, the movement might be a little bit slow or jerky. Remember that you are moving many keyframes at once and the entire rig is updating repeatedly as you drag the keyframes.
You can make an animation faster or slower, simply by dragging the range bar end points. To slow down you entire animation, make the range bar longer by moving the end of the bar to the right, or the start of the left.
To speed up your animation make the range bar shorter by moving the start of the bar to the right, or the end of the bar to the left.
You can reverse the direction of your animation by dragging the start of the range bar past the end. All the keyframes get reversed and now your animation will play backwards to the way it was playing before.

To get the looping options for this layer, press on the 'Parameter Curve Out-of-Range Types' button.

You may have an animation on layer that you would like to repeat in some way. This could be a simple action like a breathing motion on a ribcage, or a while walk cycle. You can use the ranges view to set the looping options for the entire layer.
Remember that each controller on the rig loops separately, so to get the whole layer to loop at the same time, you may want to set the layer time range manually. See below.
Each controller in the rig has its own time range defined by the 1st and last keyframes on that controller. This means for example that if you want your animation to loop, then each controller will loop according to its won time range. Very quickly the whole animation will get out of synch and look incorrect. If you set the time range manually, you can force all the controllers on the character to use exactly the same time range thereby ensuring a correct loop.
Right Click on the toolbar area of the Curve Editor.

From the menu select Show Toolbars/Ranges: Dope Sheet

Select the Position Ranges button.
Edit the Layer Range as usual.
Note:
once you have set your layer to Manual ranges, it is not possible to move the keyframes in time anymore. This is because when you move the range bar, it is actually moving the loop time for your controller, not the actual keyframes. If you need to move the keyframes again, you can 'Re-couple' the ranges by pressing on the 'Recouple Ranges' button. See below.

At some point you may wish to go back to standard range editing. You can do this by pressing on the 'Recouple Ranges' button. This resets all the ranges to their default behavior where the time range is defined by the 1st and last keyframe.
The strength and versatility of CAT's layering system is its support for a variety of different layer types. Each layer type provides different functionality and is useful for different purposes.
As the layer stack evaluates from top to bottom each of the layers is applied one after the other.
Absolute Layers overwrite the previous layer's animation with a new animation. This means that 2 Abs layers after each other mean that only the 2nd layer has any effect. Abs layers are intended to provide the basic animation layer that you will work on 90% of the time.
Relative Local are additive and local to the previous layers in the layer stack. Sometimes referred to as adjustment layers, these layers are good for editing the pose of your character, or applying adjustments to your animation. They apply their effect on top of the result of the previous layer. The effect of the Relative Local layer is always affected by the previous layer in the layer stack.
What this means is that, if you have a rotation offset applied in the X axis on a relative local layer, then as the animation of the previous layer move and rotate the head, the head will always be rotated according to its own local axes. A good way to visualize the way this layer works is to imagine you have 2 objects linked together in Max. The relative local layer has the same effect as the child object. If you rotate the parent, then the child will move is a circle around the parent. The child’s offset is always in the coordinate space of the parent, and this is exactly how relative local layers work.
Sometimes referred to as Adjustment World are very useful for applying adjustments, but they always apply their adjustments in world space. This means that they ignore the results of the previous layers and always apply their effect the same way. These layers are more useful for doing things like editing the exact location of a foot plant during a walk sequence. If you were to use a Rel Local layer to adjust the position of a foot plant and then later rotated the foot slightly on your Abs layer, then the foot location would change because the Rel L offset would be rotated also. This is the situation to use a Rel W layer.
Try playing around. There are many cases that suit a local space adjustment and many more that suit a world space adjustment, and learning these layering tools will allow you to make the most of CAT’s powerful layering tools and also speed up your day.
CATMotion layers are used to create walkcycle animation. See CATMotion
With any of the basic layer types(Abs, +L, +W), you can assign new controllers to any bone to change the behaviour of the bone, or to change the interpolation of the keyframes.
Biped in 3dsmax uses quaternion interpolation, and so many artist have developed workflows based around TCB keyframing. Also some game exporters have been written with the assumption that you are using Biped, and that your keyframe interpolation is TCB.
TCB quaternion interpolation provides better rotation interpolation in many cases and is therefore often viewed as a better tool for animation. The down-side to using TCB quaternion interpolation is that you are unable to view the animation in the form of curves in a curve editor.
Select the Bone that you wish to assign your TCB Rotation controller to.
Select the layer that you would like to contain the TCB controller.

In the 'Assign Controller' rollout navigate down to find the branch in the controller hierarchy that represents the selected layer, and select the rotation channel.
Press the 'Assign Controller' button on the 'Assign Controller' rollout.

Select 'TCB Rotation' controller from the list of rotation controllers.

Now your CATBone will use TCB interpolation for that layer.

Use the Collapse Layers button to convert all the current animation in your layer stack into 1 layer. CAT will plot all your animation down to 1 layer using a consistent sampling.

If you select an existing layer in the layer manager and press the 'Collapse Layers' button, all the current animation will be plotted onto the selected layer.
Note:
It is important that the selected layer does not contain animation as it will be overridden with new keyframes.

If you select the (Available) layer and press the 'Collapse Layers' Button, all the animation on your CATRig will be plotted to a new layer.
Alert:
There is a bug in this feature that will crash CAT. Please read the Collapsing Layers to a new Layer Causes crash article for more information.
Unfortunately, with version 2.5 of CAT, there is a serious bug in the layer collapsing tool.
If you select the (Available) layer and press the 'Collapse Layers' Button, you will be presented with the following dialog.

If you press 'Collapse', then CAT will successfully collapse all the animation to a new layer, but upon completion, CAT will crash when it tries to redraw the LayerManager.
Please follow this link and install the script that fixes the crash.
http://www.catoolkit.com/forum/forum_posts.asp?TID=1299&PN=1&TPN=1
Time Warp curves enable you to control the velocity of an entire animation layer with a single spline curve. Matrix bullet time effects were never easier! The Time Warp curve can be found if you select the CATParent and open it up in the Curve Editor. They can also be quickly accessed from the
Time Warp, Curve Editor button in the Layer Manager.

You can now copy and paste animation layers, including between rigs. It is also possible to instance layers which means that different rigs can reference the same animation layer.
A character with an instanced animation layer can still be retimed, time warped and transformed. This application is particularly useful for crowd sequences.

Transform Gizmos are used to transform animations in space. You can move or rotate the Transform Node to change the position or direction of an animation clip. It appears as if the character is linked to the transform node, but it is not. If fact each layer has its own transform node. Transform Nodes primary purpose is to allow you to reuse animations, simply by moving and rotating them in space.
The name of your Transform Node will be "[current animation layer name]+Transform". So if you have renamed your animation layer, you can just turn off and on again the button "Display a transform Node for this layer" and the name of the Transform Node will update.
Transform Nodes are available for absolute layers only. Of course each absolute layer can have its own Transform Node.
Transform Nodes are animatable, but they don't support custom controller assignments and cannot be linked to other objects. If you wish to animate your transform node, it is not recommended to animate the rotation. Basic animation only should be applied. This it not a method for general animation.
There are three different ways to create a Transform Node:

Simply click on the button "Display a transform Node for this layer". This will create a Transform Node with a specific offset to the pelvis. This offset is defined by the pose in the Setup Mode. The distance between the origin and the pelvis defines the offset. In Animation Mode this offset is always respected even if you move the pelvis down, so it can likely happen that the Transform Node is created below the feet for example.
If you click on the button "Display a transform Node for this layer" while holding 'Ctrl', the transform Node gets created at the position of the selected bone.
Example: If you select the foot of a character, and hold 'Ctrl' and press on the Transform Node button, then the Node will appear exactly at the location of the foot. You could then turn on a different layer and also holding ctrl, turn on the transform Node for that layer. Now you can align up the foot locations on both layers by using the Align tool in Max to align the transform Nodes for both layers.
If you click on the button "Display a transform Node for this layer" while holding the 'Alt' key, then the Node gets created displaying exactly how much offset has been applied to that layer. Initially this is nothing, so the Node appears on the origin. If you type in a new position for the Node, then the animation has been moved by exactly this amount. This tells you exactly how much transformation has been applied to a layer Example: For example, you load a walk cycle loop and want to move it forwards by exactly 60 units because this is how long the loop is.

Note:
Only bones with the 'Apply Transforms' check box checked in the Hierarchy Panel will be effected by the transform node. See Hierarchy Panel

When a transform node is created, you can use it to display a ghost of the animation on a particular layer. This is particularly useful if you are blending between two different layers. The ghost can tell you what animation is being played back on a layer even if that layer is disabled, or your character is using a completely different animation on a separate layer.
Start Time: The frame that the animation loop starts on.
End Time: The frame that the animation loop ends on.
Remove Displacement: When checked the overall displacement of the character is removed.
This feature removes the overall movement of your rig. The Transform node measures the movement of your pelvis from the time specified in the start time, to the time specified in the end time, and then calculates the overall movement of your rig for this time frame.
It then removes this displacement over the course of your animation. This feature is equivalent to the 'In Place Mode' in character studio biped.
This function could described as a walk on spot mode for hand animation. It works by displacing the animation linearly from the start and end points specified. The idea is that the movement in space is removed so that the character is left animated on the spot. This tool is mainly for game animators who are creating walk cycles for game assets.
Example:
If you are creating a walk cycle and you need to export it to your game engine without any overall displacement, then this features can remove the forwards motion from your character leaving only the walking. you can then turn this feature on and off when ever you need to export.
CAT allows you to use the layer transform gizmo to transform your animation layers around in the viewport. This includes moving, rotating and scaling the data, both uniformly and non-uniformly. In CAT2 the layer transform gizmo is now animatable. The layer transform gizmo is particularly useful for lining up clips for blending between them.
Select the layer you wish to transform in the Layer Manager.

Click on the Layer Transform Gizmo button.

The Gizmo appears in the viewport (in this case at the feet of the rig).
Select the Transform Layer Gizmo and move it.

The rig and its entire animation is moved too!

The animation keys for the layer transform gizmo can be found in the Transform branch, on the CATParent under the selected layer in the Curve Editor. They can also be quickly accessed through the Ranges View.

Blending between layers is often as simple as animating the Global Weight value for the top layer. Often this will be all you require. Sometimes, however you will wish to blend one limb separately to another or perhaps simply turn off some elements (e.g. the legs) to use the animation from another layer, below the current layer on the stack. This is called feathered weighting. One example of this would be where you are using keyframe animation for the upper body and CATMotion for the legs.
Global weights are managed with the Global Weight spinner/curve editor. Local weights have their own spinner and curve editor.
Weights View is stored on the CATParent. However you can also access the global and local weights directly.
Click on the Global Weight Curve Editor button in the Layer Manager rollout in the Animation panel.

Track View opens up to display the layers in the layer stack. The curves controlling the layer weights for the selected layer can now be viewed/edited.
Go to the frame you wish to blend to and add another absolute layer in the Layer Manager rollout.
The absolute layer overrides existing animation layers and the rig remains stationary on the frame that the layer is created.
Rename it as required.
Click on the Curve Editor button beside Global Weight in the Layer Manager rollout in the Animation panel.

Global Weight is displayed, showing the existing layers for the rig. In the image above there are three layers, PreHit, Reactor and Gets Up.
Create a key on the frame you wish to blend on from and set the weight to 0.0.
Create another key on frame you wish to blend on at and set the weight to 1.0.

The layer will now blend on and the character will be controlled by the new layer.
Select the rig element you wish to edit the local weight for and click on the Local Weight Curve Editor button in the Layer Manager rollout in the Animation panel.
Track View opens up to display the layers in the layer stack. The curves controlling the layer weights for the selected object, in the selected layer can now be viewed/edited.
When you add a new layer, every bone gets that new layer, and you can choose the parts of the CATRig that you do not wish to use the new layer. This process is called feathered weighting. Feathered weighting is achieved by editing the local weights of individual rig elements.
Select the left arm.
Go to the Local Weight spinner and turn it down to 0.
The arm will be no longer be affected by the current layer.
Using CAT’s adjustment layers in the Layer Manager you can non-destructively edit existing animation, including CATMotion, absolute keyframe animation, motion capture data and even other adjustment layers.
Keyframes in an adjustment layer offset the existing animation. For example you could use an adjustment layer to control the head movements of a rig walking with CATMotion. The head movements would applied on top of the existing CATMotion animation.
There are two types of adjustment layer, local and world adjustment layers. Local adjustment layers are useful for offsetting the a rig element relative the to rig (e.g. tilting down the head). World adjustment layers are particularly useful for offsetting IK targets, such as Foot IK targets in a mocap sequence.
Local adjustment layers are the same as relative layers in CAT1. They offset animation in the coordinate space of the rig.
Select any part of the rig.
Go to the Layer Manager rollout in the Animation panel.
Make sure Available is selected in the Layers list box.

Click the Add Layer dropdown menu.
Select Add Local Adjustment Layer
A new layer is created below the existing layer.

This new layer is selected and weighted to 100%, meaning that you can start tweaking your animation immediately.
World adjustment layers offset the animation in world space.
Tip:
World adjustment layers are especially useful when offsetting limb IK targets, e.g. from mocap data.
Select any part of the rig.
Go to the Layer Manager rollout in the Animation panel.
Make sure Available is selected in the Layers list box

Click the Add Layer dropdown menu.
Select Add World Adjustment Layer.
A new layer is created below the existing layer.

This new layer is selected and weighted to 100%, meaning that you can start tweaking your animation immediately.
CAT2 has powerful tools for motion data importing, mapping, retargeting and editing. Once created individual animation layers, and even whole layer stacks can be saved for reuse, including on other characters.
Quickly save and load poses and animation from any body part using new quad menus. Right click on a arm, leg, finger, tail, or any bone in CAT, and save out pose or motion data in one click.

Image courtesy of Adam Walker Film
When motion, or pose data is saved from a CATRig, the CATUnits value is saved also. When re-loading, the CATUnits value from the saved file is compared with the CATUnits value of the rig you are loading the data on to. The difference between the 2 CATUnits values is used to scale the data.
For example: If you saved an animation from CATRig A with a CATUnits setting of 2.0, and you load that animation onto CATRig B, with a CATUnits setting of 4.0, then the data will be scaled by a factor of 4.0/2.0, or 2.0. So the data will be made twice as big to fit your new rig.
This means that it is important to use CATUnits correctly. With the example rigs, we try to make sure the CATParent fits underneath the feet of your character. As long as all your rigs have CATParents which are the same relative size with respect to the CATRig, then the data will be scaled correctly.
Tip:
When building rigs of different sizes, it is easier to build one rig, and then resize it using CATUnits before adjusting proportions. This way, you are more likely to get correctly scaled CATUnits values when transferring animation between your rigs.

With CAT, you can very quickly save and load poses and animation from individual body parts to entire rigs. During loading, poses and animation can be mirrored, transformed and swapped.
The copy and paste pose/anim system uses the same clip file saver that has been in CAT since 1.0. The copy and paste system simply provides a better faster, more flexible interface to work with pose and clip files. Especially for body parts. We added the ability to save clip files from any body part, so you can right click on anything including a finger, or facial bone, and save out the animation. Before you could only save out animation on whole bodies, of limbs.
1.3.1 Saving and loading a Rig Pose
1.3.2 Saving and loading a Limb Pose
Poses can be saved for whole CATRigs, Hubs, arms and legs, hands and feet, fingers, toes, tails, or even sub bone hierarchies. You can always re-use poses or animation from any body part.
Our goal is to make pose and animation loading interactive. When a pose or animation file is being loaded, all the load parameters are 'live'. you can change the loaded file, the time of the load, or any of the parameters related to how the pose is loaded. As the artist, you get the opportunity to validate the loaded pose by scrubbing the time-line and view the results of the loaded pose or animation data before committing to the result by pressing the 'OK' button.
During loading, the artist has full interactive control over the transformation and mirroring of the pose or animation during load.
To help validate the loaded pose, your CATRig displays a ghost of the currently loaded pose. You need to be able to see what the result is of the loaded file as you scrub the timeline to a different time.

The Save Pose dialog is a window that simply defines a file name and path. When using the copy and paste pose system, CAT saves pose files. The filenames and locations are automatically generated for you, but you can change these of course. The name of the pose is generated from the name of the body part you are saving from and the frame that you saved the file.
File Name Edit box: The name of the pose file that will be saved.
b button: Browse for the path of the pose file.
Save While Rig: This option it only available when saving poses from hubs. When turned on, the saved pose will be saved for the entire rig rather than just the hub.

As with all the dialogs in this feature, the 'Load Pose' dialogue is non-modal. This means that you can rotate the viewport, scrub the time slider and validate your results as you edit the parameters of the loaded pose. The only thing you are not allowed to do it de-select your bone. If you deselect the currently selected CAT node, the load operation will be canceled.
File Name Edit box: The name of the pose file that will be loaded.
> Button: Open browse poses view.
Load Time: The time that the pose will be loaded. You can edit this value interactively to change the time that the animation is loaded.
Mirror: Toggle whether the loaded pose is mirrored on load.
Note:
This paramter is not available on Limb, palm, or digit pose dialogs.
Load Whole Rig: Toggle whether you are loading a rig, or body part pose.
Note:
This paramter is not available on hub pose dialogs.
Transform Type-in: This give you the opportunity to define the transformation that is being applied to the saved pose. Type in specific values for the transformation of this pose file from its original location. You can, for example, ensure that the poses is loaded in its exact original location for creating looped motions, or with a very specific translation and rotation offset.
Cancel: Cancel the load operation and close the window.
OK:
Note:
If you deselect the currently selected CATBone, the load is cancelled

To save whole rig pose, you need to select one of the hubs of your CATRigs. This could be a pelvis, ribcage or head object. Right click on the Hub object, or its gizmo, and select 'Save Pose' from the bottom left quad menu.

Check the 'Save Whole Rig' checkbox. You may wish to change the name of the saved pose file.

Right click on a hub of the CATRig onto witch you wish to reload the pose and select 'Load Pose'. The Pose loader will automatically load the most recent pose file that was saved. You can of course select a different file by pressing the '>' button next to the File name edit box.
A ghost is displayed for the ghost at the time is it being loaded. You can change the time or any of the transformation options for the loaded file with the load pose dialog open.
When you are happy with the results of the load, you should press Ok to accept the the load.
Saving and loading animation works the same as saving and loading poses.
When using the copy and paste anim system, CAT saves clip files. The filenames and locations are automatically generated for you, but you can change these of course. The name of the pose is generated from the name of the body part you are saving from and the frame that you saved the file.
File Name Edit box: The name of the animation file that will be saved.
b button: Browse for the path of the pose file.
Save While Rig: This option it only available when saving poses from hubs. When turned on, the saved pose will be saved for the entire rig rather than just the hub.
Start Time: The start of the time range for the file to be saved for.
End Time: The end of the time range for the file to be saved for.


CAT2 has powerful tools for motion data importing, mapping, retargeting and editing. Once created individual animation layers, and even whole layer stacks can be saved for reuse, including on other characters.
Motion data is loaded using CAT's clip manager. You can load in HTR, BVH, FBX and BIP files, as well as CAT CLP files. Animation is saved as CLP files. This can be done on a character wide basis, or limb by limb, as required.
Character poses are saved and loaded using the pose manager.

Image courtesy of Adam Walker Film
The Clip/Pose Manager is held in the CATParent and is found in the Animation Panel. The Clip and Pose buttons switch between the Clip Manager and the Pose Manager.


The Clip/Pose Manager is held in the CATParent and is found in the Animation Panel.
The Clip Manager allows you to save up the layers in the Layer Manager (excluding CATMotion) for later use, even on other rigs.
When the Pose button is active, the Clip Manager doubles as the Pose Manager.
Data is stored in CAT’s own format, called a CLP file. A CLP file is saved as a text file.
When a clip is saved, all the current animation controllers and their parameters are saved. This means that as the Clip is loaded in, the Clip is reconstructed so that it is exactly the same as when it was saved out.
If an element’s controller is procedural, such as a LookAt Constraint or Scripts, the controller will be loaded but its settings (e.g., the LookAt target object) will not be loaded. In this case you would have to manually reassign the LookAt target.
In addition to CLP files, the Clip Manager will also load BVH, HTR, FBX and BIP motion data formats.
To see the Clip Manager rollout, select the CATParent and go to the Animation panel.
Hit Save Clip to save a single layer, or selection of layers as a clip.
To load a clip or pose directly from the list box double click on the item.
Click the Load button to browse for a clip.
Click the Delete button to delete the selected CLP file from the hard drive.
Click Save to save out a clip.

The Save CAT Clip dialogue box appears (above).
Edit the Time Range Start and End values to enter the start and end times of the animation that will be saved out, save out the entire time range, as required.
Use Layer Range to enter which to layers you which to save. If you wish to save out the whole stack just leave Save Entire Layer Stack checked.
Hit the Save button to save out your selection.
Hit the Load button or double click on a preset in the list box.

The Clip Options dialogue box appears.
Start time: Sets the time that the clip will start from. In the dialogue above frame zero of the clip will be frame 25. The time defaults to the frame that you load the clip at.
Scale Data: When this is checked the size of the original data will be resized to the CATUnits Scale of your current rig.
Transform data to current position: When checked the animation is offset to start at the current position of the rig.
Mirror: When this is checked the animation data will be mirrored across one of the following coordinate planes as selected by the appropriate radio button:
Character Symmetry Plane: The character is mirrored left to right across itself.
World Y Plane: The character is mirrored across World YZ.
World X Plane: The character is mirrored across World XZ.
When you are ready, load in the file with the Load button.

The Pose Manager is held in the CATParent and is found in Clip Manager rollout in the Animation Panel.
The Pose Manager allows you to save out the current rotations of the rig to a file.
When the Clip button is active the Pose Manager doubles as the Clip Manager.
Data is stored in CAT’s own format, called a PSE file. A PSE file is saved as a text file.
To see the Clip Manager rollout, select the CATParent and go to the Animation panel.
Hit Save to save a the rig's current rotations out as a pose.
Click the Load button to browse for a pose.
Hit delete to delete the selected PSE file from the hard drive.
Select the layer you wish to save.
Go to the frame you wish to store.
Click Save Pose.
A keyframe for every bone in the current layer is stored.
Create a new Absolute Layer at the top of the stack and give it a weight of zero.
Go to the frame you wish to save the pose on.
Click the Create Keyframe button on the Layer Manager rollout.
This creates a pose on the new layer that exactly captures the current pose.
Click Save Pose.
Select\create the layer you wish to load into.
Go to the frame you wish to load the pose onto.
Select the Load button or double click on the pose name in the Pose Manager list box.

The Clip Options dialogue box will appear.
Scale Date: When this is checked the size of the original data will be resized to the CATUnit Scale of your current rig.
Transform data to current position: When checked the animation is offset to start at the current position of the rig.
Mirror: When this is checked the animation data will be mirrored across one of the following coordinate planes as selected by the appropriate radio button:
Character Symmetry Plane: The character is mirrored left to right across itself.
World Y Plane: The character is mirrored across World YZ.
World X Plane: The character is mirrored across World XZ.
When you are ready, load in the file with the Load button.
The pose will load in on the current frame.
If you want to copy and paste limb clips and poses while you are animating it is much faster to do it through the Limb Clips and Poses menu on the limb than to use the Clip Manager used to pose the whole rig.

Limb Animation rollout
Limb poses are saved and loaded in the Limb Animation rollout which is found in the Animation panel, usually directly under the Layer Manager, when a limb is selected.
To save a limb pose:
Pose your limb as required.
Go to the Animation panel.
Hit the Save Limb Pose button.
Enter the Limb Pose Preset name as normal.
To load a limb pose:
Select the limb you wish to load onto.
Go to the Animation panel.
Make sure you are on the correct animation layer!
Click the Load Preset button.
The limb is posed directly into the loaded pose.
Tip:
If you are loading onto an opposing limb the pose is mirrored automatically.
Your animation keys are stored in Track View as with any other 3ds Max animation. To access the keys for an element in a CATRig simply navigate to the element in Track View as normal.
Below the element’s Transform branch there is an extra branch called Layer Transform. Below this, each of the existing layers are visible, each with their own, individual transform controllers.

The animation curves on GameCharRibcage; Backflip [layer]
Tip:
Using the Selected Objects filter saves a lot of scrolling!
Tip:
By default, all rotations are driven by a standard EulerXYZ rotation controller. This controller, although easy to work with, can cause problems such as gimbal issues. Biped, for example uses TCB rotation interpolation which avoids this problem. To use quaternion rotations, you can assign a TCB controller instead of the EulerXYZ controller.
CATMotion is CAT’s procedural motioncycle generation system. Using CATMotion you can create motioncycles that adapt to the velocity and direction of the rig without sliding footsteps even while moving over an uneven surface.
For motioncycle creation CATMotion has a Walk On Spot mode. Moving the rig around the scene is achieved by linking the CATRig to a PathNode (typically a dummy or point object) which is animated as normal in 3ds Max. This could include assigning a 3ds Max Path Constraint or linking the dummy to a crowd system.
CATMotion settings can be saved as presets, which can then be applied to any rig with the same configuration. Multiple presets can be loaded at one time. Blending from one to another is achieved by animating preset weights. All blends take place without sliding footsteps.
CATMotion works by breaking the motion of the rig down into its component parts and giving the user powerful, parametric controls over each of the components. All parameters can be animated and the animation parameters assigned standard 3ds Max animation controllers, from Bezier Floats to Float Expressions.
Using CATMotion you can create convincing motioncycles in hours that would be hard to achieve in days using conventional animation techniques.

Image courtesy of Cobalt VFX
The CATMotion hierarchy reflects the build of your rig. CAT has 5 fundamental rig elements (Leg, Arm, Spine, Tail, Extra Bone) that define the control you will have in CATMotion. CATMotion will generate footprints only for the limbs that are defined as legs. Arms are not able to get footprints in CATMotion, though it would make sense in some cases, for example if you want to animate a gorilla that is walking with 2 legs and running with 4. So in general it is important to think about the motions of your character thoroughly before you build the rig in order to have all the controls you need when animating.
How CATMotion Controllers Work
Using Retargeting and CATMotion
Animating CATMotion Parameters
Overview of CATMotion Controllers

CATMotion Overview (17m 32s; 57.3 MB) (http://www.catoolkit.com/downloads/CATVideoTute_CATMotion_Overview.wmv)
Note:
You will need the TSCC Codec from http://www.techsmith.com/download/codecs.asp to watch the video.
The CATWindow holds all of the controls for CATMotion.
Click on the CATWindow symbol in the Layer Manager rollout. This button looks like a cat paw, and is available on CATMotion windows when a CATMotion layer is selected.
The CATWindow opens up in the viewport. Once open the CATMotion settings can edited at any time without having to go back and select the CATRig. This is great advantage when editing multiple rigs.
The left hand panel holds the CATRig Hierarchy. The CATRig Hierarchy holds all the CATMotion controllers and mirrors the structure of the rig. The hierarchy shown is dynamically generated to represent the CATRig.
The top three items in the list exist in every CATRig. These include the CATMotion Preset Manager, Globals and LimbPhases. The remaining hierarchy is organized by HubGroup.
CATMotion works by first breaking up the rig into its elements (The CATRig Hierarchy) and then assigning each element a series of controllers; each responsible for one aspect of the motion of that element.
The motion for each aspect of the motion is given its own spline control. The combination of so many controllers allows for infinite possibility and is highly intuitive.
Settings for each part of the hierarchy are shown in the right hand panel.
A CATMotion Preset is the saved settings for all the controllers in the CATHierarchy in the active CATMotion layer, at the time the preset is saved.

The CATWindow showing CATMotion Presets
CATMotion presets hold the settings for all the CATMotion controllers for a particular motioncycle. This data is held in a text file.
CATMotion presets can only be successfully loaded onto rigs with any configuration, but not necessarily with great results. Loading presets for 4 legged creatures onto 2 legged creatures will likely give undesirable results. Good preset naming conventions will be important.
As with the Layer Manager the layer at the top of the stack overrides those underneath it. Each layer has an animatable weight to allow blending between presets.
Available Presets: This list box shows the CATRig presets for the selected folder. The desired folder can be navigated to with the symbol at the top of the list box.
Current Layers: This list box shows the currently loaded layers/presets of your CATMotion layer. If you have multiple layers in the Current Layers list box, you can view and edit a layer/preset by clicking on it, so the curves for that layer/preset will be active in the CATMotion hierarchy, ready for editing.
Note:
The advantage of having multiple layers in the Current Layers listbox within a single CATMotion layer is that you can blend seamlessly between different walk cycles while still controlling the hole walk sequence with a single set of footprints. This means you have non-sliding footsteps even while blending between different walk cycles (for example walk/run/sneak). If you would use multiple CATMotion layers in the Layer Manager instead, blending between the CATMotion layers would result in sliding footsteps and a lot of annoying, unnecessary footprints.
Name: Edit the name of the selected layer.
Weight: Edit the weight of the selected layer.
Click to browse for a preset.
Save the selected CATMotion layer’s settings as a new preset.
Create a new default CATMotion layer to edit.
Delete the selected layer.
Edit CATMotion Layer Weights in Track View.
This is used to edit the animation of preset weights, i.e. blending between presets.
Double click on the CATMotion Preset you wish to load.

The dialogue box (above) will appear.
Choose whether to create a new layer or to replace the existing layer with the new one.
The preset name will appear in the Current Layers list box. It will appear selected, with a weight of 100%.
The preset is now loaded and in effect.
Select the layer.
Click Remove Layer.
Select the layer you wish to save.
Click Save Preset.
Navigate to the desired folder.
Enter your new preset name.
Click Save.
Animate the Weight value for the selected layer.
Tip:
To create/edit weights animation click the Weights View button on the CATMotion Presets panel.
The rest of the CATWindow is dedicated to editing the selected layer, whether it is a loaded preset or a new, default layer.
Note:
Make sure you have the right Preset Layer selected!

As the name suggests, Globals holds the master settings for the selected CATMotion layer.
Start: This is the frame that the CATMotion system will use to start calculating its motion and generating footprints.
Note:
The Start frame defines when CATMotion will start calculating all the curves. That means if you set your Start frame to 0 and a key of a curve in CATMotion is on Time 0, the Max timeline will represent this key at frame 0, too. So setting Start frame to 0 makes it easier to edit a walk cycle or creating a new walk cycle from scratch. Also, if you have two characters walking in a scene with identical walk cycles, you can quickly offset the walk sequence for one of the characters by changing the Start Frame in CATMotion slightly, so both characters are not walking completely synchronal.
End: This is the frame that the CATMotion system will use to end the calculation and generating footprints.
Max Step Time: The maximum time a step can take, measured in frames.
Max Stride Length: The maximum distance a stride can make, measured in CATUnits.
Velocity: This value displays the current velocity of the character based on the Stride Length and the Max Step Time. If you are using a Path Node, the velocity value displays the actual velocity that the character is moving at.
As the PathNode speeds up and slows down the rig will automatically take longer or shorter steps. Your character will never take steps longer than the Max Stride Length value, and ill never take steps that take more than the number of frames specified by Max Step Time.
Direction: When in Walk on Spot Mode, or Walk on Line mode, this value defines the direction that the character is moving. It does not change the direction that the character is facing. It is useful for prototyping cycles that are walking sideways or backwards. You can specify a value of 90 degrees and this will mean that the character moves off sideways. A value of 180 means that the character walks backwards. If you are defining a cycle for a character walking backwards, you should start by setting this value to 180, and then you can see what your character will look like when walking backwards. It is easy to see what is wrong with your cycle, and you can start fixing these issues.
Gradient: When in Walk on Spot Mode, or Walk on Line mode, this value defines the gradient of the imaginary slope that your character is walking up. It does not change the direction that the character is facing.
Walk On Spot: In this mode, the character will walk without moving anywhere. This mode is great for looking at the way your character feels when viewed walking.
Walk On Line: In this mode, the character will walk off into the distance in the direction specified by the Direction and Gradient values.
Tip:
If Walk On Spot or Walk on Line mode is selected the rig will always take steps that match the Max Stride Length and Max Step Time.
Walk on Path Node: When Walk on Path node is used, the character will follow any object in the scene and use it to drive the animation of the rig. You need to specify a path node before the Walk on Path node option is available. Click the PathNode button to select an object for the rig to follow when not in Walk On Spot mode.
Tip:
Any object can be used as a path node for your character. A Point helper object makes a great PathNode. You can animation your path node using any method you chose. You can simply keyframe it, or you can assign a path constraint. In fact you can drive your path node using scripts or you can use delegates
Preserve Character Shape: This slider controls how the rig aligns itself to the motion of the PathNode, in other words along its direction. This is really only applicable when the rig has a horizontal spine, such as a quadruped.
With Preserve Character Shape to 0.0 the spine will keep to the trajectory of the PathNode. When going around tight corners this can lead to undesirable results (see below).
With Preserve Character Shape set to 1.0 the spine with hold its shape (see below).
You can animate this value, which can often be useful.
Retargeting: This slider blends legged motion from IK to KA Lifting.

Footprints are helper objects created to show/edit individual foot placement. As you edit the footprints the pelvis of the rig will automatically reposition itself.
Note:
Footprints can be animated! You can keyframe the location of footprints to create actions such as a character slipping as they run around a corner. You can also bind footprints to space warps, or use the attachment constraint to make a character walk over an animated surface.
Tip:
How much the edits on a footprint effect the location of a hub is relative to the number of legs on the hub. E.g. if a hub has two legs the hub will position itself halfway between the hub's footprints. If a hub has four legs the hub will move a quarter of the distance towards the footprint.
Step Masks: When FootStepMasks is activated the rig will automatically come to a stop when footprints are layered on top of each other, i.e. the PathNode has come to a stop.
Create: Click to show footprints in order to view/edit them.
Delete: Removes the footprints. The footprint edits are remembered by the character, however the foot print animation is lost.
Reset: Returns footprints to their original, unedited positions.
Pick Ground: Automatically aligns created footprints to a ground surface.
Note:
If Auto Key is turned on, clicking "Pick Ground" will key the footprints. So you can fit the footprints to an animated surface by clicking "Pick Ground" on each 4th or 5th frame. This is a more intuitive way to constrain your footprints to an animated surface than using an attachment controller and constrain each footstep manually, because the Path Node and changes to Global settings are respected.
Selected: When this is selected only selected footprints will be affected by 'Reset' and 'Pick Ground'.
All: When All is selected all footprints will be affected by 'Reset' and 'Pick Ground'.
Limb phases could also be referred to as limb cadence. It basically is the timing of the motion of the limbs.
One slider is created for each of the limbs on your character. Each arm and leg is driven by a phase offset. The phase offset defines the overall offset of the motion of that limb relative to the overall motion of the body. If two different sliders are at the same value, it means that those to limbs will move at the same time. If the sliders are exactly 1/2 a slider length apart in value, then the limbs will be exactly out of phase. The legs on a biped should be exactly out of phase so that each leg is taking steps when the other leg is planted on the ground.
Note:
The Name that is displayed to the left of the slider is the limb name that you can edit in the Modify panel when a limb bone is selected.. See Using CAT's Naming System

The LimbPhases window dynamically creates a phase slider for each limb. Editing the phases enables you to quickly and intuitively adjust the motioncycle.
Editing the phases alone can set the basis for a walk, jump, canter or gallop.
As with all parameters in CATMotion the limb phases can be animated.
Tip:
Edward Muybridge wrote excellent analysis of the order of foot placement for various creatures over a century ago. There are several books based on his works available.

LimbPhases are the most influential aspect of creating the walkcycle. The limb phases dictate the timing for the rest of the system. The nod of the head is directly tied to the swing of the arm, and the roll of the pelvis is calculated using the timing of the leg's footsteps.
It is very important when editing limb phases to keep in mind how the phases will blend to other motioncycles. Ideally all your motioncycles should have similar limb phases to avoid unpleasant jumps in the motion as the blend occurs.
For example when creating your depressed walk you could quite easily change the limb phases around so that LLeg0 has a phase setting of 0.25, and Rleg1 = -0.25. This would work well until you tried to blend to the existing HumanWalk preset. The Leg phases would have to cross over to get from one to the other, and cause a big skip in the middle of the blend.
Keeping this in mind always edit your limb phases as little as possible and when bigger changes are required, such as moving from a horse walk to a gallop, plan the changes so that the phases do not cross over. For more information please refer to Animating Limb Phases in your CAT User Reference.
In the present case you wish to create a floppy walk, so you will edit the arm phases so that they lag behind the legs.
Drag the arm sliders slightly to the left so that they are behind the movement of the legs.

The output of every CATMotion controller is a combination of different curves. In the case of FootPlatform>Lift the end result is a combination of MAX Step Time, MAX Stride Length, the velocity of the PathNode and the values you assign to all of the individual controllers for the FootPlatform.
The curve you see in the FootPlatform>Lift box is useful for helping to create the result you want in the animation for that controller, but you can also see the actual result in Track View.
Select the element in the viewport.
Open the Curve Editor (make sure the Show Only Selected Objects filter is checked).
Open up the tree for the selected object and expand the Layer Transform branch.

Expand the LayerTransform branch. The information for the selected element is held in the CATMotionPos controller.

Now click on CATMotionPos.

Here you can see the graph that represents the trajectory for the selected FootPlatform, as compared to the graph in the FootPlatform controller (below).
CATMotion also integrates CAT's retargeting system. It has two big advantages over normal IK. Firstly, it removes the problem of snapping at the knee joint, caused by over extension of the IK chain. Secondly, because the leg pushes the pelvis up, the character automatically has weight.
Because it enables completely straight legs, we have found that with retargeting it is possible to achieve walks that would be either very difficult of even impossible using IK, with ease.
in CATMotion, retargeting is controlled by a combination of two controllers, KneeAngle and LegWeight.
The walkcycle is divided up into four knee angles. Control over the knee angles is accessed in the KneeAngle controller, under Legs in the CATWindow.
For clarity we have called the four knee angles: Lift, MidLift, Plant and MidPlant.
Lift: is the angle of the knee as the foot is about to leave the ground.
MidLift: is the angle of the knee in the middle of its path through the air.
Plant: is the angle of the leg as the foot is placed back on the ground.
MidPlant: is the angle of the knee in between Plant and Lift.
The other controller important to Retargeting is called LegWeight. It can be found with KneeAngle under Legs in the CATWindow.
The LegWeight graph controls the how much the foot platform is being pulled down onto the ground plane. When LegWeight has a value of 0 increasing the knee angle will pull the foot higher into the air. When LegWeight has a value of 1.0 increasing the knee angle will pull the pelvis down.
LegWeight can also be thought of as Leg Priority. The left side of the graph is the Lift Priority and the right side is the Plant Priority. This becomes important when you try to push the angles further than is possible to physically achieve. Then by adjusting the leg weights so that one is set to and the other to zero you can control where the error will be most. Usually the planting leg should get priority.
Error within the system is absorbed in the ankles. If you notice the ankles are tending to go straight up or otherwise behave strangely try adjusting either LegWeight or KneeAngle.
Usually the first thing to try will be to reduce the Maximum Stride Length or increase/decrease various knee angles.
If the movement looks a bit clunky it could be the LegWeight graph needs smoothing out. If the ankles are going too straight as the foot lifts it could be the LegWeight on the lift part of the graph is too long.
While Retargeting is a great solution for walking, it isn’t a great solution for running. At this point it is pretty much impossible to get a useful blend between where the leg weights let go and ‘flight’ takes over.
For now we recommend that you use IK for running and jumping.
Usually it is always best not to animate individual CATMotion parameters, but rather to simply blend between CATMotion layers. This leaves you with far fewer keyframes to manage.
However, it is not for us to limit your possibilities. All parameters in the CATWindow can be animated. Animation keys are created in the same way as any other keyframes in 3ds Max, either by turning on the Auto Key button or in Track View.
In Track View, the CATMotion data is held in is held on the CATParent, in its respective CATMotion layer.
The controllers exactly mirror the hierarchy within the CATWindow. Each controller is visible and each Preset Layer present.
Keyframes can be inserted and edited in exactly the same way as normal in 3ds Max.

The CATHierarchy for StandardHuman as seen in Track View
Tip:
The easiest way to access the animation parameters for a specific CATMotion controller is to click on the Track View button on the panel for that controller in the CATWindow.
Go to PelvisGroup>Pelvis>Lift in CATWindow.
Click on the Track View button.
Track View will open up to show all of the parameters for the selected controller.

Expand Key2Val.

Insert and edit animation keyframes as required.

Tip:
The beauty of CAT is that you can assign any Float controller you want to any parameter, including, e.g. Float List controllers.
Tip:
Animating offset controllers (OffsetRot and OffsetPos) is one way to add in extra acting to your motion cycle while retaining secondary motion such as Head Lift, etc. Another (and usually better) way to do this is to animate directly in an adjustment layer.
After Globals and Limb Phases, the rig is broken up hierarchically into the various HubGroups.
Each of these HubGroups and its children are assigned a series of controllers that allow the user to edit its motioncycle. Many of these controllers are repeated in all areas. Some controllers are specific to a particular area.

A FootPlatform>Lift controller
All CATMotion cycles are 100 frames long. The animation is then squashed or stretched to the right length with a combination of the Globals controls (Max Step Time and Max Stride Length) and the velocity of the PathNode. This means that the Time values are best thought of as percentages of the motioncycle rather than absolutes. A time of 50 is halfway through the cycle.
The light green in the background represents the time that the feet are on the ground. The dark green represents the time that the feet are in the air.
All controllers except for the OffsetRot and OffsetPos have graphs to show the curve for the motion of the selected controller within the motioncycle.
Use the
(Previous) and
(Next) buttons to click through the knots on the spline. Spline knots can also be selected directly by clicking on them in the window.
As each knot is selected, its Time, Value, Tangent, and tangent Lengths spinners are activated and are ready for editing.
If a variable is grayed out, it is not possible to edit it. We have found that changing some variables gives pretty much guaranteed disastrous results hence the graying out.
Tip:
If you want to compare different graphs hold the SHIFT button down and select the various controllers. The last one you select will be editable.
Select to copy the settings for the current CATMotion controller.
Select to paste settings from another CATMotion controller.
Reset sets the spline back to its default values.
All parameters are animatable. The Curve Editor button opens the Track View to the relevant area to edit animation keys for that controller.
Zoom to extents of curve.
Tip:
The same hierarchy visible in the CATWindow is also visible/editable in Track View by navigating to Objects > (Character Name) > Object > Layers > CATMotion Layer > CATHierarchyroot. Here you can assign standard 3ds Max animation controllers to the various parameters.
Note:
Overall limb phase is controlled in the Limb Phases panel.
|
|
|
|
|
Limbs Welded |
Make unique |
Lock limbs |
You can see the see the limbs in the Limbs list box. By default it shows LimbsWelded, which means that the settings will be applied to all limbs on one track (as seen in Track View).
Click the Make Unique button to divide the limbs into separate tracks.
Turning on the Lock button instances the settings between the different tracks.
|
|
|
|
Different colored splines... |
...represent the leg colors in the viewport |
You will notice that as you change the settings related to the selected limb that the spline in the window is the same color as the selected limb in the viewport.
If all of the above seems a bit confusing, it will become clear as you play with the system. Try setting a rig walking on the spot and simply playing with the parameters as it moves in realtime. You will quickly get a feel for what everything does.

The LiftOffset controller
The LiftOffset controller exists on hub elements. It is used to animate the offset on the Z axis over the cycle. Its purpose is to increase control over hub height, when using IK to help avoid snapping joints on legs while running and jumping.

LiftPlantMod panel
Although it can be found on all limbs, it is only relevant for legs. This graph controls the ratio between the time that the feet are on the ground in relation to the time they are in the air. The only editable value in this window is the slider under the graph.
As the slider is pulled to the left the graph gets narrower, inside the dark green area. This means that the feet are staying on the ground for longer - giving a ‘walking on Jupiter effect’.
If the slider is moved to the right and the graph moves out into the light green area, this means that for some of the cycle the feet will both be in the air at the same time, moving them into a run.

KneeAngle panel
This graph controller is only found on limbs and is only relevant for legs. It is only active when the Retargeting slider in Globals is set to 1.0.
The graph controls the knee angle throughout the cycle. This is a whole new system of legged motion, unique to CAT. See Retargeting for more.

The LegWeight controller
This graph controls the sharing of weight between each foot when using Retargeting.

The DigitRollAngle controller
DigitRollAngle controls the amount of digit roll.
Tip:
Use in conjunction with DigitSpreadAngle.

The DigitSpreadAngle controller
DigitSpreadAngle controls the amount of spread the digits have during the cycle.
Tip:
This one is great for simulating heavy creatures that walk on their toes, like dinosaurs. Have the spread drop off as the foot lifts and animate back on as the foot plants again.

The DigitCurl controller
The DigitCurl controller controls the amount the digits curl during the cycle.
Tip:
Especially useful for creatures with long claws like lizards or birds.
Tip:
To control the curl values of individual digits, edit the Curl Weight in the setup specifications of a selected digit.

The TargetAlign controller
TargetAlign controls the position of the pivot point for the ankle. A value of 0.0 places the pivot point at the ball of the foot (the base of the toes). A value of 1.0 places the pivot at the ankle joint.
Tip:
A human will typically have the pivot on the ball of the foot at Lift and at the heel on Plant.
Tip:
A creature that walks on its toes (such as most 4-legged creatures) would have a constant value of 0.0, leaving the pivot point at the ball of the foot.

The FootBend controller
FootBend controls the angle of the ankle.
Tip:
When animating humans, FootBend is not usually required as the ankle lifts naturally anyway (assuming your TargetAlign settings are correct!).
Tip:
This is most useful when working with creatures that walk on their toes.
The FootPlatform is the IK target for the feet. Its motion is critical to the motion of the legs.

The RollPivotPos Controller
A CATRig’s FootPlatform has an animated pivot position to make sure that the foot is always rotating around the desired point. The RollPivotPos controls the position of the pivot across the X axis of the FootPlatform (or from one side to the other).
A value of 1.0 represents the outside of the foot and a value of 0.0 the inside of the foot platform.
Tip:
While this setting is animatable, it is usual to leave this value constant throughout the cycle. A human would normally have the value set to 1.0.

The Roll controller
The Roll controller controls the rotation of the FootPlatform along its length.
In the image above we can see that the roll is starting before the foot leaves the ground and ends after the foot is on the ground. This would be a usual scenario.

The PitchPivotPos controller
CAT’s FootPlatform has an animated pivot position to make sure that the foot is always rotating around the desired point. The PitchPivotPos controls the position of the pivot along the Y axis of the FootPlatform (or along its length).
A value of 0.0 positions the pivot at the heel of the foot platform, and a value of 1.0 positions the pivot at the toe.
Tip:
For a human this setting will typically animate between the toe (1.0) for lift and the heel (0.0) for plant (see image above).

The Pitch controller
As with the standard Pitch controller, FootPlatform Pitch controls the angle of the FootPlatform along its length (Y axis). It is used to control the angle of the foot as it lifts off and slaps down (See below).
|
|
|
|
FootPlatform pitch at lift |
...and at Plant. |

The FootPush controller
FootPush is a cyclic positional offset along the Y axis that enables you to throw the FootPlatform forward during the walkcycle.
Tip:
Use FootPush for straight legged marches (in combination with KA Lifting) or for running.

The Swerve controller
The Swerve controller is actually the same as the WeightShift controller. It controls the side to side (X axis) positional cycle for the FootPlatform.

The StepShape controller
The StepShape controller controls the velocity of the FootPlatform as it goes through the air. In other words, it controls the ease-in and ease-out of the FootPlatform’s motion.
Tip:
Slower movements will have bigger ease curves. Quick movement such as running will have an almost linear StepShape curve.

The CrossSwing controller
CrossSwing controls the angle of the arm out from the body (arm Y axis). It is used in conjunction with Twist to tune the way the arm curves around the body as it swings.

The Swing controller
Swing controls the rotation of the arm backwards and forwards, parallel to the body.

The Bend controller
Bend controls how much the arms bends at the elbow.
Tip:
You will probably need to edit both knots to make sure that the elbow is bending correctly. E.g., for a human, knot 1 could have a value of -64 and knot 2 could have a value of 24.

The Motion X, Motion Y and Motion Z controllers on the collarbone all control their respective rotation cycles.
For the most part palms have the same controllers as ankles. The exception is HandFlop.

The HandFlopX controller
HandFlop X controls the rotation of the Palm along the X axis of the palm.
Tip:
HandFlopX works well for nice secondary motion on cartoon characters.

The HandFlopY controller
HandFlop Y controls the rotation of the Palm along the Y axis of the palm.
The tail has extra CATMotion controls found in the Animation panel when the tail is selected. They include there Tail Phase Bias graph and the Frequency settings.

The tail has a special graph that controls how the frequency curves are distributed along the tail, which can be accessed while you have the CATMotion layer selected and in the PRS Parameters clicked on the Rotation button.
Frequency: Controls the length of the waves down the tail as it sways. A setting of 1.0 means the wave will be the length of the tail. The allowed frequency range is 0.1 to 5.
Tip:
For a stiff tail set Frequency to a small number like 0.2.

Motion capture data is loaded into the Layer Manager in much the same way as any other keyframe data. Once the motion capture data is loaded into CAT, all the same powerful keyframe editing tools are available to transform, edit, duplicate, retime the motion data. You are then able to use all the layering tools to edit the motion capture data in a non-destructive way.
CAT currently supports the loading of BVH, HTR, FBX motion capture file formats, as well as importing the motion from Character Studio BIP files.
The process has two stages, importing the motion data into a separate hierarchy in Max, and then mapping the animation data from the hierarchy onto your CATRig using Capture Animation.
Each format has its own importer. Once the data is imported the mapping is all handled by the Capture Animation utility, which automatically maps the data onto your character and allows you to edit the mapping if required.
Once data is imported you can use the Layer Transform Gizmo to easily transform the whole clip/layer and Adjustment layers to enable you to tweak to the animation.
Mapping Motion from Mocap Point Clouds
Game developers often need one node to sit at the root of a character's rig. They use this node:
In 3ds Max CAT, this feature is called the Motion Extraction Node, although it is called Root Node in the user interface.
You can create a motion capture node any time after you have created (or loaded) its CATParent node.
Here, for example, is Alien, one of the CATRigs available with 3ds Max CAT.
Before creating motion capture node
The blue triangle-and-arrow with represents Alien's CATParent node.
To create a motion capture node:
The blue arrow appears to grow larger:
After creating motion capture node
But that is misleading: hiding the CATParent's arrow is a larger, separate arrow that represents the motion capture node.
If you select the CATparent node, go to the Display panel, and click Hide Selected, you will still see the large arrow representing the motion extraction node.
Or, if you animate the motion extract node so that Alien moves in its world, you will see both the CATParent's arrow and the motion extraction node's arrow.
CAT comes with a set of powerful utilities to expand the functionality of CAT:
Capture Animation is a tool for transferring animation from one character or hierarchy to another.
This tool is used for automatically rigging up CATRigs using the Reactor system in Max.
Batch importing tool for importing in multiple files into CAT.
Batch exporting tool for exporting multiple assets to your game engine.
Designed specifically to provide a flexible workflow for bones based facial animation using CAT.
Use Max IK Systems to drive CATBones.
More utilities for CAT can be found on the CATForums. CATForums Scripting (http://www.catoolkit.com/forum/forum_topics.asp?FID=13)
Automatic Ragdoll Setup automatically sets up Ragdoll constraints on CATRigs.
Select Constrain with Ragdoll from the CAT drop down in the menu bar.

The dialogue box (above) appears.
Press the 'Target Rig' button to select the rig you wish to configure in the viewport.
Press Constrain to automatically create a Reactor layer in the Layer Manager and apply the constraints.

Now all the Reactor constraints have been set up for each joint on your character.

If the 'Create Animation' button is pressed in the Reactor utility, then the CAT Rig will collapse under the control of the Reactor physics system.
Open the CAT Reactor tool from the CAT menu.
Pick the character you would like to apply the reactor constraints to.

Turn on the ‘Only Constrain Selected Objects’ checkbox.
If you turn this checkbox on, then only CAT bones that are selected in the viewport when then Constrain button is pressed will get ragdoll joint constraints assigned. This is useful for using Reactor to control only a body part such as a arm, leg or tail. The other body parts get animated using the CAT layer system, and are added to the rigid body collection so that the constrained body part will bounce off the unselected CAT Bones.

Select the body parts in the viewport that you would like to constrain.

Press the ’Constrain’ button.

Now when reactor is solved, only the bones that have been selected are controlled by reactor. The non-constrained bones are added to the rigid bodies list so that the arm will collide with the body.
When you create a reactor layer, all the limbs on the rig are automatically set into FK in the layer, so that reactor can work properly. It does this while holding the current pose exactly, so you can blend seamlessly from your previous animation.
The Add Reactor Layer button adds empty Reactor layers to the Layer Stack to create multiple solutions into.
Tip:
Always solve Reactor with the Update Viewpoints turned on in the Reactor Utility

This forces Max to completely update the whole scene for every frame of animation, and this helps CAT store the animation correctly. Check the ‘Update Viewpoints’ checkbox before pressing the ‘Create Animation’ button.
Tip:
Turn off the Create List/Layer checkbox in the Reactor Utility
You do not need to use this feature because CAT already has a layer system.
Tip:
Ensure you do not have CAT bones selected in the viewport
In 3ds Max version 7.0, and above, if CAT bones are selected when reactor solves, the animation is distorted. Always de-select everything in the viewpoint before pressing the reactor Solve button.
Adjust the Reactor Col. Tolerance value

Many scenes have unit scales that are not ideal for Reactor. Often the collision tolerance value is set too large. This causes bones to collide when they appear to be far apart in the viewpoint. If this value it set too large, then you may find that the character moves extremely erratically, and may fly across your scene with apparently no forces being applied to the rigid bodies. Try reducing the Col. Tolerance value and re-solve.

3 Working with the Batch Importer
The 'Batch Import' tool can be found under the CAT menu item in Max. The Batch importer is a tool for brining motion data onto CATRigs. It allows you to import many different files from many different paths onto your rigs in CAT.
The batch importer processes each line in the import list. It imports the files found in the source folder into the target scene.
'Target Scene file
The Max scene file containing the CATRig that you will be importing the data onto.
'Import Folder
the Folder that the motion data will be imported from. The batch importer imports ALL the files of the specified file type into the Target Scene file.
This column will display the name of the CATRig that was found in the Max scene file when the Import was added.
If you have multiple rigs in the scene, then the CATRig column becomes a drop down list box if you click on it. This enables you to select a rig for the data to be imported onto.
Specify the Capture Animation Preset file. you Create Capture Animation Preset files using the Capture Animation tool
the Scale factor that will be applied to the imported data.
This adds a new row to the Imports list view.
This button becomes enabled when you select an Import row in the Imports list view.
Press this button to create a new Batch Import preset. All fields in the Imports list view are cleared.
Press this button to save the current ‘Batch Import’ to a Batch Import Preset file (*.BIM).
Load a Batch Import Preset file (*.BIM) into the Batch Importer.
Press this button to perform a full Import.
The Batch Importer is simply a batch processor for the Capture Animation tool. The first thing you will need to do is manually import one of your files onto your target CATRig. During this process you should save a Capture Animation Mapping file (*.cam), and also determine the correct scale value for your data to work correctly on your CATRig.
Next, you can open up the Batch Importer and add a new import.

4 Customising the Batch Exporter
The 'Batch Export' tool can be found under the CAT menu item in Max.
An 'Export', is one export resulting in an exported asset file. Using CAT, you may export many assets from one Max file using different combinations of time ranges and enabled animation layers.
Each row in the List View of the Batch Exporter is an ‘Export’
The exporter puts any rows in bold that are currently loaded in Max. The exporter only allows you to edit scene settings like Max Layers and CATLayers if the file is actually loaded.
During export, the exporter highlights the row that is currently being processed.
Instead of specifying a source Max file, you specify a search path. The Batch Exporter looks in the specified folder for the 'Last Modified' Max scene file. On this way if you have a folder containing "Walk.max, Walk01.max, Walk02.Max". The exporter would find "Walk02.max" assuming this was the most recently edited file. This means that there is a restriction that you can only have one source file in each folder. You cannot have a “Walk.max”, and a “Run.max” in the same folder.
If you want to preview the export settings, just double-click on an export. Warning: If the export you double clicked on is not loaded, then that scene file will be loaded into max.
The Exporter exports from top to bottom. You can rearrange the exports simply by dragging and dropping the exports in the List view.
It is advisable to order your exports so that Max loads in new files as seldom as possible.
This column will display the name of the CATRig that was found in the Max scene file when the export was added.
If you have multiple rigs in the scene, then the CATRig column becomes a drop down list box if you click on it. This enables you to select a rig and specify which layers are required for that export.
This Column enables you to specify the layers that you wish to have enabled during this export.
Note:
If no layers are selected, then during export, the rig will be put into setup mode. This is useful if you are required to export a export a bind pose.
This list enables you to specify the Max Scene layer that you with to have visible during this export. If you have specific objects that you only want to be exported for specific exports, then put these objects onto a separate max layer and turn these layers on for the desired exports.
These two columns define the animation range that
Specify the name of the exported file.
The window and columns in the List view are fully resizable and all settings are saved and loaded each time you run the exporter.
This adds a new row to the exports list view.
When you add a new Export, the settings default to those currently found in the Max scene. In many cases, like when an artist has used 1 Max scene file for each export, this will be correct, assuming that the file was ready for export when the Export was added to the Batch Exporter.
This button becomes enabled when you select an export row in the exports list view.
Press this button to create a new Batch export preset. All fields in the Exports list view are cleared.
Press this button to save the current ‘Batch Export’ to a Batch Export Preset file (*.BXP).
Load a Batch Export Preset file (*.BXP) into the Batch Exporter.
This Button performs a ‘dry run’ of the current export setting without actually exporting any data. This is useful for debugging your export settings. Any errors encountered are logged and displayed at the end of the test.
Press this button to perform a full export including writing out exported data to the hard drive.
Run the ‘Batch Exporter’ tool found under the CAT menu in Max.
Load a Max scene that you would like to export data from.
If the scene you have loaded contains a CATRig, then the “Add Export” button becomes enabled.
Press the ‘Add Export’ button.
The Batch Exporter checks that you have opened the newest file in the given directory. If not, a warning is issued.
The new export defaults its settings to the current settings in the Max Scene file. The currently enabled layers on the CATRig are used, and the currently visible Max Layers in the Max Layer editor are used.
Edit the Export settings.
Right-click on the ‘CATRig Layers’ column to edit the list of enabled layers for this export.
Right click on the ‘Scene Objects’ column to edit the visible Max objects for this export.
Edit the export time ranges.
Specify an Output file by either ‘Right-Clicking’ to display a ‘browse’ dialogue box, or ‘Left-Clicking’ to manually type in an export path.
Repeat steps 3 to 5 to add more exports from the same Max Scene file.
Load another Max scene file.
Repeat steps 3 to 5 to add more exports from this Max Scene file.
Press the ‘Save’ button to save a ‘CAT Batch Export Preset’(*.bxp) file.
Note:
This is a framework for a batch exporter. You will need to customise it to fit your own specific needs.
The Batch Exporter is a script file located in the Maxfolder>/scripts/CATScripts folder. This script was written to help studios set up an efficient pipeline for CAT without needing to learn about scripting in CAT.
Open up the script file and look for the line containing... "exportFile exportfilePath #noPrompt" and replace it with whatever you require. After this, the exporter is called with appropriate parameters. You may need to modify this part of the code to suit your own exporter. Some exporters, for example, are actually utilities. Like the ActorX exporter for the unreal engine.
fn PrepareExport li writelog:false =
This function gets the max scene ready for export. It hides and unhides the appropriate Max scene layers. It enables and disables the appropriate layers and sets the animation time range.
fn DoExport DryRun:false =
This function iterates over all the exports, prepares them using the PrepareExport function, and then runs the appropriate exporter.

The Pose Mixer allows you to save poses and then reload them back onto your CATRig. Poses can be blended while being loaded.
This tool was designed specifically for facial animation allowing users to save, mix and and reuse poses in the same way you work with facial shape morphing.
3 Working with the Pose Mixer Dialog
4.1 Left Middle Right Pose Files
5.1 Relative and Absolute Loading
6 Animating Using the Pose Mixer

Pose Mixer Video Download and watch the video tutorial.
This video covers working with the Pose Mixer. Setting up rigs, saving poses and then reloading them onto your rig.
When you are setting up your rig, it is important to understand a few things.
When you 'copy', and then 'paste mirrored' onto a bone, CAT now remembers the relationship between these bones. It remembers that these 2 bones are symmetrical. This means that as you copy and paste between the opposite sides of your body, the CATRig is remembering the relationship between bones on the left side of the face and body, and the right side, and building up a symmetry map. Rigs that were created with versions of CAT earlier than 2.5 will need to be updated. You will need to copy and paste each bone from the left side to the right side of the body.
For every bone on the left, you should copy and then paste mirrored onto the right, thereby ensuring that the rig contains a complete map of left bones and right bones and how to perform mirroring operations.
Press the 'Poses Folder' button to choose a folder location where you will be storing all you poses.
Click on the 'CATRig' button to choose the CATRig that you will be working with.
Poses are created by selecting bones in the face and pressing the save button. You should only select the bones that are used in this pose. For example, if you are saving a pose for the mouth, then select the bones that are used to shape the mouth and press the save button.
When you save a pose file, you specify whether this pose is for the Left side of the body/face, the right side, or middle. This information is used when loading the file back in. So if you Save a 'Left' pose and then reload it using the 'Right' spinner, then the pose is mirrored onto the right side of the body when loading.
You can edit the bones around the left eye to close the eye. Then select all the left eye bones and press 'Save'. In the Left Middle Right dialog select 'Left'. Now you can load this pose on to the left or the right eye by simply spinning the 'left' or the 'right' spinners. You only need 1 pose for both sides of the body.
Tip:
When saving poses, you may think that you should save a 'Left' pose for the characters left. But I have found it easier to work if I save all the poses in screen space. So, when working on faces, you are often facing the character. So I prefer to save 'Left' poses for parts of the face that are on the left side of the screen. This makes it simpler when loading because you only need to think about which side of the screen you are loading onto, rather than left and right from the characters point of view.
You can load a pose by selecting it in the browser window and then spinning one of the spinners.
If a pose was saved as a 'Left' or 'Right' pose, then if you spin the Left or Right spinners, the pose will be loaded onto the left or right side of the body automatically. If the pose was a 'Middle' pose, then it doesn't matter which spinner you use, it will be loaded back onto the original bones it was saved from.
When loading poses, the pose values can be loaded in either 'Absolute', or 'Relative' mode.
What this means is that if you have a pose of the mouth called 'Mouth open', and your character mouth is already open, then loading the pose again will cause the mouth to be opened twice as much.
This is also very useful because you are able to subtract poses. So if your mouth is open and you wish to close the mouth, you can select the 'mouth open' pose and spin the spinner value to -100%.
Tip:
By default the spinners always load poses using relative loading.
In some cases you wish to load a pose 'absolutely'. This means that the bones in the face will go to the exact positions stored in the pose file.
Relative loading may introduce errors over time. For example if you open and close the eyes on your character many times using relative loading, you may see that your eyelid bones start accumulating error. Load and absolute pose for the eye to reset the eye to the correct values.
Tip:
Hold down the 'Alt' key while loading a pose to load it using 'absolute' mode.
You can also double-click on a pose in the mixer to load it absolutely at 100%
Note:
There is a small bug in this script that means that it may load the pose using relative loading if you double click on the pose file. This is going to be fixed in the next point release. (CAT 2.51)
Tip:
You may wish to save poses of your characters facial bones in their relaxed state so that you can always load these poses absolutely to force your character face to return to the relaxed pose.
Always ensure that you have the right layer selected in CAT's Layer Manager, and make sure you are not in Setup Mode. To create keyframes on your character, remember to load poses with the animate button on.
All pose loading is undo-able. If you are in the middle of loading a pose and change your mind you can right click while spinning the spinner to undo.
The ‘Apply Max IK’ tool enables you to use the integrated Max IK systems to animate CAT Rigs. You can now use splines to control long tails, or HI/IK on fingers to give your fingers and toes IK controls. The Max IK Systems will only affect 1 layer at a time. This gives you the ability to use IK, and FK on the same character at different times in the same scene. Alternatively, you can assign the Max IK system to a relative layer at the bottom of your stack to control all layers on your character.

To access the tool, go to the CAT menu, and select Apply Max IK, from the options.

Pick Hierarchy: Select the bones that you would like to apply the IK system to. You can select either arms, legs, fingers, toes, or tails.

SplineIKSolver: The drop down list gives you a list of available IK Systems that you may assign.

PickLayer: You can either pick an existing layer to hold the IK system, or you can let the toll create a new layer.

NumKnots: The Num Knots spinner defines how many knots will be used to create a spline if the tool is used to create a new spline for the Spline IK System.
When assigning Spine IK, the tool needs a spline to use to control the IK system. The tool can create a new spline based on the CAT Bone hierarchy you have selected.

Tip:
Bend the hierarchy in the direction you would like to see the largest range of motion. For example, if you are constraining the tail of a lizard, it is important to bend the tail around the body as this will help configure the IK system for the best movement. If the tail were to be perfectly straight before you assign the IK system, then the bones in the tail may flip around when the tails it later animated. Always make sure the hierarchy you assign the spline IK system to is bent before assigning the IK System.

Click ‘Yes’ and a Spine will be created using the shape of the tail as a guide. You may also choose an existing spline to control your character.

The spline will be created with the number of knots that was set in toe Apply IK dialogue.
Now you can animate the point helpers to drive the animation of the tail.

HI/IK System applied to the toe of the Lizard.
As its name suggests, this section is designed to give you suggestions on how to better use CAT in production.
Customizing IK Using Constraints
One very cool feature of CAT's IK is that it is very customizable. You can use all of Max's constraint systems, even script into the limb. Below I will describe two leg setups that you may find useful, Knee LookAt and Orientation Constrained.
A very popular technique when using IK on legs is to have the knee look at a knee target. With CAT this is done by using an extra bone as the target object.
Make sure there are no animation layers in the Layer Manager and return to Setup Mode.
Select the upper leg.
Go to the Modify panel
In the Bone Parameters rollout use Add Bone to create an extra bone.
The extra bone is created at the end of the bone it is created off
Note:
It is important to create the extra bone off the limb it will associated with because even after an extra bone is relinked to the pelvis, it is still part of the limb group and so will use the limb weight as its local weight. This is important for when you are working with feathered weighting.
Move the bone out in front of the knee
Link the extra bone to the pelvis. The knee LookAt is to control the leg, if it is left linked to the leg it will follow the leg, not the other way around.
Go to the Animation panel, add an absolute layer and then add a relative layer.
Put your rig into 'Animate Mode'.
Go to the Max Assign Controller rollout and select Rotation from the current animation layer.
Choose Assign Controller and select LookAt Constraint.
Go to the LookAt Constraint rollout.
In the LookAt Constraint rollout chose Add LookAt Target and choose the extra bone.
Put the thigh into FK. This is useful because you can get a much better idea of what is going on.
Select the FootPlatform as the Upnode.
Set Upnode Control to LookAt and pick the FootPlatform as the target.
Set the Source Axis to Y and choose Flip.
Put the limb back into IK.
You would use an orientation constrained setup when you would like the leg to inherit motion off both its parent the pelvis, and the Foot platform.
Select the upper leg bone.
Go to the Animation panel, add an absolute layer and go into Animation mode.
Put the limb into FK.
Go to the Max Assign Controller rollout and select Rotation from the current animation layer.
Choose Assign Controller and select Orientation Constraint
In the Orientation Constraint rollout click Add Orientation Constraint and select the FootPlatform.
Check Keep Initial Offset.
The Leg should now be standing on the FootPlatform as normal.
Blend the leg back into IK.
Now when you rotate the FootPlatform the whole leg will rotate with it
Apply an orientation constraint and select the FootPlatform as above.
Add a second orientation constraint, this time selecting the pelvis.
Weight the rotations weights between the two targets as required.
To save out your IK constraint settings set up the configuration in a layer and then save out the layer as a clip file with no keyframes on it. When you want to add a new absolute layer with the same configuration simply load in the layer (e.g. LookAt Knee config.clp).
Note:
Using these constraint systems will mean that it not be possible to blend to FK on the same layer. To blend to FK blend to another animation layer where the limb doesn't have this system added.
This is an advanced video tutorial on how to configure bendy arms using CAT.
During this video, Max bones are constrained to a spline that is driven by CATBones. The intention would be to skin your character mesh to the Max bones, rather than the CATBones. The CATBones are used to drive the Max Bones.
If a crash happens while you are working with CAT, we would like to hear about the crash so that we can fix the problem. At CAT we strive to fix problems as fast as we can because we understand your work and the pressure you are under.

To help us fix the bug, it is helpful if you give us some details on the actions you performed leading up to the crash.

If you press the ‘Optional Data’ button, a window pops up giving you the opportunity to give us some extra details on the scene file you were working on, and the actions you were performing leading up to the crash.

For the developers of CAT to receive the crash information, you need to email it to us. Press the ‘Report Details’ button, to find the crash information. Here you see a window labeled, ‘3ds max Error Report Reporting Details’. Here you see a link titled, ‘View report contents’. Pressing on the link gives you a window telling you the names of the files that make up the report and if you check the ‘Display file location’ checkbox, it will also display the path of the report files on your hard drive.

Navigate to these files on your hard drive, and select the file labeled ‘dumpdata.zip’ and attach it to an email and send it to ‘support@catoolkit.com’.
We will do our best to make sure the problems are addressed in the following point release.
CAT2 provides a powerful platform on which you can customise at will. An important part of this is that CAT is completely accessible to script.
Many scripts are distributed with CAT, and these scripts provide a wide range of examples that you can use to help write your own scripts.
Additionally, the CAT forum has a section dedicated to MaxScript with CAT. Here you will fine additional scripts that have been written for CAT, and questions being asked and answered by our support team and our profficient users.
CATForums Scripting (http://www.catoolkit.com/forum/forum_topics.asp?FID=13)
Interfaces are structures in Max that expose Methods, Properties and Actions to script allowing you to use script to access objects written in C++. Often many different types of objects can use the same interface. This allows many objects to share same script script exposure. An example of this is that every controller in the CATRig will return the interface CATControlFPInterface. More specialized controllers such as HubTrans can additionally return Interfaces that expose functionality relevant only to themselves.
To find out what functions are available on controllers and objects, you can use two different MaxScript calls:
ShowProperties <MaxObject>
Use ShowProperties to find out what values and subanims are available on an object, or controller.
ShowInterfaces <MaxObject>
Example: ShowInterfaces $CATParent01
Use ShowInterfaces to find out what functions/methods and properties are available on an object, or controller.
ClassOf <MaxObject>
ClassOf returns the name of the class of the given.
For more information please refer to the 3ds Max Script documentation.
To access the controller of and object in max, use the following syntax:
$<NodeName>.transform.controller
or a shorthand way of doing the same thing
$<NodeName>[3].controller
CAT is simply a hierarchy of controllers and objects. All the standard Max calling conventions for navigating hierarchies, accessing subanims, and getting and setting controller values work in CAT.
the CATParent stores all the information about a rig that the whole rig shares. For example, the CATParent stores the name of the rig and the CATUnits value. It also stores the Layers system. This means that all the layers details are stored on the CATParent. The name of each layer and its global weight and a bunch of other settings are stored on the CATParent.
ShowProperties $<CATParent>
.CATName (CATRig) : string .CATUnits : worldUnits .Layers : float .CATMode : integer .LengthAxis : string .Node : node .RootHub : control .CATVersion : integer .CATRigSpace : matrix3 .CATRigNodes : node by value array .CATRigLayerCtrls : control by value array .NumLayers : integer .SelectedLayer : integer .SoloLayer : integer .TrackDisplayMethod : integer .Layers : float
ShowInterfaces $<CATParent>
Interface: CATParentFPInterface
Properties:
.CATMode : integer : Read|Write|Validated by Validator function
.LengthAxis : string : Read|Write|Validated by Validator function
.Node : node : Read
.RootHub : control : Read
.CATVersion : integer : Read
.CATRigSpace : matrix3 : Read
.CATRigNodes : node by value array : Read
.CATRigLayerCtrls : control by value array : Read
Methods:
<void>AddHub()
<boolean>LoadRig <TSTR>filename
<boolean>SaveRig <TSTR>filename
<node>GetBoneByAddress <TSTR by value>Address
<void>UpdateUserProps()
Actions:
Interface: LayerRootFPInterface
Properties:
.NumLayers : integer : Read
.SelectedLayer : integer : Read|Write
.SoloLayer : integer : Read|Write
.TrackDisplayMethod : integer : Read|Write
Methods:
<integer>AppendLayer <TSTR>name <name>method
method Validated by Validator function
<boolean>InsertLayer <TSTR>name <integer>layerID <name>method
method Validated by Validator function
<void>RemoveLayer <integer>layerID
<void>MoveLayerUp <integer>layerID
<void>MoveLayerDown <integer>layerID
<boolean>SaveClip <TSTR>filename <time>starttime <time>endtime <integer>startlayer <integer>endlayer
<boolean>SavePose <TSTR>filename
<node>LoadClip <TSTR>filename <time>starttime scaledata:<boolean> transformdata:<boolean> mirrordata:<boolean> mirrorworldX:<boolean> mirrorworldY:<boolean>
scaledata default value: true
transformdata default value: true
mirrordata default value: false
mirrorworldX default value: false
mirrorworldY default value: false
<node>LoadPose <TSTR>filename <time>starttime scaledata:<boolean> transformdata:<boolean> mirrordata:<boolean> mirrorworldX:<boolean> mirrorworldY:<boolean>
scaledata default value: true
transformdata default value: true
mirrordata default value: false
mirrorworldX default value: false
mirrorworldY default value: false
<TSTR>GetFileTagValue <TSTR>filename <TSTR>tag
<boolean>LoadHTR <TSTR>filename <TSTR>camfile
<boolean>LoadBVH <TSTR>filename <TSTR>camfile
<boolean>LoadFBX <TSTR>filename <TSTR>camfile
<boolean>LoadBIP <TSTR>filename <TSTR>camfile
<void>CollapsePoseToCurLayer()
<boolean>CollapseTimeRangeToLayer <time>StartTime <time>Endtime <time>Frequency quiet:<boolean>
quiet default value: true
<void>CopyLayer <index>LayerID
<void>PasteLayer Instance:<boolean> CopyLayerInfo:<boolean>
Instance default value: false
CopyLayerInfo default value: true
Actions:
OK
Every controller bone in the CAT rig structure exposes this interface. That means that every bone will return the CATParent, and a name and can be used to save out a clip file for example.
ShowInterfaces $<CATBone>[3].controller
Interface: CATControlInterface Properties: .CATParent : node : Read .Name : TSTR by value : Read|Write Methods: <void>PasteLayer <control>source <integer>fromindex <integer>toindex <boolean>instance <void>PasteRig <control>source <boolean>SaveClip <TSTR>filename <time>StartTime <time>EndTime <node>LoadClip <TSTR>filename <time>time <boolean>mirrordata <boolean>SavePose <TSTR>filename <node>LoadPose <TSTR>filename <time>time <boolean>mirrordata Actions:
Use this to access the CATParent from any CATBone. This means that if you have a pointer to a finger bone, then you can access the CATParent and perform all the layer operations etc...
Example:
$<CATBoneName>[3].CATParent
Name
The local name of this bone.
<void>PasteLayer <control>source <integer>fromindex <integer>toindex <boolean>instance
Use this function to paste rig settings from another CATBone
<void>PasteRig <control>source
Use this function to paste rig settings from another CATBone
<boolean>SaveClip <TSTR>filename <time>StartTime <time>EndTime
Use this function to save a pose file using script.
<node>LoadClip <TSTR>filename <time>time <boolean>mirrordata
Use this function to load a clip file using script.
<boolean>SavePose <TSTR>filename
Use this function to save a pose file using script.
<node>LoadPose <TSTR>filename <time>time <boolean>mirrordata
Use this function to load a pose file using script.
In addition to the CATControl Interface, every bone exposes the CATNodeControl interface.
Interface: CATNodeControlFPInterface Properties: .NumArbBones : integer : Read .Node : node : Read .Address : TSTR by value : Read .SetupTM : matrix3 by value : Read|Write .tmBoneParent : matrix3 by value : Read .tmBoneWorld : matrix3 by value : Read .tmBoneLocal : matrix3 by value : Read .LocalScale : point3 by value : Read .tmChildParent : matrix3 by value : Read .Stretchy : boolean : Read|Write .EffectHierarchy : boolean : Read|Write .ApplyTransforms : boolean : Read|Write .NumLayerFloats : integer : Read .ExtraBones : control by value array : Read .SetupModeLocks : bitArray : Read|Write|Validated by Validator function .AnimationLocks : bitArray : Read|Write|Validated by Validator function .MirrorBone : node : Read|Write Methods: <control>AddArbBone() <control>GetArbBone <index>index <control>CreateLayerFloat() Actions: Interface: ExtraRigNodesInterface Properties: .ExtraRigNodes : node by value array : Read|Write Methods: <void>AddExtraRigNodes <node by value array>nodes <void>RemoveExtraRigNodes <node by value array>nodes
What this means is that you can always access the node of a bone by using the convention
<catrigbone>.node
Example:
If you have a bone selected that has extra bones added to it, like a head bone that has facial bones, you can use the following...
($[3].GetArbBone 1).node
You will then have the node of the 1st extra bone that is attached to the selected bone.
Note:
Internally we call 'Extra' bones 'Arb' bones. This is simply a naming different. Arb is short of Arbitrary. Arb bones are bones that have no predefined use, unlike finders, limb, or tail bones that all have a predefined use.
In addition to the Hubs expose a special interface for doing special things that only hubs can do. This includes things like adding arms and legs and tails
Interface: HubFPInterface Properties: .PinHub : boolean : Read|Write .OrientTM : matrix3 : Read .DangleCtrl : control : Read Methods: <void>CollapsePoseToCurLayer() <void>CollapseTimeRangeToCurrLayer <time>StartTime <time>EndTime <time>Frequency <void>AddArm() <void>AddLeg() <void>AddSpine() <void>AddTail() Actions:
ShowInterfaces $<LimbBone>[3][1].controller
Interface: LimbFPInterface Properties: .IKTarget : node : Read .IsLeg : boolean : Read .IsArm : boolean : Read .LMR : integer : Read|Write .SymLimb : control : Read Methods: <void>CollapsePoseToCurLayer() <void>CollapseTimeRangeToCurrLayer <time>StartTime <time>EndTime <time>Frequency <void>CreateIKTarget() <void>MoveIKTargetToEndOfLimb() Actions: Interface: CATControlInterface Properties: .CATParent : node : Read .Name : TSTR by value : Read|Write Methods: <void>PasteLayer <control>source <integer>fromindex <integer>toindex <boolean>instance <void>PasteRig <control>source <boolean>SaveClip <TSTR>filename <time>StartTime <time>EndTime <node>LoadClip <TSTR>filename <time>time <boolean>mirrordata <boolean>SavePose <TSTR>filename <node>LoadPose <TSTR>filename <time>time <boolean>mirrordata Actions:
Interface: Tail Functions Properties: Methods: <void>CollapsePoseToCurLayer() <void>CollapseTimeRangeToCurrLayer <time>StartTime <time>EndTime <time>Frequency Actions: Interface: CATControlInterface Properties: .CATParent : node : Read .Name : TSTR by value : Read|Write Methods: <void>PasteLayer <control>source <integer>fromindex <integer>toindex <boolean>instance <void>PasteRig <control>source <boolean>mirrordata <boolean>SaveClip <TSTR>filename <time>StartTime <time>EndTime <node>LoadClip <TSTR>filename <time>time <boolean>mirrordata <boolean>SavePose <TSTR>filename <node>LoadPose <TSTR>filename <time>time <boolean>mirrordata Actions:
OK
The CATParent holds a controller called the LayerRoot. The LayerRoot is the controller that manages all the layers in the character. The LayerRoot holds a table of LayerInfo controllers. The LayerInfo controllers hold information relevant to each layer such as the layer name, global weight, timewarp curve, etc.
This Interface exposes all the layer manipulations to script. This interface is available on every layer controller, the CATParent and the layer root controller. Although many controllers expose the LayerRootFPInterface, and function calls made to a LayerRootInterface are passed directly on to the LayerRoot controller. The LayerRootFPInterface is exposed on multiple controllers in the character hierarchy simply for the convenience of the scripter.
.NumLayers : integer : Read
The number of layers currently in the layer stack on this character
.SelectedLayer : integer : Read|Write
If a layer is currently selected, then this returns its index, or -1 if no layer is soloed
.SoloLayer : integer : Read|Write
If a layer is currently soloed, then this returns its index, or -1 if no layer is soloed
.TrackDisplayMethod : integer : Read|Write
Returns the setting for Track display. This crrelates to the setting on the CATParent Rollout
<integer>AppendLayer <TSTR>name <name>method method Validated by Validator function
Add a new layer to the end of the layer stack.
Example: $CATParent.AppendLayer “NewLayerName” #absolute
<boolean>InsertLayer <TSTR>name <integer>layerID <name>method method Validated by Validator function
Insert a layer into the layer stack at the specified position
<void>RemoveLayer <integer>layerID
Remove the specified layer.
<void>MoveLayerUp <integer>layerID
Move the specified layer up one position in the layer stack.
<void>MoveLayerDown <integer>layerID
Move the specified layer down position in the layer stack.
<boolean>SaveClip <TSTR>filename <time>starttime <time>endtime <integer>startlayer <integer>endlayer
Save a CAT Clip file to the hard drive.
Example: $CATParent.SaveClip “c:\backflip.clp” 20 130 2 3
<boolean>SavePose <TSTR>filename
Save a pose file to the hard drive.
Example: $CATParent.layers.controller.SavePose “c:\point.pse”
<node>LoadClip <TSTR>filename <time>starttime scaledata:<boolean> transformdata:<boolean> mirrordata:<boolean> mirrorworldX:<boolean> mirrorworldY:<boolean> scaledata default value: true transformdata default value: true mirrordata default value: false mirrorworldX default value: false mirrorworldY default value: false
Load a CAT Clip file from the hard drive.
<node>LoadPose <TSTR>filename <time>starttime scaledata:<boolean> transformdata:<boolean> mirrordata:<boolean> mirrorworldX:<boolean> mirrorworldY:<boolean> scaledata default value: true transformdata default value: true mirrordata default value: false mirrorworldX default value: false mirrorworldY default value: false
Load a CAT Pose file from the hard drive.
<TSTR>GetFileTagValue <TSTR>filename <TSTR>tag
Given a Clip or Pose file, return a value of a specified tag in the File.
<boolean>LoadHTR <TSTR>filename <TSTR>camfile
<boolean>LoadBVH <TSTR>filename <TSTR>camfile
<boolean>LoadFBX <TSTR>filename <TSTR>camfile
<boolean>LoadBIP <TSTR>filename <TSTR>camfile
<void>CollapsePoseToCurLayer()
Take the result of the layer stack and bake it into a layer.
<boolean>CollapseTimeRangeToLayer <time>StartTime <time>Endtime <time>Frequency quiet:<boolean> quiet default value: true
Collapse the current layer stack down to one new layer.
<void>CopyLayer <index>LayerID
Copy the Current later ready to Paste it.
<void>PasteLayer Instance:<boolean> CopyLayerInfo:<boolean> Instance default value: false CopyLayerInfo default value: true
Paste the copied layer onto this layer stack
The LayerRoot holds a table of LayerInfo controllers. Each LayerInfo controller holds the properties for a layer in the layer stack.
.weights : float
The weights subanim found on the LayerInfo controller is global weights controller for this layer.
.timewarp : float
Access to the layer time warp controller.
.transform : transform
The transform controller for the Transform node.
To display the Interfaces for the LayerInfo controller, use the following line of MaxScript.
ShowInterfaces $<CATParent>.layers.controller[1].controller
.LayerName : TSTR by value : Read|Write
The name of the layer as it appears in the LayerManager rollout.
.LayerColour : color by value : Read|Write
The color of the layer. This is the colour that is used to colour the CATRig when Colour Modes is set to 'Layer Colours'
.LayerType : TSTR by value : Read
Use this to find out what type of layer this LayerInfo controller is maintaining.
Example: "Absolute"
.LayerEnabled : boolean : Read|Write
This value enables or disables the layer.
.TransformNodeOn : boolean : Read|Write
An Setting allowing you to turn the transform node on and of, or to check the current state of the transform node button.
.LayerIndex : index : Read
The index of this layer in the Layer stack. An index of 1 means that it is at the very top of the layer stack.
.CATParent : node : Read
Access to the CATParent node.
<node>GetTransformNode()
Returns the INode for the transform node if it is currently created.
All CATBones use and CATObjects to display their geometry in the viewport.
.TMController : integer : Read
This value returns the Transform controller for this object.
.SelectedLayer : integer : Read|Write
Returns the currently selected layer.
.SoloLayer : integer : Read|Write
Returns the index of the solo layer, or -1 if no layer is soloed.
<void>CopyMeshFromNode <node>node
Add a new layer to the bottom of the layer stack. Returns the index of the new layer.
Example: $.CopyMeshFromNode $Sphere01
<void>PasteRig <object>pasteobject
Paste the setting from an object onto the current one.
Accessing bones in a skeleton using their names is very error prone. If you write scripts that access bones using their names, it means that if an artist renames a bone, then your scripts will break. CAT was designed so that you can navigate the hierarchies using script without needing to know the names of the bones in the rig. This means that you can write scripts that will work on any CATrig, regardless of the naming conventions used.
The CATRig is structures like a tree. Each bone has children bones that you can navigate to and get their children. There are special controllers in CAT that hold parts of the tree together, but do not show up in the hierarchy you see in Max. For example, there is a controller called 'Limb', whose job is to maintain the limb. Each bone in the limb is generic and only contains information related to that specific bone. If you want information about the limb, you can access the limb controller.
The basic tree structure looks like this. From a hub controller you can get to a limb controller, and from a limb controller you can get to the collarbone controller. From a hub controller you can get to a tail controller, and from a tail controller you can get to any of the tail bone controllers. From a hub controller you can get to a spine controller, and from a spine controller you can get to any of the spine bone controllers, or to the hub controller at the tip of the spine.
Hubs Hubs->Limbs
Hubs->Limbs->Collarbone
Hubs->Limbs->Limb Bones
Hubs->Limbs->Limb Bones->Bone Segments
Hubs->Limbs->Palm/Ankle
Hubs->Limbs->Palm/Ankle->Digits
Hubs->Limbs->Palm/Ankle->Digits->Digit Bones
Hubs->Tails
Hubs->Tails->Tail Bones
Hubs->Spines
Hubs->Spines->Spine Bones
Hubs->Spines->Tip Hub
We have provided methods that enable you to access bones using what we call bone 'addresses'. Each bone in a CATRig contains a unique address.
Example:
Select a bone and type the following into the listener.
$[3].address
You should get a result that will looks something like the following.
"SceneRootNode.Hub.Spine[0].Hub.Limb[0].LimbBone[1].BoneSeg[0]"
Once you have an address, then is is very easy to get the same bone on a different rig. There is a method on the CATParent for retrieving a bone from the skeleton using an address. This method is called GetBoneUsingAddress.
Example:
Select the CATParent of a CATRig and type the following into the listener and press enter. In this example, we have selected a CATRigs left elbow.
$[3].address
You should get a result that will looks something like the following.
"SceneRootNode.Hub.Spine[0].Hub.Limb[0].LimbBone[1].BoneSeg[0]"
Once you have a bone address, you can use that address on the same, or on a different CATRig to retrieve the same bone. We can use the address we generated earlier to find the left elbow on any CATRig.
$.GetBoneByAddress "SceneRootNode.Hub.Spine[0].Hub.Limb[0].LimbBone[1].BoneSeg[0]"
returns...
$Object:MaramaLForeArm1 @ [18.374180,2.811419,91.353607]
Tip:
Remember, from any bone in CAT, you can access the CATParent using the following syntax... $[3].CATParent. See Accessing CATControls
The CATParent provides a method that will generate a list of all the bones in a CATRig called 'CATRigNodes'.
Example: Select the CATParent of a CATRig and type the following into the listener and press enter.
$.CATRigNodes
#($Object:MaramaPelvis @ [0.643538,12.460782,56.982174], $IKTarget:MaramaLPlatform @ [-9.479717,45.484272,2.016279], $Object:MaramaLThigh @ [-5.399519,13.610688,52.234413], $Object:MaramaLCalf @ [-5.073243,42.623035,42.755692], $Object:MaramaLAnkle @ [-9.923340,42.132290,12.445667], $Object:MaramaLToe @ [-8.354513,46.355228,5.667924], $IKTarget:MaramaRPlatform @ [22.299629,-26.312172,2.125263], $Object:MaramaRThigh @ [7.615567,12.286880,53.555431], $Object:MaramaRCalf @ [18.307613,1.576054,27.048307], $Object:MaramaRAnkle @ [15.838839,-24.331221,10.763937], $Object:MaramaRToe @ [21.849598,-24.039907,5.285047], $Object:MaramaSpine1 @ [0.084267,13.617851,61.769054], $Object:MaramaSpine2 @ [0.155154,17.742903,70.302628], $Object:MaramaSpine3 @ [0.838520,20.302643,79.403381], $Object:MaramaRibcage @ [1.721320,22.587023,88.560089], $IKTarget:MaramaLIKTarget @ [-14.076582,23.387424,73.722427], $Object:MaramaLCollarbone @ [-0.265896,27.761074,90.442078], $Object:MaramaLUpperArm @ [-7.214790,19.994431,91.494965], $Object:MaramaLForeArm1 @ [-22.375963,8.502111,91.433647], $Object:MaramaLForeArm2 @ [-18.546179,13.426756,83.416336], ...)
All the bones in the entire rig have been collected and put into an array for you. This saves you the time of learning how to navigate CATRig hierarchies.
The CATParent also provides a method that will generate a list of all the layer controllers in a CATRig called 'CATRigLayerCtrls'.
Example: Select the CATParent of a CATRig and type the following into the listener and press enter.
$.CATRigLayerCtrls
#(Controller:LayerWeights, Controller:LayerMatrix3, Controller:LayerFloat, Controller:LayerWeights, Controller:LayerFloat, Controller:LayerFloat, Controller:LayerFloat, Controller:LayerMatrix3, Controller:LayerMatrix3, Controller:LayerWeights, Controller:LayerMatrix3, Controller:LayerFloat, Controller:LayerMatrix3, Controller:LayerMatrix3, Controller:LayerWeights, Controller:LayerFloat, Controller:LayerFloat, Controller:LayerFloat, Controller:LayerMatrix3, Controller:LayerMatrix3, ...)
The 'Pose Mixer' utility uses this function to find all the controllers that will be keyframed.
Every bone in a CATRig is controlled by a controller. This controller exposes the CATNodeControl interface. This means that if you want to access information about that bone you can.
Example:
$[3].address
Example: To get the layer controller for a CATBone using the following line...
$[3].layertrans.controller
Note:
Some bones do not have a layertrans controller, such as the bones in the procedural spine.
Hubs are the 'joiners' of the CAT hierarchy. Hubs have legs and arms, tails, spines and extra bones attached.
For any hub, you can see how many limbs are attached and then you can access the limb and get the bones from that limb.
Example: If you have a hub bone selected and you want to know how many limbs are attached to the hub use the following line of script.
$[3].limbs.count
Limbs are made up of 4 types of controllers, ‘Limb’, Collarbone, Bone, BoneSeg, Palm, IKTarget, and Upvector. ‘Limb’ holds all the information about the whole Limb. The name of the Limb, etc, and it also keep a pointer to each bone in the Limb and the collarbone and ankle and the IKTarget.
From one Limb bone you can access everything in a CAT rig.
Example:
To get the ‘Limb’ controller from a limb bone use the following line of script.
$[3].Limb
Example:
If you have a Limb bone selected and you want to know how many bones in the Limb use the following line of script.
$[3].Limb.bones.count
Example:
To get the second bone in the Limb use the following
$[3].Limb.bones[ 2 ]
Example:
if you have one Limb bone selected and you want to select all the bones in the Limb, you can use the following line.
for bone in $[3].Limb.bones do selectMore bone.node
Example:
If you have a Limb bone selected and you want to get the name of the 1st bone in the Limb, you can do the following.
$[3].limb.bones[1].node.name
$ -> Accesses the selected bone
$[3] -> Accesses the selected bone's transform controller
$[3].limb -> Accesses the selected bone's tail controller
$[3].limb.bones[1] -> Accesses the 1st bone in the limb
controller
$[3].limb.bones[1].node -> Accesses the node of the 1st bone.
$[3].limb.bones[1].node.name -> Accesses the name of the node of the
1st bone in the Limb.
Tails are made up of 2 types of controllers, TailData, and TailTrans. TailData holds all the information about the whole tail. The name of the tail, etc, and it also keep a pointer to each bone in the tail.
From one tail bone you can access everything in a CAT rig.
Example:
To get the TailData controller from a tail bone use the following line of script.
$[3].tail
Example:
If you have a Tail bone selected and you want to know how many bones in the tail use the following line of script.
$[3].tail.bones.count
Example:
To get the second bone in the tail use the following
$[3].tail.bones[ 2 ]
Example:
if you have one tail bone selected and you want to select all the bones in the tail, you can use the following line.
for bone in $[3].tail.bones do selectMore bone.node
Example:
If you have a tail bone selected and you want to get the name of the 1st bone in the tail, you can do the following.
$[3].tail.bones[1].node.name
$ -> Accesses the selected bone
$[3] -> Accesses the selected bone's transform controller
$[3].tail -> Accesses the selected bone's tail controller
$[3].tail.bones[1] -> Accesses the 1st bone in the tail
controller
$[3].tail.bones[1].node -> Accesses the node of the 1st bone.
$[3].tail.bones[1].node.name -> Accesses the name of the node of the
1st bone in the tail.
This section of the CAT Wiki is dedicated to issues we have discovered with CAT. These issues may cause crashes, or simply an inconvenience. We always work hard to fix any problems in CAT we find with each release, but some problems are harder to fix than others.
Please note that the problem you are experiencing may have been fixed already. Before sending a bug to techsupport@catoolkit.com, please check that we have not already fixed this bug in a newer release than the one you are working with.
For a list of changes in CAT: Recent Changes in CAT
If you are in pivot editing mode and try to change layers, CAT will crash
Saving Animation on layers with Max IK Chains will crash Max
CAT's animation saver does not support Reaction Controllers
Rigs using Z-Axis alignment may crash when assigning CATMotion Layers
Loading CAT 1.4 files in CAT 2.521 may cause the rigs to look completely screwed up.
When working with the foot pivot system, you will be in sub-object mode in the motion panel.
If you attempt to change layers at this point, CAT will cause a crash in Max.
You may have used the Apply Max IK utility found in the CAT menu in Max to assign one of the standard IK systems to a CAT hierarchy. You may wish to do this, for example, if you have a long tail on your rig, and you wish to use the Spline IK in max to control it.
If you have used a Max IKChain on any body part in your CATRig, then saving out an animation file using either the Clip Manager or the Right Click Save Animation features, then Max will crash.
We tried to fix this issue for CAT2.5, but were not able to.
When the clip saver tries to save out the IK system, it gets to the Bone that has the IK system applied to it, and when it queries the IK Controller for a basic value, the IK system crashes. We don't know why and are unable to avoid the crash automatically.
Possibly the simplest workaround would be to collapse animation from the IK system to a basic keyframe layer and then save this out.
Currently the Animation Saver in CAT does not support some of the more complex procedural controllers that are available in Max.
The Reaction Controller cannot be saved as part of a Animation Clip file. This is because the reaction controller reacts to objects in the scene, and we have not been able to save these complex relationships to the CAT clip file yet.
If you are working on a rig that is set to Z-Axis alignment, then add a CATMotion layer you may experience a crash.
The crash is caused when adding CATMotion layers to palms. The rigs that do not crash are rigs that do not use palms. This would include rigs such as spider and centipede.
Currently there is no workaround. However, if you write to techsupport@catoolkit.com we can give you access to a build that has this problem fixed.
If you are using CAT 2.52, the loading old files from CAT1 may require you to go through the following steps to upgrade them CAT 2.52.
For newer version of CAT, we have addressed this issue.
Open the files in CAT 2.4
Put the CATRigs into Setup Mode.
Save the scene file.
Open the files in the latest version of CAT.
If you need access to CAT2.4, please contact support@catoolkit.com and we can provide this.
CAT does not specify any particular keyframe interpolation scheme. Instead CAT allows you to use any of the 3dsmax animation controllers. This means that you can chose between Euler, Quaternion, TCB, and Bezier interpolation simply by assigning the controller that you prefer. See Assigning Controllers to Layers
Welcome and congratulations on taking the time to familiarise yourself with the latest is muscle deformation technology! With CATMuscle you will open the door to a new range of possibilities for controlling your skin deformations, heavily reducing those frustrating hours of envelope tweaking.
CATMuscle is the latest addition to the CAT family and we see it as the missing link. It doesn't matter how great your character animation is if you aren't happy with the way your model is deforming.
Of course, the tool you now have available to you is a pre-release version and is still being perfected. If you see how it can better suit your requirements then tell us! We are also very interested to see your work - feel free to share your results with us by sending in movies etc.
Here's wishing all the best with your experimentation!
Scott Pearson
CEO
Character Animation Technologies Ltd
CATMuscle represents a new approach to controlling the way your mesh is deformed. It was created to get around the limitations of simply linking the movement of mesh vertices to the bones of the underlying rig structure as you typically do when skinning.
Somehow there never seemed to be an elegant solution to problem areas such as shoulders and backsides, no matter how long we tweaked the bone envelopes or vertex weights. Meanwhile we found that existing muscle simulation software required too much complex setup, was too slow to interact with in the viewport and often still didn't provide the right result.
CATMuscle is designed around the premise that what looks right, is right. It doesn't attempt to accurately simulate an anatomical structure and it doesn't require a biologically accurate, underlying skeletal structure.
CATMuscles use Bezier patch surface mathematics to control the deformation of patches or groups of bones that are laid down across the surface of your character. The muscles are included in your skinning solution and provide you with much better control over how your mesh deforms than otherwise possible.
CATMuscle is compatible with all existing character animation tools. It can be used in conjunction with Biped, Custom built rigs, and of course CATRigs.
The idea is that you add as many or as few muscles as you need to get the effect you require. In some cases this may just be a few muscle strands in the neck of your dinosaur, or it may be a complete muscular structure.
Once in place, muscles can be given volume by adding collision objects (spheres) which the muscles can slide over. CATMuscles can also be linked to reaction controllers and open transform controllers etc, enabling you to create incredibly sophisticated muscle rigs.
CATMuscle's preset system allows you to save up CATMuscle rigs, including all those reaction controllers etc and apply them with ease to another character rig. This important tool means you do not have to start from scratch every time and allows you to make use of the muscle presets we have already created for you.
What we have found is that if the muscles are positioned carefully they can indeed give the illusion of a complex underlying anatomical structure, and this without significant slowdown as you interact with your character in the viewport.
In the rest of this document we will introduce all of the important aspects of the system.
In 3ds Max CAT, muscles are helper objects normally used to create a skin that will behave realistically when it is stretched and deformed.
For example, you can see here how Marama's shoulder and upper arm have collapsed after being twisted and pulled in various directions. (Marama is one of the standard CATrigs included with 3ds Max CAT.)
Marama's shoulder will behave better once we finish applying the CATMuscle to her CATBones.
That's because Marama's rigging includes no muscle objects: the shape of her skin is determined by the relative positions of her CATBones.
In the image, the purple patches are the segments of a CATMuscle that we have created and shaped to use as muscles for her pectorals and shoulder. To complete the job, we would need to:
Two kinds of muscles: CATMuscles and Muscle Strands
As the Create panel shows, you can create two kinds of muscles:
Modify panel for a CATMuscle
CATMuscles are multi-segmented helper objects that are best used for broad areas, such as the shoulders and pectorals, that need relatively consistent stretching and deforming.
Once you have created a CATMUscle, you can modify how it is segmented, its collision detection properties, etc.
Freshly created muscle strand, suitable for shaping into a bicep
Muscle strands are like a Bezier curve between 2 points. Strands provide more precision than CATMuscles, and give much better results when the skin must be twisted.
While CATMuscles are best for skinning shoulders and pectorals, muscle strands work better for skinning arms and legs.
The image shows a freshly created muscle strand intended for use a bicep.
When you are still in the Create panel, you have some ability to shape the bicep with your mouse. But the Modify panel is where you set most of strand's properties.
Once you are satisfied with your bicep:
Once you are satisfied with the behavior of one arm, you can easily create a copy of the arm (including all the CATBones, the muscle strands, the skin, and so forth) that is a mirror of the original.
The CATMuscle Interface holds all the settings for a single CATMuscle.

Name: This edit box allows you to rename the muscle and all its handles quickly and easily
Colours: The swatch box allows you to edit the colour of the muscle.
U Segs: The number of muscle segments across the width of the muscle.
V Segs: The number of segments along the length of the muscle.
Handle Size: The size of all the handles for the muscle in the viewport.
‘L’ ‘M’ and ‘R’: These radio buttons tell the muscle whether it is being used on the Left, Right, or Middle side of the body. The LMR settings are used in the renaming of muscles. Muscles on both sides of the body can have the same name, but L M or R will be inserted in to the name to make them unique.
Tip:
Use LMR is used when copying/pasting muscles. When the settings of a ‘L’ muscle, is pasted onto a ‘R’ muscle, the positions of all the handles are automatically mirrored.
This button will hide the entire muscle and all its handles
This button will show the entire muscle and all its handles
Hides the handles only
Unhides the handles
Copies a muscle's settings.
Pastes a muscle's settings.
Mirror Axis: These radio buttons control which axis the muscle will be mirrored through when copying and pasting muscle settings with Copy and Paste.
Copy and Paste copy and paste muscle settings between muscles. This includes the number of segments, handle size, handle positions and colour.
If both muscles are on the same side as identified by the LMR radio buttons then the settings will be pasted and the two muscles will lie on top of each other. If the muscles are on different sides (e.g. on is L and the other R) then the settings will be mirrored.
All the LOCAL positions of all the handles are also pasted. This means that muscles linked onto bones on either side of the body will be positioned relative to their own parents.
The axis that the settings are mirrored on is controlled by the Mirror Axis radio buttons. CATRig bones will always require the X axis. Biped will tend to require the Y axis be selected.
Collision detection is used to add volume to your muscle system. Usually a couple of spheres will suffice but you can add as many as you wish.
Collision detection is implemented using primitive spheres because they are very fast to calculate. Collisions are calculated on the mathematics of the sphere, rather than its geometry so it doesn't matter how many polygons your sphere has.
Spheres can be scaled and distorted using the scale tool. Modifiers will not have any effect. You can of course animate the scale, uniformly or not, and the radius of the sphere using any 3ds max controller.
The spheres in the collision list are evaluated from the top to the bottom of the list. This means the effect of the top most sphere is applied before the second sphere is calculated. The stacking of collision spheres can allow the user to create effects not directly supported by CATMuscle.

Use Add to select a sphere from the scene that you wish to use for collision detection.
Select a sphere from the list and hit the remove button to take it out of the list.
Hardness: Each sphere's effect on the muscle can be weighted. Setting this value to 0% removes the effect of the sphere completely from the muscle. This setting is animatable and can be linked into reaction controllers etc for a more sophisticated level of control.
Distortion: Vertices moved by spheres during collision detection can be moved in a few different directions. 100% Distortion, forces the vertices to move directly towards the spheres surface. This will cause a stretching effect on the muscle.
Hardness and Distortion are both animatable parameters. This means you could drive them using a reaction controller and an Expose Transform to force spheres to become hard based on the movement of bones in the hierarchy.
Vertex Normal: When this radio button is checked the muscle patch vertices will move relative to their own coordinates.
Object X: When checked the vertices will move along the X axis of the selected sphere.
Smooth: When checked smooth evens off the transition between the muscle area that is effected by the sphere and the non-effected area.
Invert: When checked the vertices move in the opposite direction.
The Muscle Manager is helper object you create in your scene in the CAT Objects menu. It looks like a dummy object.
The preset manager is designed to work with any hierarchy in 3ds max. It saves out presets that include full controller hierarchies and can save out all constraints and scripts used in the controller hierarchy. It does not attempt to save out any keyframes as it intended for rigging, rather than animation.

Rig Name: The rig name allows you to specify the current rig’s name you are working on. After saving a preset, you may want to load it onto another rig with a different name.
If you have followed common naming convention of prefixing bone names with Character names then the rig loader will be able to find all the correct bones in your new character and link up the muscles
For example if you have a bone
$BobLThigh
and you have specified 'Bob' as the name of your character
and you load bobs muscle preset onto 'Fred', then the muscle preset loader will look for a bone
$FredLThigh
Muscles: This listbox displays the muscles in the scene that the Muscle manager has loaded.
Add new muscles to the list of muscles managed by the Muscle Manager
Removes the muscles that are selected in the listbox from the list of muscles in the Muscle Manager.
Hides the muscles that are selected in the listbox.
Hides the muscles that are selected in the listbox.
Handle Size: This spinner allows you to set the handle size on any muscles that are selected in the muscles listbox.
This list box allows you to specify extra rigging information that should be considered part of your muscle rig. This will enable the preset saver to save those items with the rest of the muscles.
Add things to this list that are used in conjunction with the muscles. Only procedurally controlled objects should be added. That means no keyframed bones should be part of this list.
Add new nodes to the list of rigging nodes managed by the Muscle Manager
Removes the rigging nodes that are selected in the listbox from the list of rigging nodes in the Muscle Manager.
Hides the rigging nodes that are selected in the listbox.
Hides the rigging nodes that are selected in the listbox.
Mirror is a tool for use while creating a rig setup. It allows you to mirror selected objects, exactly relative to your animation rig. The 'X', 'Y' and 'Z' radio buttons control which axis that the objects will be mirrored in. When objects are mirrored they are automatically added to the Rigging list box.
NB: This is a tool that allows you to speedily create sophisticated rig structures such as shoulder blade setups. It is not a tool for beginners and a strong understanding of rigging is a requirement here. Objects can only be mirrored one at a time.
1. Create 2 point helpers on either side of the head of your rig.

CATRig with point helpers on either side of head
2.
Link both objects to the head
3. Select The Muscle Preset Manager object in the scene
4.
Click the Mirror button
5. Select the point helper you wish to mirror
6. Select the 2nd point helper.
The second point helper will move into a position that exactly mirrors the first one, relative to the head.

CATRig with point helpers equidistant on either side of head

Muscles: When selected CATMuscles in the Muscles list box will be saved.
Rigging: When selected rigging elements in the Muscles list box will be saved.
Saves a CATMuscle preset.
Loads a CATMuscle preset.
The CATMuscle preset loader loads the CATMuscle preset onto a rig, automatically relinking all the muscles and rigging objects in the same way as the original setup.
Naming conventions are important! In the first instance the system looks for the name of the original rig. E.g. if your original muscle system was linked to a base rig called 'Doberman', and the scene you are loading into has a rig called 'Doberman', the muscles will be loaded onto that rig.
The naming conventions used for the rest of the rig are important too. If the rest of the rig structure is named completely differently to the original rig the relinking process will fail.
Tip:
The Preset Loader uses the names of the nodes in your scenes when loading presets, so ensure you have unique names. For example, on quadrupeds ensure the front legs are named something like "frontleg" rather than just 'leg'.
If your target rig has a different name to the original rig you can tell the rig system what it is by entering the new name in Rig Name at the top of the Muscle Presets menu. As long as the rest of the rig has the same naming conventions as the original rig loading will continue as normal.
Presets are not scaled automatically on loading so that if you are loading onto a rig that has a different size to the original then you will have to resize the rig to fit.
1. Select the Muscle Manager
2. Enter the name of the target rig.
3. Click Load Preset and select the CATMuscle preset you wish to load.
CATMuscles are made up of groups of bone segments which are positioned on the surface of your model and then included in your skinning solution to give you greater control over your skin deformations. Muscles are positioned by moving corner handles. Each corner handle has vector handles to control the interpolation of the muscle between the corners.
The vector handles work in the same way as editing any other spline curve in 3ds max. In fact CATMuscle uses Bezier patch surface mathematics to calculate the interpolation.
Each of the handles has its own PRS (Position, Rotation, Scale) controller. This means that you can edit and animate the position, rotation and scale of each handle as you would any other object in 3ds max. You can also apply other transform controllers if you wish.

1.
Go to the Create Menu.
2.
Go to the Helpers Menu.
3. From the drop down box select CAT Objects.
4.
Select CATMuscle.
5. Drag in the viewport.

A newly created CATMuscle
6.
Go to the Modify Panel to view the CATMuscle Interface.
The following is a quick tutorial to give you an idea of when you'd use a CATMuscle and what is involved in doing so. For more in depth tutorials please watch the tutorial videos on our website.
You will usually choose to use CATMuscle when you have reached the limits of what you can achieve with envelope editing etc.
In the example below the problem area we will concentrate on is the hind leg of the Doberman. It seems that regardless of what settings are used there are always problems with the area along the back of the leg when the leg bends up too much.
There is a similar scene file to the one used in this tutorial provided with CATMuscle. It is called Dog.max.

Doberman model showing deformation problems on thigh
The answer to the problem is to create a CATMuscle which will be placed along the back of the leg to control the skin deformation in that area. Part one is to create the new CATMuscle. This is covered in Creating a CATMuscle.
Once created, the next stage is to position the CATMuscle. This should be done in your skinning pose (Setup Mode if you are using CAT).
1. Return to your skinning pose.
2.
Select any part of the muscle and move/rotate it roughly into position along the back of the thigh.

Doberman with new CATMuscle roughly positioned against back of leg
3.
Position/rotate the individual Corner Handles so that the muscle lines up with the mesh. To further tweak the surface use the smaller Vector Handles.

Doberman with new CATMuscle in place
4.
Link the Corner Handles to the correct bones. In this case the two upper corner handles will be linked to the thigh bone and the two lower handles will be linked to the tibia (the bone below the thigh). Linking is done with the standard 3ds max linking tool.

Linking a Corner Handle to the tibia bone
5.
Edit the Muscle Properties in the Modify Panel. You may wish to start by renaming the muscle. Descriptive names are good; we called it BackLeg_RearUpper. You may also wish to edit the number of segments on the muscle. The general rule is use as few as possible. We found a height of 4 and width of 2 worked fine for this one.
6. Add the muscle to your skinning solution. Simply select your mesh, add a Skin modifier (if you don't have one already) and Add the BackLeg_RearUpper bones to the solution using the Add button.

Be sure you don't add the Handles! (e.g. BackLeg_RearUpperRTL). The muscle segments will have the name BackLeg_RearUpperRxx. xx representing the number of the muscle segment.
7. Test the result. Move to the 'problem frame' and see the difference!

Doberman with CATMuscle added to back leg

Same frame showing CATMuscles, including the new one on the back leg

Bone Muscles are made up lots of small bone segments. This is useful if you wish to export the muscles to your game engine. Bone Muscles are really only recommended if you are a game developer wishing to export your muscles.
Bones Muscles use Bezier patch mathematics to drive the motion of many small bone segments. These small bone segments can be used in the Skin modifier in 3ds max, or any other matrix palette skinning system. They can be exported to game engines along with the rest of your hierarchy.
Every limb has an IK target built in. By default, in the case of legs, the IK target is displayed as a rectangle; on arms it is shown as a cross (point helper).
Because they of their function IK targets are not linked to the rig, though they are transformed by the Layer Transform Gizmo.
The IK target on a leg is called a FootPlatform. The only difference between a FootPlatform and an arm IK target is that while keyframing the FootPlatform allows you to animate the pivot position manually with the Foot Pivot System.
CATMotion has controls to animate the position of the pivot throughout the motion cycle. Normally you would want it at the toe as the foot lifts and at the heel as it plants, but of course the ultimate decision lies with you.
By default, with a FootPlatform the local Y axis is forwards and the local X axis is up.

The FootPlatform on the Standard Human rig


Extra bones are bones you can add to any bone in CAT for any reason you like. You can use Extra bones for armour, breathing bones, weapons, walking sticks, facial bones etc...
Extra bones are for all those things that you want to connect into your rig. These would include bones for controlling the secondary dynamics on bellies and breasts, weapon bones, walking sticks, and facial bones etc. Obviously the possibilities are endless.
Extra bones can be created from any CAT bone. By default they are linked to the bone they were created from, but once created they can be relinked to anything, simply by using Max's Select and Link tool.
It is possible to create a rig solely out of extra bones. An example of where this would be useful is creating a facial rig.
Extra bones can be added to any CATBone using two different methods.

On every bone in CAT in the Modifier panel rollout you will see a button to 'Add Bone'.

You can also right click on any bone in CAT, and if you CATRig is in Setup Mode, then you will see an 'Add Bone' menu item on the bottom left quad.

Name: The local name of this bone. See Using CAT's Naming System
Copy Bone, Paste Bone, and Paste Bone Mirrored: Buttons for coping and pasting this bones settings onto other bones. See Copying and Pasting Rig Parts
Use Custom Mesh: Toggle whether the custom mesh is displayed. See Customising the Geometry on CATBones
X, Y, X Values: The bones current dimensions.
Add Extra Bone: Press this button to add a new extra bone to your CATRig as a child of the current bone. See Adding Extra Bones
Extra bones have the same basic parameters as any other CAT bone. Their biggest difference is that they can be unlinked and relinked to any other object in the rig., including other CAT bones.

The Bone Setup rollout
Name: Name of the selected bone.
Copy limb settings.
Paste limb settings.
Paste Mirror limb settings.
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
X: The size of the bone in the X dimension, measured in CATUnits.
Y: The size of the bone in the Y dimension, measured in CATUnits.
Z: The size of the bone in the Z dimension, measured in CATUnits.
Creates an Extra Bone, linked to the selected bone.
Note:
Even though you can link the extra bone to anything in the scene if you wish, the bone will always remain parented to its source bone in the Weights View for feathered weighting.
With CAT2 you can create complete facial rigs with their own layer setup etc. The advantage of this is that you can then use CAT's non linear animation system to control blending between expressions and phonemes in the same way you would with Max's morpher, completely separate from the rest of your character's animation.

Marama with facial rig setup
Using this system, a facial rig is achieved simply by creating a pelvis and then adding extra bones as required. The pelvis is then linked to the head of the character.
When setting up the bones, get one side looking right and then Paste Mirror bone positions onto opposing extra bones to quickly set up the other side of the face. The bones are mirrored relative to their root object, in this case the pelvis.

To stop the rig returning to its CATParent, select the pelvis and go to the Bone Hierarchy rollout in the Link Info panel. When in Setup Pose make sure Setup Mode Inheritance Positions and Rotations are both checked (see below). Having these checked means that when the rig is in Setup Mode it will inherit its positions from the object it is linked to (in this case the head of its character) rather than returning to its own CATParent.

When setting up your different target expressions, use local adjustment layers and then blend between expressions simply by animating the adjustment layer's Global Weights.
Once one facial rig has been setup it can be saved as a CATRig preset. The same goes for the phoneme blending etc, which would of course be saved out as a CLP file. As with any other CATRig the preset can then be reloaded an quickly edited to suit a different character. The facial animation will most likely still work on the new face, with only a minimum of tweaking required.
The documentation in this wiki is not the only place to learn about 3ds Max CAT. You can post questions, view tutorials, and discuss 3ds Max CAT at the following sites:
Please note that other web sites may link to an image with a direct URL, and so may still be listed here despite being in active use.
Showing below up to 21 results starting with #1.
LicMan2.jpg . . 20:04, 17 Sep 2006 . . Phtaylor
RangesViewRangesToolbar.jpg . . 14:11, 22 Sep 2006 . . Phtaylor
RangesViewRangesToolbarPositionRanges.jpg . . 14:11, 22 Sep 2006 . . Phtaylor
CopyPastePoses BodyPoses3.jpg . . 20:43, 27 Sep 2006 . . Phtaylor
Killer plant eats monkey copy.jpg . . 18:36, 17 Oct 2006 . . Phtaylor
PoseMixer.zip . . 21:55, 23 Oct 2006 . . Phtaylor
Installer8c.jpg . . 15:14, 6 Dec 2006 . . Phtaylor
CATMotion.zip . . 13:45, 20 Feb 2007 . . Phtaylor
AddKey.gif . . 15:47, 21 Feb 2007 . . Phtaylor
Limbanimation v2-5.jpg . . 11:33, 28 Jun 2007 . . Grahamef (Limb Animation rollout)
Save Limb Pose button.jpg . . 11:45, 28 Jun 2007 . . Grahamef (Save Limb Pose button)
Load Preset button.jpg . . 11:47, 28 Jun 2007 . . Grahamef (Load Preset button)
Layer Transform menu.jpg . . 16:50, 28 Jun 2007 . . Grahamef (Layer Transform menu)
Ghosting in viewport.jpg . . 16:53, 28 Jun 2007 . . Grahamef (Game Char with ghost showing previous layer's animation)
Ranges View showing sub-ranges.jpg . . 14:08, 29 Jun 2007 . . Grahamef (Ranges View showing sub-ranges)
Out-of-Ranges button.jpg . . 14:31, 29 Jun 2007 . . Grahamef (Out-of-Ranges button)
Copy Tail Settings button.jpg . . 17:14, 11 Jul 2007 . . Grahamef
Paste Tail Settings button.jpg . . 17:14, 11 Jul 2007 . . Grahamef
Paste Mirror Tail Settings button.jpg . . 17:15, 11 Jul 2007 . . Grahamef
PoseManager.jpg . . 12:21, 16 Jul 2007 . . Phtaylor
New animation is created in absolute layers. Motion data is also imported into absolute layers. As you keyframe, your animation keys are stored in the selected animation layer.
Blending between layers is often as simple as animating the Global Weight value for the top layer. Often this will be all you require. Sometimes, however you will wish to blend one limb separately to another or perhaps simply turn off some elements (e.g. the legs) to use the animation from another layer, below the current layer on the stack. This is called feathered weighting. One example of this would be where you are using keyframe animation for the upper body and CATMotion for the legs.
Feathered weighting is achieved by editing the local weights of individual rig elements.
Global weights are managed with the Global Weight spinner/curve editor. Local weights have their own spinner and curve editor.
Weights View is stored on the CATParent. However you can also access the global and local weights directly.
To navigate directly to the Global Weight Curve Editor:
Click on the Global Weight Curve Editor button in the Layer Manager rollout in the Animation panel.

Track View opens up to display the layers in the layer stack. The curves controlling the layer weights for the selected layer can now be viewed/edited.
To blend on an absolute layer:
1.
Go to the frame you wish to blend to and add another absolute layer in the Layer Manager rollout.
The absolute layer overrides existing animation layers and the rig remains stationary on the frame that the layer is created.
2. Rename it as required.
3.
Click on the Curve Editor button beside Global Weight in the Layer Manager rollout in the Animation panel.

Global Weight is displayed, showing the existing layers for the rig. In the image above there are three layers, PreHit, Reactor and Gets Up.
4.
Create a key on the frame you wish to blend on from and set the weight to 0.0.
5.
Create another key on frame you wish to blend on at and set the weight to 1.0.

The layer will now blend on and the character will be controlled by the new layer.
To navigate directly to the Local Weight Curve Editor:
Select the rig element you wish to edit the local weight for and click on the Local Weight Curve Editor button in the Layer Manager rollout in the Animation panel.

Track View opens up to display the layers in the layer stack. The curves controlling the layer weights for the selected object, in the selected layer can now be viewed/edited.
Select the left arm.
Go to the Local Weight spinner and turn it down to 0.
The arm will be no longer be affected by the current layer.
Using CAT you can squash, stretch, move and reverse the time for individual layers. This is done in Ranges View.
To edit ranges:
1.
Click on the Ranges button in the Layer Manager rollout.
The layers will be displayed as individual tracks.

2. The ranges for the layers can then be squashed, stretched and moved as normal in 3ds max. They can also be reversed.
In CAT2 you can now edit the Layer Weight, Time Warp and the Layer Transform gizmo ranges separately from the rest of the animation.

CAT2 Ranges View showing extended "sub-range" editing possibilities
In CAT2 you can use Max Out-of-Range types to loop individual animation layers. You can also use the Max Position Ranges button to manually control the loop range for the entire Animation Layer. These tools are very powerful and are particularly focused on the needs of game studios.
All you have to do to loop animation layers is select the layer you wish to loop and select the Out-of-Ranges button. Use as you normally would with a typical Max controller in the Curve Editor.
Max has a well hidden function called Position Ranges. What it does is decouple the animation range from the actual animation keyframes. Normally all controllers will loop according to the times of your first and last keyframes. This is very useful if you wish to loop over a longer or shorter period than your animation. Normally in Max you would have to edit the changes for each leaf of a controller individually. For example, for the X, Y and Z component of a Euler Rotation controller. Doing this for a whole character is pretty time consuming.
In CAT you can use the same tool to control an entire animation layer, which is much more practical :-)
1. Right Click on the toolbar area of the Curve Editor.
2. From the menu select Show Toolbars/Ranges: Dope Sheet

Ranges: Dope Sheet toolbar
3.
Select the Position Ranges button.
4. Edit the Layer Range as usual.
Time Warp curves enable you to control the velocity of an entire animation layer with a single spline curve. Matrix bullet time effects were never easier! The Time Warp curve can be found if you select the CATParent and open it up in the Curve Editor. They can also be quickly accessed from the
Time Warp, Curve Editor button in the Layer Manager.

Curve Editor showing Time Warp curve
You can now copy and paste animation layers, including between rigs. It is also possible to instance layers which means that different rigs can reference the same animation layer.
A character with an instanced animation layer can still be retimed, time warped and transformed. This application is particularly useful for crowd sequences.
Introduction to the Layer Manager
New animation is created in Absolute layers. Absolute layers include CATMotion, absolute [keyframe animation] layers and imported motion data (which is loaded into an absolute animation layer).
Before you can start animating you need an absolute layer to create your animation in.
To create an Absolute layer:
Select any part of your CATRig.
Go to the Layer Manager rollout in the Animation panel.

Click on the Create Absolute button.
An Absolute Layer is created in the Layer Manager listbox.

In the Mode drop down menu choose
Animation Mode.
You are now ready to start keyframing.
Assign new animation layers as you need them. It is very useful to break your animations down into manageable segments.
The Layer Manager is the heart of CAT’s Non Linear Animation system. Here keyframe animation, CATMotion and imported motion data can all be created and adjusted simultaneously.
Animation is created and adjusted in animation layers. Absolute Layers (which include CATMotion) are used to create animation in and Adjustment Layers are used to tweak/offset animation. All animation is stored in standard 3ds Max animation controllers which are piped into CAT's layer system. This is important because it means that you can use all 3ds Max animation controllers and access them as normal in the Curve Editor.
CATMotion and Absolute Layers override layers below them in the stack. Relative layers offset animation previous to them in the stack.
There is effectively no limit to how many animation layers you can have.
To access the Layer Manager rollout:
Select any part of the rig.
Go to the Animation Panel.
Go to the Layer Manager rollout.

CAT2 Layer Manager

Animation Mode drop down
This drop down menu has three options: Setup Mode, Animation Mode, and Stretchy Bones Mode.

Setup Mode: Puts the rig back into Setup Mode, for rig editing and skinning.

Animation Mode: Typical keyframe animation is done in this mode.

Stretchy Bones Mode: When in the this mode the bones you can animate the lengths of bones simply by dragging the rig elements, similarly to Setup Mode.

Rig Colour Mode drop down
This drop down menu has two options: Rig Colour Mode and Colour by Layer Mode.

Rig Colour Mode: Displays the rig with the default object colours.

Colour by Layer Mode: Colours the rig according to the colour of the layer that is affecting it at any given point in time.

Ranges View: Use ranges view to edit the timing of individual animation layers, similarly to using a video editing tool. This feature is core to CAT's NLA system.

Delete Animation Layer: Deletes selected layer.

Add Absolute Layer: Creates a new absolute layer to keyframe into.
Add Adjustment Layer (Local): Creates a Relative layer to offset/tweak animation below it in the layer stack. The offsets are calculated in the space of the rig elements. This is the same as a Relative Layer in CAT 1.

Add Adjustment Layer (World): Creates a Relative layer to offset/tweak animation below it in the layer stack. The offsets are calculated in world space.

Add CATMotion Layer: Adds a CATMotion layer. In CAT1 there was only one CATMotion Layer in the Layer Manager and it was always present. In CAT2 you can have as many CATMotion layers as you wish - or none at all.

Copy Animation Layer: Copies the selected animation layer.

Paste Animation Layer: Layers can now be copied or instanced, in the animation stack or between characters.

Collapse Layer Stack: Collapses all animation layers into a single animation layer.
Name: Edit the name of the selected animation layer.

Layer Colour: Allows you to edit the colour of the selected animation layer. Used when the rig is using Rig Colouring Mode.

Display Layer Transform Gizmo: The Layer Transform Gizmo is used to transform the whole animation layer. The Layer Transform Node can now be animated.

Dump current pose: Creates a snapshot of the current pose into the active layer.

Move animation layer down the stack: Remember that the visual bottom of the stack is actually the top!

Move animation layer up the stack
Ignore: When checked the selected layer is greyed out and ignored. This can also be achieved by double clicking on a layer.
Solo: When checked all layers other than the current layer will be ignored.
Global Weight: Opens up the curve editor to allow you to edit global layer weights (In CAT1 this used to be up by the ranges editor with a dumbbell symbol on it). Animating layer weights is used when blending between animations.

Local Weight: Opens up the curve editor to allow you to edit the local weights for the selected rig element. This is used when feathering layer weights.
Time Warp: Opens up the curve editor to allow you to edit the time warp graph. This allows you to retime the animation with a single curve.
Decoupling looping ranges from layer keyframes
CAT allows you to use the layer transform gizmo to transform your animation layers around in the viewport. This includes moving, rotating and scaling the data, both uniformly and non-uniformly. In CAT2 the layer transform gizmo is now animatable. The layer transform gizmo is particularly useful for lining up clips for blending between them.
Select the layer you wish to transform in the Layer Manager.

Click on the Layer Transform Gizmo button.


The Gizmo appears in the viewport (in this case at the feet of the rig).
Select the Transform Layer Gizmo and move it.


The rig and its entire animation is moved too!
The animation keys for the layer transform gizmo are can be found in the Transform branch, on the CATParent under the selected layer in the Curve Editor. They can also be quickly accessed through the Ranges View.

Animation keys for the Layer Transform Node in the Curve Editor

If you select the Layer Transform Node you will see this menu (above) in the Animation Panel. It includes two functions new to CAT2.4, ghosting and animation looping.
Display Ghost: When checked the system displays a ghost of the layer's animation, even when another layer is selected. This is a powerful tool that makes lining up animations between layers a breeze. Ghosts can be turned on and off on a layer by layer basis.

Game Char with ghost showing previous layer's animation
This function could described as a walk on spot mode for hand animation. It works by displacing the animation linearly from the start and end points specified. The idea is that the movement in space is removed so that the character is left animated on the spot. This tool is mainly for game animators who are creating walk cycles for game assets.
Start Time: The frame that the animation loop starts on.
End Time: The frame that the animation loop ends on.
Remove Displacement: When checked the overall displacement of the character is removed.
Using CAT’s adjustment layers in the Layer Manager you can non-destructively edit existing animation, including CATMotion, absolute keyframe animation, motion capture data and even other adjustment layers.
Keyframes in an adjustment layer offset the existing animation. For example you could use an adjustment layer to control the head movements of a rig walking with CATMotion. The head movements would applied on top of the existing CATMotion animation.
There are two types of adjustment layer, local and world adjustment layers. Local adjustment layers are useful for offsetting the a rig element relative the to rig (e.g. tilting down the head). World adjustment layers are particularly useful for offsetting IK targets, such as Foot IK targets in a mocap sequence.
Local adjustment layers are the same as relative layers in CAT1. They offset animation in the coordinate space of the rig.
Select any part of the rig.
Go to the Layer Manager rollout in the Animation panel.
Make sure Available is selected in the Layers list box

Go to the add layer drop down menu.
Select Add Local Adjustment Layer
A new layer is created below the existing layer.

This new layer is selected and weighted to 100%, meaning that you can start tweaking your animation immediately.
World adjustment layers offset the animation in world space.
To create a World Adjustment Layer:
Select any part of the rig.
Go to the Layer Manager rollout in the Animation panel.
Make sure Available is selected in the Layers list box

Go to the add layer drop down menu.
Select Add World Adjustment Layer
A new layer is created below the existing layer.

This new layer is selected and weighted to 100%, meaning that you can start tweaking your animation immediately.
Tip:
World adjustment layers are especially useful when offsetting limb IK targets, e.g. from mocap data.
Using CAT’s layer manager you can create separate new animations, quickly and simply tweak existing animations, blend between animation layers, edit the time and speed of individual layers and even transform your animation layer in the viewport.
All animation is held in standard 3ds Max animation controllers. This means that your animation is created as you would create any other animation in 3ds Max, and that you have the same access to all keyframes, in Track View.
Individual layers can be saved and loaded using the Clip Manager.

Image courtesy of Daniel Meitn Roca
Decoupling looping ranges from layer keyframes
Tails are easy to work with. Just rotate selected tail bones and they will curl up. Each bone stores its own keyframes.

Multiple tail links selected

When rotated up they all curl up
One of the features of the CATRig is that if you move a bone in the hierarchy (regardless of whether you are in IK or FK), the bones on either side will rotate to accommodate the move. This is system allows you to just push the rig around quickly and intuitively. This system is called Effect Hierarchy. Below are three examples of this:

Arm position before edit

Simply moving the elbow back bends the arm
If you move the upper arm, the ribcage (hub) rotates to accommodate this.

Select the upper arm

As the arm is moved the ribcage rotates to fit

Outstretched fingers

Moving the middle digit bends up the finger
As well as holding the same Limb Animation rollout as the rest of the limb the Palm has its own, unique functionality. These include the Digit Manager and the Palm Animation rollout.

Target Align: The Palm Animation rollout has a single slider on it called Target Align. The Target Align value lets you control whether the palm inherits the rotations of the IK target or not.
When the Target Align value is set to 0.0 the palm will move with the IK target but will stay aligned to the last bone on the limb (forearm on a human).

E.g. of palm not inheriting IK target rotations
When the Target Align value is set to 1.0 the palm inherits both positions and rotations from the IK target.

E.g. of palm inheriting IK target rotations
Digit controls include a digit manager with advanced digit modifiers.
The Digit Manager provides a powerful interface for controlling the digits on a palm. The Digit Manager rollout is found in the Animation panel on a selected palm. It has two parts, Preset Poses and Digit Modifiers.

Weight: The ratio that the highlighted preset has on the digits. This allows you to blend on a preset.
Save the current digit rotations as a new pose preset.
Delete a pose preset from the Preset Poses listbox (not from the hard drive).
Digit poses are held in the Preset Poses list box. Each pose stores the rotations for all the digits present when a pose preset is saved. These rotations can then be loaded onto any other palm.
If the selected palm has fewer digits than those of the pose preset the extra digits are ignored. If the palm has more digits the extra digits will receive no rotation data.
Each pose preset can be weighted, allowing you to blend from one pose to another or to mix poses to create a new preset.
To load a Digit Pose:
Double click on the desired pose in the Preset Poses list box.
The digit rotations are applied immediately.
To blend on a Digit Pose:
Click once on the chosen pose in the Preset Poses list box.
Drag up the weight in the Preset Weight spinner.
The digits will blend from their existing rotations towards the rotations of the selected preset.
To save a pose:
Edit the digits to the desired pose.
Click the Save Pose button.
Enter the new pose name and save.
Tip:
By default digit poses are held in \3dsmax\plugcf\CAT\HandPosePresets\
Tip:
You are not limited to using CAT’s digit manipulation controls. You can also select individual digit bones in the viewport and transform them as normal.

The Digit Modifiers provide tools to enable you to manipulate the digits, either singly or as a group. Selected digits can be transformed parametrically with the Spread, Bend, Roll and Curl spinners.
To select the digits you wish to modify:
Click and drag in the Digit Modifiers list box.
Spread rotates the selected digits away/towards each other from the base of the digit.

Bend rotates the selected digits up and down from the base of the digits.

Roll rotates the selected digits around their length.

Curl rotates the all the digit bones up and down.

Tip:
All modifications are relative to the existing rotations.

Select the palm.
Go to the Animation panel.

In the Digit Manager, highlight the digits you wish to edit.
Drag the Curl spinner.

The fingers curl in.
The Hub Hierarchy rollout has two settings, Allow IK Rotations and Pin Bone.

The Hub Hierarchy rollout
Allow IK Rotations is for retargeting only. When checked the hub will both rotate and move to find a best fit between the positions of the limb IK targets and the angles of the limbs. When unchecked the hub will move only.
Hubs can be pinned with a check box called Pin Bone. It allows you to temporarily lock a hub in position so that its parent can be transformed without affecting its child hub. A typical example of this would be pinning the ribcage of a character so that you can tilt the pelvis without repositioning the upper body.
Pinning is achieved by a switch found in the Hub Hierarchy rollout (found in the Hierarchy/Link Info panel) called Pin Bone.
Select the ribcage.
Go to the Hierarchy/Link Info panel.

On the Hub Hierarchy panel check Pin Bone.
Now when you manipulate the pelvis the ribcage isn't affected.

The Pelvis is selected

As the pelvis is moved the ribcage remains static
Pin Bone works by setting a keyframe on both the parent hub (pelvis) and the child hub (ribcage). The ribcage is effectively being counter rotated automatically to keep it in place.
In CAT2, scales controllers are now included in the non linear animation system. That means that you can now animate scales in animation layers in the same way as rotations and positions. This applies whether you are in Stretchy Bones Mode or not. In fact Stretchy Bones Mode is really just animating scales, but gives you a nice, user friendly and interactive way to control the scaling.
Unlike normal Max hierarchies, CAT elements will not skew when scaled non-uniformly. Scales are inherited as normal; if you scale the parent object the children will also be scaled. Scale inheritance can be controlled on a bone-by-bone basis in the CATBone Hierarchy Menu.
An important part of CAT2 is the CATBone Hierarchy system. This is found in the Inheritance/Link Info panel with the default Max Lock rollouts.
The CATBone Hierarchy rollout is similar in principle to the Max Locks system. It allows you to control what will be edited and inherited on individual CATRig bones.

CATBone Hierarchy rollout
Apply Transforms: This control relates to the layer transform gizmo only. If unchecked the selected bone will not have transformations from the layer transform gizmo piped into it. Most bones have this left unchecked because they are linked to a parent object and don't require any transform themselves. Normally the only bones that require transformations to be applied to them are the root node (pelvis) and the IK targets. The exception to this is when the IK target is linked to the rig (e.g. an arm IK target is linked to the ribcage).
In this case you would turn Apply Transforms off on the linked IK target. If you don't the IK target will receive transforms both from the ribcage AND the layer transform gizmo, and will be transformed twice.

Positions: controls whether the bone will inherit positions from its parent in Setup Mode.
Rotation: controls whether the bone will inherit rotations from its parent in Setup Mode.

Stretchy Bone: When checked the bone will stretch in Setup Mode or in Stretchy Bones Mode. In Animation Mode stretch is locked on all bones.
Effect Hierarchy: When checked moving a joint will rotate the bones on either side of it allowing you to interact with the rig almost solely with the Move tool.

Position: controls whether you can move the selected bone in Setup Mode.
Rotation: controls whether you can rotate the selected bone in Setup Mode.
Scale: controls whether you can scale the selected bone in Setup Mode.

Position: controls whether you can move the selected bone in Animation or Stretchy Bone Mode.
Rotation: controls whether you can rotate the selected bone in Animation or Stretchy Bone Mode.
Scale: controls whether you can scale the selected bone in Animation or Stretchy Bone Mode.
Tip:
Position will normally be locked on most bones because if you are able to move a bone you will be able to move it away from the rig. An example of where you would unlock it is where you wish to rip a limb/bone off the rig.
CAT uses a layer based animation system. That means that all keyframes are created in layers. There are two main types of layer: Absolute Layers and Adjustment Layers.
Absolute layers are used to create new animation. Standard 3ds Max animation controllers are used to store all of the transforms in the same way as if you were animating as normal with any standard 3ds Max object.
Adjustment layers are used to tweak existing animation. Keyframes in an adjustment layer offset existing layers below them in the stack, including CATMotion.
Before you can begin animating you have to be in an active layer and be out of Setup Mode!
Keyframe animation in CAT is as simple as selecting the element you wish to animate and transforming it in the viewport. A CATRig is set up so that you can just push it around into the pose you require.
Because your animation is stored in standard 3ds Max animation controllers you can create and edit your animation as you are used to. Keyframes can be edited in Track View as normal.
How various rig elements and sub-elements relate to each other is dictated by their setup parameters, accessed in the Modify panel. Some rig elements have extra animation parameters too; most notably the limbs, palms and ankles.
Tip:
Before you skin up your rig you may wish to make a few trial animations to make sure you are happy with the way the rig behaves.

Image compliments of Digital Pictures Iloura
F/IK is what we have called CAT's rig manipulation system. The precept behind it is simple: you should be able to just push your rig into position, in the viewport, whether you're linkages are driven by inverse kinematics or forward kinematics.
F/IK is actually a combination of different features and systems that combine to give you the ultimate combination of intuitive manipulation and complete flexibility and scalability.
The two main elements of the system are CAT's new FK driven IK and Effect Hierarchy.
The Layer Manager, the heart of CAT's NLA system, has had some important UI changes. Below I will introduce the new CAT2 interface.

CAT2 Layer Manager

Animation Mode drop down
This drop down menu has three options: Setup Mode, Animation Mode, and Stretchy Bones Mode.

Setup Mode: Puts the rig back into Setup Mode, for rig editing and skinning.

Animation Mode: Typical keyframe animation is done in this mode.
Stretchy Bones Mode: When in the this mode the bones you can animate the lengths of bones simply by dragging the rig elements, similarly to Setup Mode.
Rig Colour Mode drop down
This drop down menu has two options: Rig Colour Mode and Colour by Layer Mode.
Rig Colour Mode: Displays the rig with the default object colours.
Colour by Layer Mode: Colours the rig according to the colour of the layer that is affecting it at any given point in time.

Ranges View: Use ranges view to edit the timing of individual animation layers, similarly to using a video editing tool. This feature is core to CAT's NLA system.
Add Animation Layer drop down
Delete Animation Layer: Deletes selected layer.
Add Absolute Layer: Creates a new absolute layer to keyframe into.
Add Local Adjustment Layer: Creates an adjustment layer to offset/tweak animation below it in the layer stack. The offsets are calculated in the space of the rig elements. This is the same as a Relative Layer in CAT 1.

Add World Adjustment Layer: Creates a Relative layer to offset/tweak animation below it in the layer stack. The offsets are calculated in world space.

Add CATMotion Layer: Adds a CATMotion layer. In CAT1 there was only one CATMotion Layer in the Layer Manager and it was always present. In CAT2 you can have as many CATMotion layers as you wish - or none at all.

Copy Animation Layer: Copies the selected animation layer.

Paste Animation Layer: Layers can now be copied or instanced, in the animation stack or between characters.

Collapse Layer Stack: Collapses all animation layers into a single animation layer.
Name: Edit the name of the selected animation layer.

Layer Colour: Allows you to edit the colour of the selected animation layer. Used when the rig is using Rig Colouring Mode.

Display Layer Transform Gizmo: The Layer Transform Gizmo is used to transform the whole animation layer. The Layer Transform Gizmo can now be animated.

Dump current pose: Creates a snapshot of the current pose into the active layer.

Move animation layer down the stack: Remember that the visual bottom of the stack is actually the top!

Move animation layer up the stack
Ignore: When checked the selected layer is greyed out and ignored. This can also be achieved by double clicking on a layer.
Solo: When checked all layers other than the current layer will be ignored.
Global Weight: Opens up the curve editor to allow you to edit global layer weights (In CAT1 this used to be up by the ranges editor with a dumbbell symbol on it). Animating layer weights is used when blending between animations.

Local Weight: Opens up the curve editor to allow you to edit the local weights for the selected rig element. This is used when feathering layer weights.
Time Warp: Opens up the curve editor to allow you to edit the time warp graph. This allows you to retime the animation with a single curve.
Layer manipulations such as adding/removing/renaming/and moving layers up and down the stack are all now undoable.
You can now copy and paste animation layers, including between rigs. It is also possible to instance layers which means that different rigs can reference the same animation layer. You can still individually time warp and transform layers.
You can now have multiple CATMotion layers for more flexible workflow while blending between CATMotion sequences and keyframe animations.
Time Warp curves enable you to control the velocity of an entire animation layer with a single spline curve. Matrix bullet time effects were never easier! The Time Warp curve can be found if you select the CATParent and open it up in the Curve Editor.

Curve Editor showing Time Warp curve
All you have to do to loop animation layers is select the layer you wish to loop and select the
Out-of-Ranges button. Use as you normally would with a typical Max controller.
You can now edit the ranges for animation on the Layer Weight, Time Warp and the Layer Transform gizmo, separately from the rest of the animation.

CAT2 Ranges View showing extended "sub-range" editing possibilities
Max has a well hidden function called Position Ranges. What it does is decouple the animation range from the actual animation keyframes. Normally all controllers will loop according to the times of your first and last keyframes. This is very useful if you wish to loop over a longer or shorter period than your animation. Normally in Max you would have to edit the changes for each leaf of a controller individually. For example, to the X, Y and Z component of a Euler Rotation controller. Doing this for a whole character is pretty time consuming.
In CAT you can use the same tool to control an entire animation layer, which is much more practical!
1. Right Click on the toolbar area of the Curve Editor.
2. From the menu select Show Toolbars/Ranges: Dope Sheet

Ranges: Dope Sheet toolbar
3.
Select the Position Ranges button.
4. Edit the Layer Range as usual.
In CAT1 the Layer Transform Node (which used to look like a ghost) was not animatable. This has been rectified in CAT2. Keys for the animation are can be found in the Transform branch, on the CATParent under the selected layer in the Curve Editor.

Animation keys for the Layer Transform Node in the Curve Editor
Animated scales are now handled by CAT's NLA system. This applies whether you are in Stretchy Bones Mode or Animation Mode. Scales will not skew the rig elements and will not break any IK setups.
Scaling is hierarchical in that scales to a parent rig element will be inherited by its children, as is normal in Max. This can be controlled by editing the Inherit switches in the Hierarchy/Link Info Panel.
Tip:
Scales cannot be applied directly to procedural spines, but scale changes to a parent hub will be piped into a spine (e.g. from the pelvis into the spine).
The new stretchy bones feature allows fast manipulation of the new scale system. If you have set up rigs in CAT 1.4 you will already be familiar with the principles of this; simply select a bone and transform it. The bones on either side of the join resize to follow the mouse.
In CAT2 you now have the same functionality available for animation. This feature is especially useful for cartoony, "stretch and squash" animation, but I'm sure you'll find a plethora of other uses for it!
CAT now has a new system called Retargeting, which is available on all limbs. This system is an advance from the old KA Lifting system used in CAT1 for the same purpose.
The idea behind retargeting is that it maintains the IK solution and the angles of the limbs, moving and rotating the hub. This is in contrast to a normal IK solution that leaves the root object (hub) in place and extends out the limb bones. If the IK target is too far away the limb bones will snap straight. Using retargeting the IK solution can go completely straight without snapping.
We also use retargeting for retargeting motion capture data.
In CAT 1.4 you were able to pin the ribcage (for example) with the Pin Tip Hub feature. In CAT2 this feature remains the same, but the interface for it has been moved to Hierarchy/Link Info panel and been renamed to Pin Bone.
Apart from the fact that you can now have multiple CATMotion layers in the Layer Manager the largest change to CATMotion is the way hubs (pelvises, ribcages etc) are controlled. In CAT1 the hubs were controlled by a combination of different graphs (the different leg graphs and the curve for the hub itself). The downside of this technique was that it wasn't always obvious how the hub would move. In CAT2 this problem has been solved by removing input from the legs. Now the hub moves according to its curve - basta!
NOTE!
While we believe this change offers a big improvement for CATMotion, and it has one important side effect - CAT1 CATMotion presets will load, but their animations will require "repairing". The original hub animations will be lost, and will need to be recreated. Existing scenes will still be fine.
CAT2 has a new foot pivot system. For the user it is very simple: simply position the pivot (represented as point helper) and pivot the foot. The pivot is animatable.
In CAT1 there was only one type of adjustment layer (previously called a relative layer). You can now assign world adjustment layers. These allow you to tweak existing animation in world space, rather than local space. This is mainly for offsetting IK positions, such as the foot placement from imported mocap data.
CAT2 has had major optimizations made which mean that CATRigs now use less CPU overhead than ever. While animating in complex scenes you will notice the difference!
Traditionally the IK target sits at the end of the limb. But sometimes you don't want this. What about crawling characters? Then you need the IK target positioned at the knee. In CAT2 you can now animate the IK target up and down the limb as you wish, with a function called Limb IK Pos.
In the hierarchy/Link Info panel there is now a new rollout called CATBone Hierarchy. This holds a number of special locks and other settings, similar in principle to those found in the Max Locks and Inherit rollouts found in the same panel.
This rollout is for hubs only and is also found in the Hierarchy/Link Info panel.
Allow IK Rotations controls whether the hub will rotate to accommodate the retargeting happening when both child limbs have retargeting on.
Pin Bone when switched the hub will remain static when its parent hub is being transformed. This is the same as the CAT 1.4 Pin Tip Hub feature.
Allows ghosting of animation layers to help layout the overall sequence.
Removes displacement from keyframed animation. Especially useful for game animators!
Turning bones into more complex meshes can be useful for creating proxy meshes, that better represent the character. They can also help with skinning. Another possibility is to create handles to help get at the bones with the skin present without having to freeze or hide the skin.
All bones can now have custom geometry. This means you can now edit your CAT bones with any Max modifier (e.g. an Edit Mesh modifier). When you have completed your changes, you can collapse the Modifier Stack and the changes will be baked into the rig. The changes will be saved when you save the CATRig preset.
Changes can be turned off with the Use Custom Mesh check box in the selected bone's Setup rollout in the Modify Panel.
It has been our philosophy from the onset to integrate CAT into Max as far as possible. Part of this involves not providing tools when Max already has them to avoid duplication and cluttered UIs.
With this in mind the Pivot Pos Y and Z sliders provided in CAT1 for positioning hubs have been removed. Instead we recommend simply applying a Max XForm controller, which will allow you to position ANY bone as required. When you have finished editing simply collapse the Modifier Stack and the changes will be baked into the bone.
All CATRig bones can now have an unlimited number of Extra Bones added. Extra Bones are important because they enable you to add bones onto the rig that will be included in CAT's NLA system. Examples of uses for Extra Bones include facial bones, weapon bones, and stomach bones (for secondary dynamics on more heavily built characters).
Extra bones are created by selecting any CATRig element and clicking on the Add Bone button. A bone will be created at the origin of the rig element. By default the created bone is linked to the rig element it was created from. Once created it can be moved, edited like any other Max geometry, and relinked to other rig elements as required.
One thing to keep in mind is that a rig can be made up almost ENTIRELY of extra bones. This is particularly interesting in the case of facial rigs, where facial blending needs to be handled separately from the animation of the character's skeleton.
To create a facial rig from extra bones, create a (None) CATRig preset and then click on the Create Pelvis button found in the Modifier Panel, with the created CATParent selected.
Select the pelvis and click Add Bone to create extra bones. Move the bones into position, and edit as required.
Tip:
You will be able to save time by setting up one side of the face first and then Paste Mirroring (buttons found in the Modify panel on the selected bone) to position the already created opposing bones correctly. Settings are mirrored relative to the parent object.
The root hub (pelvis) is then linked to the head of the character CATRig.
The facial rig has its own NLA system. Set up phoneme shapes on individual layers and blend between them in the same way you would in Morpher. Talking sequences and expressions can then saved as CATClips for reuse, including on different facial rigs. Of course if the new target face has different proportions the clip will be retargeted to fit.
Deleting CATRigs, or rig elements is now undoable. In fact nearly every action in CAT2 is now undoable!
SHIFT/Drag to clone the selected CATRig, just like any other Max object/hierarchy.
CAT's IK system is now more flexible and interactive than ever. The aim is to allow you to manipulate the rig, whether in IK or FK, directly and intuitively. The changes affect both Setup Mode and the way the rig behaves during animation.
In Setup Mode the main difference from a user's perspective, is that the Bend Ratio sliders are missing from the limbs. The bend ratios are now taken from the FK rotations. Basically all you have to do is rotate the limb into the configuration you require to setup the IK relaxed position. With the new IK system there is also no limit on bone rotations. Bowed legs etc are now completely possible.
Having Max PRS controllers on every bone means that it in CAT2 it is now possible to detach bones. One example of where this would be used is blowing off limbs.
To stop you ripping your rig apart during normal animation each rig element has its own lock system held in the CATBone Hierarchy rollout, found in the Hierarchy/Link Info panel.
Palms and Collarbones are now optional on all limbs. They are added and removed with the Collarbone and Palm or Ankle check boxes found on selected limb, in the Modify Panel.
In CAT2 the CATParent has less controls. Specifically the Show Rig, Hide Rig, Visibility, Renderable and Freeze controls have all been removed. This is because the Max Layer Manager is a much more efficient way of achieving the same functionality; we would encourage you to use it instead (if you aren't already).
In CAT1 all rigs had the same bone orientation: Positive Y forwards, positive Z up and X right. This could be defined as a Z aligned system because the bones are all aligned down the Z axis.
What we didn't take into account when we set it up this way is that every other rigging system, even Max and Maya bones is X aligned. This has caused problems with various game exporters.
In CAT2 we have changed this. By default, rigs created in CAT2 are now X aligned with Positive Y forwards, positive X up and positive Z left.
Now spine bones can be individually sized.
Limbs can now have one bone. This applies to spines and tails as well.
The naming conventions have been changed for CAT2. It is now possible to individually name spine bones, palms, ankles, digit bones, tail bones and limb bones.
In CAT2 you now have the option of creating a FK spine. On a FK spine individual spine bones have their own PRS controllers, which means that you can keyframe individual spine links. Note that FK spines will not work with CATMotion or CAT's retargeting system.
New Features in Animation System
Turning bones into more complex meshes can be useful for creating proxy meshes that better represent the character. They can also help with skinning. Another possibility is to create handles to help get at the bones with the skin present without having to freeze or hide the skin.
All bones can now have custom geometry. This means you can now edit your CAT bones with any Max modifier (e.g. an Edit Mesh modifier). When you have completed your changes, you can collapse the Modifier Stack and the changes will be baked into the rig. The changes will be saved when you save the CATRig preset.
Tip:
If you at some point you wish to just display a bone in its original form (a box), then you can uncheck the Use Custom Mesh check box, in the Bone Parameters rollout of the selected bone, displayed in the Modify Panel.

The Game Character CATRig preset

Character Setup rollout
Name: Edit the name field to change the name of the whole rig.
CATUnits Ratio: The ratio between CATUnits and the current units set in 3ds max. Use this to resize the rig.

These radio buttons control which keyframes will be displayed in the 3ds Max track bar underneath the time slider.
Active Layer: Only keyframes on the active animation layer are displayed in the track bar in 3ds Max.
Contributing Layers: Only keyframes that are contributing to the solution are displayed in the track bar.
All Layers: Keyframes for all animation layers are displayed in the track bar.

These switches control the CATRig's coordinate system.
X Axis: All CATRig bones will be aligned along the X axis (default on new rigs).
Z Axis: All CATRig bones will be aligned along the Z axis.
Note:
This change will not be significant for new users (except for those who are no longer having problem with their game exporter), but it will have a couple of implications for users currently in production:
Animations saved with CAT's Clip System will not load correctly.
CATMotion presets will load OK, except that any offsets will now be offset in the wrong direction.
Basically, if you are in the middle of a production or have large libraries of CATClips we would recommend that you continue to use Z aligned rigs. All new rigs default to X aligned, but can be switched back to Z aligned.
Existing scenes will not be affected so you don't have to worry about loading old scenes.

The CATRig Presets list box
The CATRigs list box displays a list of existing CATRig presets.
Note:
Once a rig has been created the presets are grayed out as you cannot load a preset on top of an existing rig.
The Digit Setup rollout can be accessed by selecting the digit in the Digit list box on the palm or by selecting the digit in the viewport.

Digit Name: Edit this field to change the name of the digit.
Copy digit settings.
Paste digit settings.
Paste Mirror digit settings.
Num Bones: The number of bones the finger has. This ranges from 1 to 20.
Tip:
Each new bone created will default to the same dimensions as the bone at the end of the digit.
Width: The width of the digit.
Depth: The depth of the digit.
Length: The length of the selected digit bone.
Tip:
The bone length parameter can only be accessed by selecting the bone in the viewport.
Curl Weight: This value controls how much the DigitCurl values in CATMotion affect the digit. A value of 1.0 means that CATMotion has 100% effect. A value of 0.0 would turn CATMotion off for the selected digit. A value of -0.5 would mean that DigitCurl would have half effect in the opposite direction.

This rollout has the settings for the selected digit bone.
Name: The name of the bone.
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
Length: The length of the bone.
Curl Weight: This controls how CATMotion DigitCurl will affect the individual bone.
Creates an Extra Bone, linked to the selected digit.

Bone Setup rollout
Name: Name of the selected bone.
Copy bone settings.
Paste bone settings.
Paste Mirror bone settings.
Use Custom Mesh: This is used for when you have baked your bone mesh changes into your bone. When checked the bone will show as the edited mesh. When unchecked you will just see the underlying box (unedited bone).
X: The size of the bone in the X dimension, measured in CATUnits.
Y: The size of the bone in the Y dimension, measured in CATUnits.
Z: The size of the bone in the Z dimension, measured in CATUnits.
Creates an Extra Bone, linked to the selected bone.
Tip:
As of CAT2 it is now possible to individually resize CAT spine bones!
The Spine Projection vector gives the artist more control over the procedural spine. Previously all spines would animate assuming the spine was going along the Hubs Up Axis(Z, or X depending on the Length Axis setting on the CATParent). In some cases, you may need a spine that goes downwards, or sideways. The Spine Projection vector is useful for this.

If you select any spine bone on a Procedural spine, and go to the Motion Panel, you will see a blue line representing the Spine Projection Vector.

Select the spine
Click sub-object mode button. The Spine Projection vector will become selected and you can now re-orient your spine.
You will get better results from your spine if you ensure the blue line runs close to default curvature of your spine.
Tip:
When creating spines that default to a curve we would recommend that you edit the individual spine bones into position, leaving the hubs (ribcage and pelvis) aligned up and down, as opposed to rotating the hubs to create the curve.

The Spine Setup rollout
Spine Name: Edit the name of the spine in the field box.
Num Links: This spinner controls the number of spine bones. It ranges between 1 and 60.
Length: The length of the spine in CATUnits.
Size: The width and depth of the spine links.
Procedural: When this is selected the spine links do not have their own PRS controllers assigned; instead the spine interpolates between its hubs. This has the advantage that there are far fewer keyframes to manage and allows for greater flexibility when loading motion clips between characters with different setups. CAT's retargeting system and CATMotion also require a procedural spine to work. By default spines are procedural.
FK: When a FK spine is selected each spine bone has its own PRS controller, which can be manipulated individually. It is still possible to rotate the spine as with a procedural spine by transforming the hubs.
Note:
If you choose to use a FK spine be aware that you will not be able to use CATMotion or retargeting! We would normally recommend using the procedural spine.
Relative: Means the hub will rotate relative to the parent hub, e.g. the ribcage will move relative to the pelvis. Use this for hubs on upright spines like humans.
Absolute: Means the hub will rotate relative to itself. Use this for ribcages on horizontal spines such as on quadrupeds.

This graph controls how much the spine links rotate relative to each other. Put another way, it controls how the rotation between the hubs is distributed along the spine.
The spline is edited by adjusting the tangent length spinners and the value spinners at the bottom of the graph.
Tangent: The Tangent spinners control the curve.
Value: The Value spinners controls the start and end values of the rotation weights.
To rotate the spine more at the top:
Edit the left spinner to give a tangent length of 1.0 (see below).

This has this effect on a human rig:

Tip:
All rotations, including twisting are effected by the graph.
The effect of the same graph on a twisted spine:

As compared to the default settings:

Tip:
The spine colour blends from the colour of the pelvis to the colour of the ribcage. The blend of the colour reflects the falloff on the Spine Rotation Weight graph.
The quickest and easiest way to edit your rig is in the viewport. Simply edit the proportions of the rig by dragging the elements around.
In the case of spines the spine length is edited by simply moving the child hub. The spine stretches to fit.
With limbs it is much the same: move the child element to edit the length and rotation of the element above it in the hierarchy.
Element dimensions can be edited with the 3ds Max's scale function (you will usually want to use non-uniform scale for this). When in Setup Mode the rig elements are not scaled, but rather resized.
Using the methods described above it will be possible to set up the majority of your rig simply by placing the joints correctly into your model, which is much faster then the alternative of incrementally editing the length and orientation of each element in turn.
Select the arm you wish to edit
Select the bone below the joint you wish to edit (in the case, the forearm).

Move the arm joint as required.

The arm bones resize to suit.
In CAT1, all rigs had the same bone orientation: Positive Y forwards, positive Z up and X right. This could be defined as a Z aligned system because the bones are all aligned down the Z axis.
What we didn't take into account when we set it up this way is that every other rigging system, even Max and Maya bones, is X aligned. This has caused problems with various game exporters which are hard coded to X aligned rigs.
In CAT2 we have changed this. By default, rigs created in CAT2 are now X aligned with Positive Y forwards, positive X up and positive Z left.
This change will not be significant for new users (except for those who are no longer having problem with their game exporter), but it will have a couple of implications for users currently in production:
Animations created on Z aligned rigs (all CAT1 files) and saved as CLP files will not load correctly onto X aligned rigs.
CATMotion presets will load OK, except that any offsets will now be offset in the wrong direction.
Note:
If you are in the middle of a production, or have large libraries of CATClips we would recommend that you continue to use Z aligned rigs. All new rigs default to X aligned, but can be switched back to being Z aligned.
Existing scenes will not be affected so you don't have to worry about loading old scenes.
Select the CATParent.
Go to the Modify panel.

Go to the CATRig Setup rollout.
Select the Z Axis radio button.
Nothing obvious will happen, but if you select an element of your rig you will notice that the bones are now aligned along the Z axis.
Any CATRig is made up of a combination of at least some of the following elements: Hubs, Spines, Tails, Limbs, Palms, Digits, and Extra Bones.
HubGroups are a special group that are not elements in their own right, but are rather a subset of the rig.

Image courtesy of Digital Pictures Iloura
Every CATRig has one CATParent. The CATParent, which is the toolkit symbol seen under each rig as it is created, can be considered the character node of the rig.
All of the elements of the rig are associated with the CATParent. It holds basic information about the whole rig, including its name, size and other basic data.
It also holds the Rig Preset Manager, which allows you to load and save CATRig presets.
The rig is not linked to the CATParent but can be transformed by it when in Setup Mode. Scale transforms are inherited by the whole rig from the CATParent in any mode.

The CATParent
A hub could be a pelvis, ribcage, thorax or head depending on how it is used. Spines, arms, legs, tails and extra bones can be created off it. CAT does not limit how many of these elements can be created off one hub.
The first hub created is the root object for the rig. In an upright, two-legged creature such as a human or a four-legged creature such as a horse this would be the pelvis.
By default, in a hub the X vector is always along the direction of the attached spine. This means that in a 4 legged creature it points along the horizontal. For more on this read CAT's coordinate system.

The Pelvis hub on a four-legged rig
All limbs are made up of limb bones. Limb bones are special because they can be segmented to allow for twisting.
A limb can be made up from between 1 and 20 limb bones and bones between 1 and 20 segments. Bone segment twist weights are spline controlled so you have full control over where the bone twists most.

Limbs are used for arms, legs, wings etc. There are two differences between a leg and an arm. One is that legs are assigned FootPlatforms, which include CAT's foot pivot system. The other is that arms and legs are treated quite differently by CATMotion.
A limb can be made up of up to 20 bones, and each bone can have up to 20 segments. All limbs can have collarbones or palms as required.
The limb bones can be set up in any configuration. IK setup involves simply rotating the bones in Setup Mode.
The bone segments only rotate around the center of their bone. They exist to allow for twisting forearms etc. Their relative rotations are controlled with the Bone Twist Weight graph.
The Palm holds the controls for the arm. It has the controls for blending the arm between IK and FK. It also allows for the creation of an IK target for the arm, keying of all the rotations on a limb, and holds the master controls for the digits (fingers).
CAT supports seamless blending from IK to FK and back again.
Each palm can have up to 100 digits and each digit up to 20 bones. Digits are set up with FK controls only. Digit controls include a weighable Digit Pose Manager and powerful Digit Modifiers for manipulating groups of digits.
By default the local X axis is aligned to the length of the bone.

The front leg of the Panther rig.
Limbs can have palms. Palms are used for palms on arms and ankles on legs, etc.
When in IK Mode the palm can be aligned to the target or to the previous bone (e.g. forearm), as required.
Each palm can have up to 100 digits and each digit up to 20 bones. Digits do not have IK and can only be transformed in FK. Digit controls include a Digit Pose Manager and powerful digit modifiers for manipulating groups of digits.
By default, both palms and digits are aligned to the X axis.

Spines are used to connect hubs. They fulfil the functions of spines and necks. A spine can have between 2 and 60 spine segments.
By default spine transforms are not edited directly when animating, but are instead achieved by transforming the adjoining hubs. The Spine Rotation Weight graph controls how rotations are proportionally spread along the spine.
In CAT2 you now have the option of creating a FK spine. On a FK spine individual spine bones can be transformed and hold their own keyframes. But be warned! FK Spines will not work with CATMotion and CAT's retargeting system. They also give you more keyframes to manage.
Another new feature of CAT2 is that spine bones can now be sized independently.
By default a spine's length is aligned along the X axis. For more on this read CAT's coordinate system.
All spines have a hub at both ends.

The spine on a four-legged rig (the mesh has been edited)
In CAT2 it is now possible to clone CATRigs in the same way as any other Max object. Simply select any part of the CATRig, hold down SHIFT and move the rig.
Note:
It is only possible to copy a rig with this method. Instancing and referencing are not available.
A CATRig can take any form you require. It can have as many spines, heads, pelvises, limbs, fingers, toes and tails as you could ever want. In CAT2 you can now add extra bones too.
CAT comes with a library of rigs of everything from humans to horses, insects and robots.
CATRigs can be created from scratch, but usually it is easiest to load in the rig closest to your requirements and edit from there.
Once you are happy with your creation you can save it as a new preset for reuse later on. This approach has been used right across CAT. Load in the preset closest to your requirements, edit it to suit your purposes and then save the result out as a new preset.
Using CAT you can create the rig you need, in very little time. CATRigs come with their own inbuilt IK system, as well as easy to manipulate spines and tails. Advanced digit controls make it easy to position fingers and toes. By default legs are created in IK; arms in FK. All limb bones can be segmented for twisting bones. Segment twist weights are spline controlled.
Even in Setup Mode the rig is set up so that it can be manipulated intuitively. The arms are in FK and the legs in IK. The pelvis, ribcage and head can all be moved and rotated as expected.
During setup CATRigs can be resized without breaking IK setup etc; perfect for merging files. Resizing is deactivated once an animation layer is created to prevent problems with existing animation.
Tip:
CATRigs can be created from scratch, but usually it is easiest to load in the rig closest to your requirements and edit from there.

Go to the Create panel.
Click Helpers.
Choose CATObjects>CATParent.
Select a preset from the list.
Click in a viewport.
The selected rig will appear in the viewport.

StandardHuman CATRig Preset
In addition to clicking in a viewport you may also drag. When you drag to create a CATRig, the length of the drag will be approximately the same as the CATRig’s initial height. The initial width and depth will remain proportional to the height.
In the Create panel the Character Setup rollout shows the CATRig's basic parameters.

Character Setup rollout
During creation you can change the parameters. Otherwise, like all 3ds Max objects you can edit the creation parameters in the future by selecting the CATParent object and going to the Modify panel.
Tip:
CATUnits Scale and Bone Length Axis cannot be changed if an animation layer is present.
Go to the Create panel.
Click Helpers.
Choose CATObjects>CATParent.
Don’t select a rig from the list. Instead just click/drag in the viewport.
A CATParent is created.
Tip:
If you already have a preset selected in the list box, select (None).
With the CATParent selected go to the Modify Panel.
Click Create Pelvis down the bottom of the Rigs rollout.
A pelvis will appear in the viewport at the default size.

Select the pelvis and go to the Modify panel.

Hub Setup rollout
In the Hub Parameters rollout you can add Legs, arms spines, tails and extra bones as required.
You will find that this system allows you to quickly create any rig structure you want.
CATRig is a truly flexible animation rig. Using CATRig you can create a human, a horse, a bug, a dragon or a centipede. The rig is made up of a finite number of simple elements that you can put together to suit you requirements.
There are no limits as to how many of the different elements can be used in a rig, though there are basic rules regarding how they are plugged together. Each element has its own set of user definable characteristics that dictate its form and movement parameters. All aspects of the rig can be edited parametrically by entering values, or interactively in the viewport.
The elements are called: The CATParent, hubs, spines, limbs, palms, digits, tails and extra bones. Each element may also include a number of sub-elements.
A CATRig is created on a CATParent. The CATParent is the toolkit symbol found at the base of the rig on creation. It can be considered the character node for the rig. The CATParent holds the name, size and other basic data of the rig.
Each CATRig has its own unit system, called CATUnits. CATUnits are a ratio of the current Max Unit size. The size of CATUnits relative to the size of Max Unit size is controlled with CATUnits Ratio, found on the CATParent. For example, a CATUnits Ratio of 0.5 means that one CATUnit is equal to half a Max unit, as selected in the Units Setup menu in Max.
The advantage of CATUnits is that if you edit the size of the rig, all CATMotion will stay the same (proportional to the rig). It also allows you to edit the size of the rig without affecting your IK setup etc.

StandardHuman CATRig standing on its CATParent
The hierarchy of a CATRig is much the same as any other animation rig in 3ds Max. All of the elements branch away from the pelvis or root node. The CATParent is not linked to the rest of the rig.

A section of the hierarchy of the StandardHuman Rig
In the image above you can see that every element of the rig is allocated the name of the rig, plus its unique identifier. The object StandardHuman is the CATParent. As you can see nothing is linked to it. The other object in the hierarchy that remains separate from the tree is StandardHumanLLegPlatform.
Every leg has a FootPlatform. FootPlatforms are special elements, that serve as the IK targets for the legs, which is why they are not part of the hierarchy.
CATRigs are created with their allocated preset name. If you want to have more than one of the same CATRig preset in a scene it is a good idea to give it a unique name.
To change a CATRig name:
Select the CATParent, go to the Modify panel and enter a new name in the Name field in the Character Parameters rollout.
The CATParent is renamed and the entire CATRig hierarchy inherits the new name.
Elements are removed by deleting. Deleting an element will delete it, and its children.
To delete the whole CATRig:
Delete the CATParent.
Or
Delete the pelvis (root object).
To remove an arm:
Select any part of the arm and delete.
To remove the upper body:
Delete the spine.
To remove a digit:
Select any part of the digit and delete.
Note:
Individual rig elements can only be deleted in Setup Mode. When in Animation Mode if you select any part of the rig the whole rig will be deleted.
A CATRig is skinned with the 3ds Max Skin modifier or any other skinning system supported by 3ds Max.
Skinning is a complex art in itself and the subtleties of it are not within the scope of this document, however a few tips for tuning a CATRig to your skin are provided below.
To skin a CATRig:
Select the skin.
Apply the Skin modifier.
Select the CATRig bones as normal
While all CAT bones have parametrically editable dimensions, sometimes you will want to edit the shape of the bone. To do this we recommend using standard 3ds max Object Modifiers such as Taper, Edit Mesh and the FFD modifiers.
To Edit a CAT Bone using the FFD 2x2x2 modifier:
Select the bone segments.

Apply the FFD 2x2x2 modifier.

Align the FFD modifier to the bone by transforming the lattice.

Edit the control points on the FFD modifier to edit the bone.

The bone is now modified. It will continue to work as a normal CAT bone, including bone segment twisting.
Once you have finished editing your rig you can collapse the modifier stack, thereby baking the edit into the bone. The changes will saved in your CATRig preset.
Tip:
Sometimes additional bones will be desirable e.g. for bellies or weapons. For this create extra bones. These bones are also saved as part of the rig.
The CATRig is the structure that the CAT character animation system sits on. In essence it is a highly sophisticated custom character rig that has been designed so that you can create the character setup you want without having to code yourself. The fact that it is mostly written in C++ rather than script means that it is very fast. Using C++ also gives us much more flexibility when creating the system so we can do much more than a typical technical director working with MaxScript.
To make the system as flexible as possible we have done our best to keep the system as generic as we can. This is immediately obvious with CAT's naming conventions. A spine could also be a neck. Instead of pelvises and ribcages, CAT has hubs. You can read more about specific CATRig elements and how they plug together in CATRig Structure.
Different rig elements are added simply by clicking the appropriate button.
All rig elements have different properties built in. For example all limbs have their own, sophisticated IK system built right in; spines have their own characteristics, etc.
Each rig also has its own non-linear animation system, procedural walkcycle system, and clip/pose system. In addition, CAT comes with a number of utilities to manage things like motion data mapping and ragdoll (physics) setup.

Robot courtesy of Roberto Fernandez
I find that often the most important thing at the beginning is to even know what is possible. The introduction is a quick overview of what is possible with CAT.
From there, go to How Do I...?. It is a kind of 'quick find' menu, broken down into similar categories to the introduction, that should enable you to find out how to do specific functions without too much searching around.
The How Do I...? lists are not exhaustive. If you have anything you want added to the list, please let us know and we'll put it into future versions. In the end these lists should get really long!
If you are already familiar with CAT1 then I strongly recommend that you read What is different in CAT2? It will enable you to dive straight into the new and exciting stuff.
The tutorials section has been removed in favour of video tutorials on our website. Please go to http://www.catoolkit.com/support/videos.asp. You may also want to check out our Tips and Tricks section.

Image courtesy of Digital Pictures Iloura
CAT is a complete character system for 3ds Max. CAT2 has all the flexibility of a custom rig, but doesn't require you to script. Of course, the system is completely open to scripting if desired.
We originally designed CAT because we needed a character system that was flexible enough and powerful enough to meet our own requirements in day to day production. Since the release of CAT1.0 we have received copious quantities of valuable feedback that has enabled us to keep tuning CAT so that it meets the needs of all its user base.
Here are 6 key areas of your character animation pipeline addressed by CAT:
A CATRig is fundamentally a hugely sophisticated custom rig that is written in C++, so it provides you the benefits of a custom rig, without the limitations of a closed animation system, and without the complexity of scripting a rig from scratch. As we all well know, creating a custom animation rig from scratch is often a time consuming, technically challenging task. A sophisticated rig can require complex scripting and weeks of development time.
We have made creating and editing a CATRig as quick and straightforward as possible. You simply select the rig closest to your requirements from the preset list, and click in the viewport.
One big difference between CAT, Biped and Motion Builder, is that CAT was designed to allow you to create any character configuration. Human, quadruped, spiders, insects and fantasy characters are all possible.
When creating your rig, adding new rig elements like heads, limbs and tails is as simple as clicking a mouse. Rig proportions are then edited interactively with CAT's stretchy limbs and spines.
To smooth out the skin deformation on twisted limbs, all limb bones can be segmented as much as you wish; as with the spine. Segment rotations and twisting are spline weighted for full control with minimum keyframing.
When you are happy with your rig you can save it as a new preset so it can be reused and repurposed, right away.
With CAT you can create any rig configuration in minutes!
CAT2 now boasts a whole new rig manipulation system called F/IK™ that allows you to push the rig around in the viewport, without having to bother too much about IK and FK, and without requiring you to have multiple windows open, as with other systems.
Effect hierarchy is core to the F/IK system. With effect hierarchy, if you move a bone in the hierarchy (regardless of whether you are in IK or FK), the bones on either side will rotate to accommodate the move. This means you can pose the rig almost entirely with the move tool, which is quick and intuitive.
CAT2 has a whole new IK system called FK Driven IK that provides unprecedented power and flexibility over any other IK system. Among other features, it boasts the ability to position the IK target anywhere up the limb, for example at the knee for crawling characters, and of course it supports seamless, curve controlled blending between IK and FK.
Also new to CAT2 is a system called retargeting. Retargeting tries to constrain the angle of the limb, moving the parent hub (e.g. ribcage) to fit. As an example, if both arms have retargeting turned on, the ribcage will position itself automatically to provide a "best fit".
CAT’s procedural spine removes the necessity of rotating every spine link individually, removing lots of unnecessary keyframing. CAT2 also features an optional FK spine for those who want to be able to tweak individual spine links.
Pin bone allows you to temporarily pin your ribcage, allowing you to tweak the pelvis without affecting the upper body.
CAT2's new foot pivot system makes it possible for you to animate the foot pivot freely, directly in the viewport.
CAT's sophisticated digit controls allow you to work with fingers and toes with a minimum of fuss. It even has a digit pose preset system.
CAT was designed from the beginning to be thoroughly integrated into 3ds Max, providing full access to the complete arsenal of 3ds max’s animation controllers. This means that you have full access to all your curves; procedural controllers, like the LookAt controller; and all functions are exposed to script for the ultimate in flexibility.
CAT allows you to keyframe faster and more intuitively than ever before.
Typically, creating convincing walk sequences requires a lot of time and patience. Every keyframe, for every element of the character has to be laid down individually.
Using CAT2's procedural system, CATMotion, first you create the walkcycle you require, and then you simply drive the character around the scene with a path node. The rig calculates individual foot placement automatically. Of course the resulting footprints can then be edited, and even animated.
This means that a walk sequence that would normally have kept you at the coal face for days can be completed in less than an hour!
One of the big challenges of working with IK is the bones snapping as the solution gets too straight. With CAT's retargeting you can create those nice, realistic straight legged walks, impossible with normal IK systems.
Another tough one is matching feet up to uneven surfaces by hand. With CATMotion, we’ve removed that headache too, with automatic collision detection.
One of the hardest things to deal with is the director changing their mind, usually at the 11th hour. Changing any aspect of the sequence may well mean re-animating from scratch. CAT lets you edit the walkcycle or even the path of the character at any time without having to redo everything!
With CAT walk sequences that previously took days can now be achieved in less than an hour.
How do I create walk sequences in CAT?
As your animation gets longer and more complex it becomes harder and harder to maintain the overview. Inserting a sequence into an existing one can be a real nightmare.
CAT’s non linear animation system allows you to break the animation into manageable sections. Each layer can be sped up, slowed down, reversed, and even transformed in space!
Adjustment layers allow you to offset the existing animation, including CATMotion.
For total control we allow you to apply different layers to different parts of the rig with our feathered weighting system. For clarity, your rig can display each animation layer's colour, so you can see which layer is affecting which part of the character!
Of course, the layer manager makes it easy to combine any number of existing animation clips.
With CAT’s superior non-linear animation system you can greatly improve flexibility and efficiency!
How do I use CAT's NLA system?
Working with custom rigs it is difficult to reuse existing animations and poses, especially between different rigs. This means that you will often have to create existing animations again from scratch, which burns a lot of valuable sleeping time.
Using CAT’s clip/pose system you can save animations and poses for reuse. Keyframes are stored exactly as they were created, using all the same animation controllers, meaning they come in exactly as you saved them. It is even possible to save out the whole layer stack to retain the ultimate in flexibility. And of course clips and poses can then be reloaded onto any other CATRig.
In CAT2 the clip (CLP) files will now store constraints and even scripts, meaning that you can save your custom configurations up for reuse.
CAT can also save and load poses on and off limbs for more efficient work flow.
In short, CAT’s clip/pose system is a huge time saver and removes repetition.
Using CAT you can create libraries of animation clips that can be loaded onto any other CATRig.
How do I reuse animation with CAT?
CAT will allow you to make huge improvements on the efficiency with which you can create animation rigs, walk sequences, and keyframe animation.
CAT is the ultimate addition you can make to your character animation pipeline!
The CAT Rig is made up of a few basic elements: CATParent (The character node for the rig.), Hubs, Limbs, LimbBones, Ankles, and Digits.
The CATParent holds information related to the whole rig.
To see the available properties on the CATParent call ShowProperties on the CATParent.
The name that is used to prefix all rig elements names.
This parameter determines what mode the character is currently in.
$CATParent.CATMode = 0 - Puts the CATRig into Setup Mode.
$CATParent.CATMode = 1 - Puts the CATRig into Animation Mode.
$CATParent.CATMode = 2 - Puts the CATRig into Stretchy Mode.
Use this parameter to access the LayerRoot controller that manages all the layer in the layer stack.
This value returns the number of layers on the character.
Returns the currently selected layer.
Returns the index of the solo layer, or -1 if no layer is soloed.
Returns the version of CAT installed. This is the same number you see in the about box.
Add the root hub to an empty CATParent.
Load a CATRig preset from the hard drive and create a CATRig
Save the current CATRig to the hard drive as a CATRig preset.
Every bone in a CATRig can return an address. The address returned is a name independent way of uniquely identifying all bones in a CATRig. See CATNodeControl
$CATParent.GetBoneByAddress "CATParent.Hub.Limb[1].LimbBone[1].BoneSeg[0]"
All bones in a CATRig are derived from CATControls. This makes CATControl the basic building block of the CATRig hierarchy.
The CATControlInterface exposes a set of script properties and functions available on all controllers in the CATRig controller hierarchy.
All transform controllers are also derived from CATNodeControl. There are a few controllers in the CATRig hierarchy whose purpose is to maintain the hierarchy, rather than to control the positions of any particular INode. These controllers are not transform controllers. One of these controllers is SpineData, whose job is to maintain the spine; creating and destroying spine bones if you call ShowInterfaces.
This returns the CATParent object
You can use this function to paste a layer from one bone hierarchy to another. The source control must be exactly the same type as the one you are pasting onto. This method will automatically paste this bone and all its children.
Paste the rig settings from the source control onto the current controller.
All Transform controllers in a CATRig are derived from CATNodeControl. This means that for any selected CAT bone, $.transform.controller, or $[3], will return a CATNodeControl, and all the following functions will be available.
The CATControlInterface exposes a set of script properties and functions available on all transform controllers in the CATRig controller hierarchy.
This returns the number of Extra bones that have been added to this bone. All bones in CAT can have Extra bones added.
Access to the node of the current transform controller.
This returns a unique address that identifies this bone in the CATRig hierarchy. Use the method GetBoneByAddress, found on the CATParent to convert the address back into a Node.
The matrix that this bone uses to control its position while in SetupMode.
$[3].SetupTM = Matrix3 1 - Resets the Setup Matrix to an Identity Matrix.
This is the matrix that this controller receives from its parent.
This matrix represents the final transform matrix for this bone, not including any scale.
This point3 returns the total scale applied in local space to this bone.
This transform matrix that is passed on to any children of this bone.
As found in the Hierarchy->LinkInfo panel, this Boolean determines whether this bone will stretch when the character is in Stretchy Mode.
As found in the Hierarchy->LinkInfo panel, this Boolean determines whether manipulations to this bone effect neighbouring bones in the hierarchy.
As found in the Hierarchy->LinkInfo panel, this Boolean determines whether the movements to the transform node are directly applied to this bone.
Add an Extra bone to the current CATNodeControl.
Returns the indexed ExtraBone.
Creates a new layered float controller that can be used to drive the animation of any animatable parameter in Max.
Suppose that you had a sphere called Sphere01, and you wanted the radius of the sphere to be controlled by CAT’s layer system. You need to select a CATbone in Max, and then run the following command in the listener:
$Sphere01.radius.controller = $[3].CreateLayerFloat();
The spheres radius controller is then controlled by a float controller that utilises CAT’s layer system. It will have a non-animatable setup value, and add and remove layers along with the rest of your character. The local weight curve will be the same as that of the bone that was used to create the layer controller.
The CAT Rig system has no idea about what you have assigned the layer controllers to. It does not know about morphers or custom attributes. All the CATRig system knows is that you have created extra layer controllers, and assigned them to control animatable parameters in your scene.
Each CATBone stores a list of all the Layer Float controllers that have been created from that bone. When CLP files are saved, each of these controllers writes down all the information about the controllers and keyframes in its layer stack.
When loading CLP files this data is read back into the controllers in the same order they were written out. This means that if you want to be able to share animation between characters, it is important to add the Extra Layer Float controllers in the same order for each character.
CATRigA.ExtraController 1 <-> CATRigB.ExtraController 1
CATRigA.ExtraController 2 <-> CATRigB.ExtraController 2
CATRigA.ExtraController 3 <-> CATRigB.ExtraController 3
As found in the Hierarchy->LinkInfo panel, this Boolean determines whether the hub is held still when the base hub of the incoming spine is manipulated.
Save a Clip file starting at the hub and saving all data on all children.
Save a Pose file starting at the hub and saving all data on all children.
Load a Clip file onto this hub and all its children.
Load a Pose file onto this hub and all its children.
Collapse the animation from this hub and all its children down to a new layer.
Add an arm to this hub.
Add a leg to this hub.
Add a spine to this hub.
Add a tail to this hub.
ShowInterfaces $[3].boneData.limbdata.controller
Access to the IKTarget node.
Is this limb a leg.
Is this limb an arm.
Is this leg Left, Middle or right.
LMR can be 1 0f 3 values: -1, 0 or 1
-1 = Left
0 = Middle
1 = Right
$[3].boneData.limbdata.controller.LMR == -1 - we have a Left limb selected
Save a Clip file starting at the limb and saving all data on all children.
Save a Pose file starting at the limb and saving all data on all children.
Load a Clip file onto this limb and all its children.
Load a Pose file onto this limb and all its children.
Collapse the animation from this limb and all its children down to a new layer.
Due to some major architectural upgrades that occurred to CAT between Version 1 and Version 3, it is not possible to re-open CAT 1 files in CAT3. Each version of CAT upgrades the internal data structures, and one major upgrade for CAT3(support for XRefs), meant the converting CAT1 files to CAT3 was not possible.
It is possible to upgrade files by opening them and re-saving them in different versions of CAT.
Here are the steps to load CAT files into CAT 3.
Ensure to have CAT 1.41 installed
http://www.softimage.com/products/betaCAT/downloads/CATFullV1.41(Max7).exe
Open, and re-save the scene files.
Install CAT 2.51
http://www.softimage.com/products/betaCAT/downloads/CATFullV2.51(Max7).exe
http://www.softimage.com/products/betaCAT/downloads/CATFullV2.51(Max8).exe
Open and save the scene file.
Install CAT 3
Open in CAT 3
Most objects in Max use a simple controller to define their position.
You can directly access the position controller using $'objectname'.pos
In CAT, things are a little more complex.
Firstly, CAT has a layer system. That means that an object will have anywhere between 0 and many layers. Each layer has its own position controller.
When we built the CAT layer system, we wanted to layer complete transforms, and so we built the layer system around PRS controllers. Each PRS controller has its own position, rotation and scale controller.
When you type in $'catobjectname'.pos and press enter into the script listener, it may or may not work.
It will work if the CAT object has a layer selected. This is because the script function '.pos' asks the object for its position controller and then determines the bones position. (interestingly, it doesn't actually use the position controller to determine the value).
The script function '.pos' will not work if either, no layer is selected, or the character is in setup mode and there is no setup mode controller.
Summary, getting and setting an objects position using '.pos' is not going to work when scripting on CAT. There is a safe and guaranteed method that will always work on CAT and any other object to get its global position(Even Biped).
That is you access the transform of the object(matrix3), and the get the position from that matrix.
e.g.
$ClownRArm21.transform.pos
In some cases on CAT, the position is determined by many properties. You can use SetupControllers, LayerTransforms, and the layer can be an adjustment layer on top of an absolute layer.
CAT has a lot of code dedicated to handing manipulation, so its easiest to take advantage of that.
You can use the move and rotate commands to position and align a CAT object with another object in a scene. What you need to do is calculate the amount of movement or rotation that you want to apply to an object to get it aligned with the target object.
For example:
Move $ClownRArm21 ($Point01.pos - $ClownRArm21.transform.pos)
($Point01.pos - $ClownRArm21.transform.pos): This calculates the difference in position between the CAT bone and the target object.
The rotation is a little more complex because you have to apply the right coordinate frame.
Here is a function that you can use to align CAT objects with other objects in the scene.
The function has 2 optional arguments: movebone and rotatebone that both default to true.
fn AlignCATObject catobject targetobject movebone:true rotatebone:true =
(
if movebone then (
Move catobject (targetobject.transform.pos - catobject.transform.pos)
)
if rotatebone then (
in coordsys local (
Rotate catobject ((catobject.transform * (Inverse targetobject.transform)) as angleaxis)
)
)
)
AlignCATObject $ClownHead $Point01
This will do a complete alignment of the $ClownHead bone with the point helper
AlignCATObject $ClownHead $Point01 movebone:false rotatebone:true
This will align the CAT head with the point helper, but not move it.
AlignCATObject $ClownHead $Point01 movebone:true rotatebone:false
This will move the CAT head to the point helper, but not rotate it.
By default, when you rotate ribcage, head and arms rotate as well. Is it possible to make CAT acting in a similar manner to CS biped - it means that rotation is not propagated for limbs? It's just hard to animate some hand actions while walking, cause hands are waving due to ribcage rotations?
OK, I think I found it - it's in Hierarchy / Link Info panel.
But for some reason Inherit Position acts like Inherit Rotation and Inherit Rotation acts like Inherit Position.... They're mixed up.
Gräck 
Yes this is a known bug.
Although the basic workflow and principles of CAT1 remain constant in CAT2, there are many changes in the update. Some are just UI tweaks and others are completely new systems that will significantly affect the way you work.
One thing that you will notice right across the system is that all the icons have changed. I am sure that you will find the new UI as pleasing to the eye as we do.
All bones can now have custom geometry
Deleting CATRigs is now undoable
All bones now have full PRS (Position, Rotation, Scale) controller stacks
Palms and collarbones now optional on limbs
Independent_size_settings_for_Spine_bones
Layer Manipulations now undoable
The Layer Ranges Editor now supports Out-of -Range looping options
Decoupling Animation Layer Ranges
Layer Transform Nodes are now animatable
Better control over pelvis/ribcage motion in CATMotion
All controllers have generic methods to access the INode, and CATParent, etc.
CATRigs are created with their allocated preset name. If you want to have more than one of the same CATRig preset in a scene it is a good idea to give it a unique name.
To change a CATRig name:
Select the CATParent, go to the Modify panel and enter a new name in the Name field in the Character Parameters rollout.
The CATParent is renamed and the entire CATRig hierarchy inherits the new name.
Elements are removed by deleting. Deleting an element will delete it, and its children.
To delete the whole CATRig:
Delete the CATParent.
Or
Delete the pelvis (root object).
To remove an arm:
Select any part of the arm and delete.
To remove the upper body:
Delete the spine.
To remove a digit:
Select any part of the digit and delete.
Note:
Individual rig elements can only be deleted in Setup Mode. When in Animation Mode if you select any part of the rig the whole rig will be deleted.
Once a CATRig preset or a pelvis has been created it is time to start editing it to suit your requirements. You will be able to get most of the way simply by interacting with your rig in the viewport. To view any element's properties, as with all 3ds Max objects, select its rollout in the Modify panel.

Image compliments of Digital Pictures Iloura
CATMotion layers are a subset of absolute layers. Instead of storing keyframe data they store CATMotion data. CATMotion is used to create parametric walkcycles.
In CAT2 you can now add as many CATMotion layers as you wish, so you can blend between walkcycles in the Layer Manager, rather than in the Preset Manager in the CATWindow, as was necessary in CAT1.
CATMotion works by dividing up the motion into rotational and positional cycles, each axis of which is assigned its own controller. In addition each element is also assigned rotational and positional offset controllers. Some elements have special controllers too, for their unique role.
The rotational controllers are Roll, Pitch and Twist.

Roll direction on the pelvis (indicated in yellow)
Roll controls the rotation cycle on an element from side to side (X axis).

Pitch direction on the pelvis (indicated in yellow)
Pitch controls the rotation cycle of an element along the direction (Y axis) of the rig.

Twist direction on the pelvis (indicated in yellow)
Twist controls the rotation cycle around the height of the rig (Z axis).
The positional controllers are WeightShift, Push and Lift.

WeightShift direction on the pelvis (indicated in yellow)
WeightShift controls the positional cycle of an element for the side to side motion (X axis) of the rig.

Push direction on the pelvis (indicated in yellow)
Push controls the positional cycle of an element along the direction (Y axis) of the rig.

Lift direction on the pelvis (indicated in yellow)
Pitch controls the positional cycle of an element along the up direction (Z axis) of the rig.
OffsetRot is used to offset rotations for each of the three axis.
OffsetPos is used to offset positions for the three axis.
Specialized controllers exist to add functionality to specific elements. Almost all elements have at least a couple.
CAT has a selection of tools that greatly enhance the power of CAT. These are found in the CAT menu on the Max main menu bar at the top of the Max UI.
The utilities include:
The Apply Max IK tool enables you to use Max's integrated IK systems to animate CATRigs. You can now use splines to control long tails, or HI/IK on fingers to give your fingers and toes IK controls. The Max IK Systems will only affect 1 layer at a time. This gives you the ability to use IK, and FK on the same character at different times in the same scene. Alternatively, you can assign the Max IK system to a relative layer at the bottom of your stack to control all layers on your character.
To apply a MAX IK system to CATBones:

To access the tool, go to the CAT menu, and select Apply Max IK, from the options.
Select the bones that you would like to apply the IK system to. You can select either arms, legs, fingers, toes, or tails.

The Pick IK Solver drop down list gives you a list of available IK Systems that you may assign.

You can either pick an existing layer to hold the IK system, or you can let the toll create a new layer.

The Num Knots spinner defines how many knots will be used to create a spline if the tool is used to create a new spline for the Spline IK System.
When assigning Spine IK, the tool needs a spline to use to control the IK system. The tool can create a new spline based on the CAT Bone hierarchy you have selected.

Tip:
Bend the hierarchy in the direction you would like to see the largest range of motion. For example, if you are constraining the tail of a lizard, it is important to bend the tail around the body as this will help configure the IK system for the best movement. If the tail were to be perfectly straight before you assign the IK system, then the bones in the tail may flip around when the tails it later animated. Always make sure the hierarchy you assign the spline IK system to is bent before assigning the IK System.

Click ‘Yes’ and a Spine will be created using the shape of the tail as a guide. You may also choose an existing spline to control your character.

The spline will be created with the number of knots that was set in toe Apply IK dialogue.

Now you can animate the point helpers to drive the animation of the tail.

HI/IK System applied to the toe of the Lizard
CAT documentation in a WIKI is all very nice, but I'm not always 'on line' when I wish to stroke my CAT. So here's some 'off line' documentation to go with this lovely plugin.
The CAT 2.4 help file was used as a base for this derived documentation. It was decompiled, then edited with M$ Expression, UltraEdit32 and HTMLtidy to arrive at this point in documentation time.
Enjoy CAT!
A few bits of info from the CAT forum
Apparently the CAT 2.4 help document was shot (and the versions before that too, I checked). The section on LimbPhases was missing altogether. This has been fixed by ripping the relevant pages (LimbPhases and Editing the LimbPhases) from the latest CAT 1.4 documentation. After that, it was only a few minor edits (xref-fing the images, etc.).
No more icky green background. I know it's CAT green, but it doesn't make the documentation any more readable on my laptop. :-(
HTML cleanup (ongoing); some files have been renamed to mirror their actual content ('New Topic' --> 'Create A CATRig', for instance).
Rewiring broken links to existing pages, e.g. 'Using CATUnits' to 'Understanding CATUnits'. Done.
Linguistic corrections (spelling checking) - Done (though it's still somewhat a blend of American and real English).
Given that there are still some more images reported as 'unused', it looks like the sections on creating a CATRig from scratch are missing too (thanks to a probably slightly lurching CAT2.x on-line help file generation process). I mean the sections about the Create and Modify panels in 3dsmax. Not selecting any preconfigured rig.
UPDATE: found it! It's here! Done.
Merge in the WIKI content. Done.
Merge in the video tutorials (which replace the tutorial section of the CAT1 documentation).
Merge in some hints, tips and stuff from the CAT forum. There's some good stuff out there! Ongoing process.
Organize this content into something which actually resembles a manual.
Raw content from the Wiki as per 12/feb/2009 has been integrated. (Note that 2008 saw rather few changes on the original WIKI, so that was easy to do....)