Animation Controllers

All animation in 3ds max is implemented using one of the many controller classes accessible in the Track View and Motion Panel, or assigned automatically by 3ds max when you use the Animate button to do keyframing. Certain controllers (keyframeable controllers) store their animation values as keys.

This section includes topics that discuss all aspects of scripting 3ds max controllers and the Key classes used in keyframing.

The controllers are arranged in a hierarchy of superclasses and classes. All classes in a superclass output a specific data type (for example, Float or Point3). Each animatable property in 3ds max has a data type, and any of the classes in the superclass that outputs that data type can be assigned that property. So, for example, the linear_float and noise_float controllers are classes in the Float superclass, and either can be assigned to the height property of a box, which is has a Float data type.

The list of controller superclasses can be determined using the apropos() function:

apropos "controller:super"

The list of available controllers can be determined using the showClass() function:

showClass "*:*controller*"

which lists all the known classes that have "controller" in their superclass name. The controllers include, at least, 3ds max's core controllers and any 3rd-party plug-in controllers. In some cases, embedded controllers for some complex plug-ins may be visible in the showClass() listing (such as for Character Studio and HyperMatter). You should not attempt to create and use these controllers individually, this may result in system exceptions.