Transform Script Controller

Main toolbar > Open Track View > Select a transform track in the Track View hierarchy. > Track View toolbar > Assign controller > Transform Script

Graph Editors > Track View > Open Track View > Select a transform track in the Track View hierarchy. > Track View toolbar > Assign controller > Transform Script

The Transform Script controller contains all of the information contained in a Position/Rotation/Scale (PRS) controller in one scripted matrix value. Instead of having three separate tracks for position, rotation, and scale, all three values can be simultaneously accessed from one script controller dialog. Because the transform values are defined by a script, they are easier to animate.

The value of the controller script must be a matrix3 value. A matrix3 value is a 4x3 3D transformation matrix. For more information, see the Matrix3 Values topic in the MAXScript reference.

Writing Controller Scripts

The software interprets the text you type into the Script text box as the body of a MAXScript block expression. You can type as many expressions as you want on as many lines as you want, and they are evaluated in turn. The value of the last expression is taken as the controller value. This must yield a matrix3 value.

Since the text is inside a block expression, you can declare local variables that are visible only within the script and are temporary for one evaluation. You can also declare or access global variables that are shared with all other scripts in MAXScript and hold their values from one evaluation to the next.

A controller is always evaluated with respect to a specific animation time by the software. This might be the current time slider or incrementing frame time if an animation is playing. In the case of Script controllers, the time being evaluated is used to establish an automatic "at time" context around the controller script, so any properties you access (outside of other explicit ôat timeö expressions) yield the correct values for the current controller evaluation time. This means you don't have to do anything special in your scripts to work at the correct time. You can access the evaluation time with the standard MAXScript variable, current Time. You can also reference scene property values at other times by using "at time" expressions in your scripts, as in regular MAXScript programming.

See also

Procedure

To use a Transform Script controller:

  1. Select an object.

  2. Right-click to open the quad menu.

  3. In Transform quadrant, click Track View Selected.

  4. Select the Transform track of the selected object in Track View.

  5. Click Assign Controller.

  6. Select Transform Script from the Assign Transform Controller dialog and press OK.

  7. Right-click the Transform track in Track View and click Properties.

    The Script Controller dialog opens.

  8. Edit the matrix3 value in the Script Controller dialog, and click Evaluate when you are finished.

Interface

After assigning a Transform Script controller, a Properties dialog is available by right-clicking the track in the Track View hierarchy and choosing Properties or clicking the Properties button on the Track View toolbar.

Script: Type the script to compute the controller value here.

Result: Shows the results of an evaluation or any error messages caused by errors in your script.

Evaluate: Evaluates the controller script and prints the result in the Result box. The evaluation is computed for the current position of the time slider.

Close: Compiles and checks the transform controller script. If everything works, the Properties dialog is closed. Any problems result in a query box asking whether you really want to close the box with an incorrect script. If you do, the controller will yield a null value (0, [0,0,0],) when evaluated.