Controllers
All animation in 3ds Max is managed by a plug-in type called an animation controller (or controller for short). A controller manages the animation by returning a specific value given a specific time value.
Controllers are either keyframe based or procedure.
- A keyframe based controller sets the value of the controller at important (key) points in time and the controller provides all the values at other times by interpolating between the key values.
- A procedural controller computes the value at a certain point in time based on a programmed effect (for instance, the Noise controller uses a fractal function to compute the value).
There are six basic controller types. Each one controls a specific data type:
- Floating point controllers (
float
) - Point3 controllers (
Point3
) - Position controllers (
Matrix3
) - Rotation controllers (
Quat
) - Scale controllers (
ScaleValue
) - Transform controllers (
Matrix3
)
Plug-in developers can create new controller types, or work with the properties of existing types.
A controller returns a specific value when given a time in the animation. In the following table controllers are categorized according to the type of value they produce, and correspondingly their SuperClass ID:
Type of Value | SuperClassID of associated controller |
float | CTRL_FLOAT_CLASS_ID |
Point3 (including color) | CTRL_POINT3_CLASS_ID |
position | CTRL_POSITION_CLASS_ID |
rotation | CTRL_ROTATION_CLASS_ID |
scale | CTRL_SCALE_CLASS_ID |
transform | CTRL_MATRIX3_CLASS_ID |
morph | CTRL_MORPH_CLASS_ID |
(user-defined) | CTRL_USERTYPE_CLASS_ID |
master (master point) | CTRL_MASTERPOINT_CLASS_ID |
masterblock | MASTERBLOCK_SUPER_CLASS_ID |