Controller Data Access
 
 
 

This section provided an overview of accessing 3ds Max controller data. Since 3ds Max supports both keyframe and procedural controllers different techniques are required to retrieve the data. Keyframe controller can usually use the IKeyControl interface. Procedural controller must be sampled using GetValue(), usually at each frame. The values that a controller stores are in the local coordinate system of the controller. The matrix passed to GetValue() for a transform controller defines the coordinate system of the transformation.

This topic presents information on accessing the data of 3ds Max's keyframe and procedural controllers. There are sections which explain how the keyframe data for the PRS controller can be interpreted, various APIs for keyframe data access, and procedural controller data access.

Example keyframe controllers are the Tension/Continuity/Bias (TCB), Bezier, and Linear controllers. Each keyframe controller in 3ds Max is used to animate a value. The keys of the controller store the values at the key frames. The controller's job is to interpolate between these keys. This topic discusses the way developers may access and interpret the keys stored by keyframe controllers (in particular the keys stored by the Position/Rotation/Scale transform controllers).

3ds Max also allows the use of procedural controllers. Procedural controllers are those that compute their value algorithmically, based on user specified parameters or outside data, rather than interpolating between stored keyframes. Examples include the Noise Controller, Expression Controller, Audio Controller, Path Controller, and Waveform Controller. This topic presents information on how procedural controllers may be sampled to retrieve their data.

Source code is provided demonstrating how developers may access both keyframe and procedural controller data.