Expose Transform Helper

The Expose Transform helper exposes values of non-keyed objects for use in expressions and scripts. This lets riggers and animators access a select set of transforms for an object, and between an object and its parent, such as a bone in an IK chain. For example, using the Expose Transform helper, you could write a script or use parameter wiring that tests the angle of an character's arm bone that's controlled by IK (thus, has no keys), and once it exceeds a specific value, rotate the corresponding clavicle bone to deform the shoulder area.

In the viewports, the Expose Transform helper object looks just like a Point helper.

Procedures

To use the Expose Transform helper:

  1. Click ExposeTm and choose the appearance characteristics from the Display rollout.
  2. Adjust the size of the helper object by using the Size spinner on the Display rollout. Default=20.0
  3. Click anywhere in your scene to add the helper object.

    The helper object's position has no bearing on its functionality.

  4. On the Modify panel Parameters rollout, click the Expose Node button (default label: None) and select the object whose transform values you want to expose.

    The object's name appears on the button, and its transform values appear in the fields on the Expose Values rollout.

  5. Optionally, turn off Parent and choose a Local Reference Node object.

    This option is used by the Local Euler Angles, Distance To Reference, and Angle parameters. If the object has no parent and you don't specify a Local Reference Node object, these fields use the world center (0,0,0) as the reference node.

  6. To use a transform value in a script or expression, first click the M button next to the parameter value.

    This copies the transform name, using MAXScript notation, to the copy buffer.

  7. Paste the contents of the buffer to your script or expression.

    A sample result of this is “$ExposeTransform01.localPositionX”. 3ds Max interprets this as the local position, on the X axis, of the Expose Node object.

Interface

Parameters rollout

Objects group

These settings let you specify the exposed node, a reference object other than the parent, and rotation and timing parameters.

Expose Node

The object from which the values are generated. Click the button, and then select the object. Thereafter, the object name appears on the button.

Local Reference Node

The object whose relationship with the Expose Node object is used to generate local data for rotation, distance, and angle. Click the button, and then select the object. Available only when Parent is off.

By default, this is the parent object, but you can turn off Parent and then specify a different object.

Parent

When on, the Local Reference Node is set automatically to the parent of the Expose Node. When off, you can pick an object to refer to for local data. Default=on.

This is used by the Local Euler Angles, Distance To Reference, and Angle parameters. If the object has no parent and you don't specify a Local Reference Node object, these fields use the world center (0,0,0) as the reference node.

Rotation group
Euler Order

These three settings determine the order in which the Expose Transform helper will look for an Euler rotation.

This parameter corrects for anomalies that can be introduced when a local rotation value is generated in relation to other rotation values. For example, when Z Order is set to XYZ, the Z value is generated in reference to X and then Y. Or when X Order is set to ZXY, the Z value is generated directly in reference to the parent, regardless of X and Y rotations.

Strip NU Scale

When on, removes any non-uniform scaling that could influence the rotation data. It does not strip non-uniform scaling from the object; only from the values generated.

Timing group
Use Time Offset

When on, lets you specify a frame other than the current one from which to gather data. The Offset value is added to the current frame to derive the frame from which data is gathered.

For example, if the current frame is 20 and you wish to gather data from frame 15, turn on Use Time Offset and set Offset to –5.

Display rollout

Lets you specify how the helper object appears in the viewports. By default, the display type is set to Cross only, and Size is set to 20.0. You can activate multiple display settings if you like.

Center Marker

Displays a small X marker at the center of the helper object.

Axis Tripod

Displays a tripod axis indicating the position and orientation of the helper object.

Cross

Displays an axis-aligned cross.

Box

Displays a small axis-aligned box at the center of the helper object.

Size

Sets the size for the helper object. Use this setting to minimize the helper object, or increase its size to aid in locating it. Default=20.0.

Constant Screen Size

Keeps the size of the helper object constant, regardless of how much you zoom in or out.

Draw On Top

Displays the helper object on top (or in front) of all other objects in the scene.

Exposed Values rollout

This rollout provides readouts of values for all transform values of the Expose Node object. Each value has a button labeled “M” next to it; click this button to copy the MAXScript associated with the value to the clipboard, which you can then paste into a script.

Display Exposed Values

When on, transform values for the Expose Node object appear on this rollout, and update as the values change. When off, values don't appear, but the M buttons still function normally.

Local Euler Angles group

Rotation values with respect to the parent or Local Reference Node object.

World Euler Angles group

Rotation values in the world coordinate system.

Local Position group

Position values with respect to the Expose Node object's local coordinate system.

World Position group

Position values in the world coordinate system.

Bounding Box group

The maximum dimensions of the object.

Distance to Reference group

The distance between the Expose Node object and its parent or the designated Local Reference Node object. If neither exists, this shows the distance to the world center (0,0,0).

Angle group

The angle between the Expose Node object and its parent or the designated Local Reference Node object.