The following page provides an overview of the various major components of the 3ds Max CAT animation system, their Function Publishing Interfaces, and possible MAXScript access approaches.
The CATParent Helper Object stores the common shared information about a character rig including the name of the rig and the [CATUnits Ratio] value.
It also holds the layers system details including the name of each layer and its global weight.
It provides some useful arrays listing all controllers and all nodes used in the rig for fast iterations through all components using MAXScript.
The CATParent exposes the following two Function Publishing Interfaces:
Interface: CATParentFPInterface
Interface: LayerRootFPInterface
To create a new character using a pre-saved Rig file, you can simply create a new CATParent Helper and call the LoadRig() function of the CATParentFPInterface:
3ds Max CAT can be described as a hierarchy of controllers and nodes. Each bone is represented by a controller (CATControl) managing the bone's behavior, animation and functionality, and a CATBone scene object used mainly for display, Skin Deformations, and rendering.
Every bone controller in the CATRig structure exposes the CATControlInterface. This means that every bone can return the CATParent and a name and can be used to save or load clip files or paste a layer.
You can use the .CATPatent property exposed by the CATControlInterface to access the CATParent from any CATBone. For example, if you have a pointer to a finger or an arm bone, you can easily find out the CATParent and perform all the loading, saving, and layer operations using it.
Each bone controller also exposes the CATNodeControlFPInterface interface that provides properties and methods related to arbitrary bones management, transformation matrix access in various coordinate systems, ans so on.
The ExtraRigNodesInterface lets you add and remove extra rig nodes and access the array of extra rig nodes.
You can always access the corresponding scene node of a bone controller by using its .node property:
Internally, an "Extra" bone is called an "Arb" (shot for "Arbitrary") bone.
An ArbBone has no predefined use, unlike digit, limb, spine, or tail bones that provide respective built-in behavior to simulate fingers, arms, legs, spines, and tails.
The Hub is a special bone where multiple specialized bone groups such as, limbs, spines, and tails can be connected to the rig.
The Hub bone exposes a unique HubFPInterface for features available only to Hubs. This includes the adding of spines, arms, legs, and tails.
Limbs are bones dedicated to the creation of arms and legs.
All Limb Bone controllers expose the following Interfaces:
Tail bone controllers are dedicated to the creation of tails.
The TailTrans controller exposes the following Interfaces:
Interface: CATControlInterface
Interface: CATNodeControlFPInterface
All CATBones use a CATObject to display their geometry in the viewport.
The CATObject exposes the CATObjectFPInterface that provides control over the custom mesh display.