animate

The [ with ] animate <boolean_expr> context corresponds to setting the Auto Key button in the 3ds Max user interface. Placing an expression, operation, or block-expression within an animate on context causes keyframes to be generated whenever an animatable property of a 3ds Max object is changed, regardless of the actual state of the Auto Key button. Likewise, placing an expression within an animate off context prevents keyframes from being generated whenever an animatable property of a 3ds Max object is changed. Expressions that change an animatable property of a 3ds Max object, and are not within an animate context, will generate keyframes only if the Auto Key button is on.

Setting the animate context on or off does not affect the state of the Auto Key button. The state of the Auto Key button can be queried and set using the animButtonState global variable. The user can be prevented from changing the state of the Auto Key button using the animButtonEnabled global variable.

Examples:

loadheight=obj.pos.z

-- lift object, no key generated

animate off

obj.pos.z=loadheight+LiftHeight

-- Create key at time tStart to keep object lifted until that time.

-- If tStart != 0, a key will also automatically be created at frame 0.

-- Then create a key at time tEnd to drop the object

with animate on

(

at time tStart obj.pos.z=loadheight+LiftHeight

at time tEnd obj.pos.z=loadheight

)

Historical Note for New Users:

In 3ds Max prior versions 5, the Auto Key button was called Animate. Since MAXScript has been first introduced back in 3ds Max 2 when there were no Auto Key and Set Key buttons, the MAXScript terminology remains the same for compatibility reasons, including the name of the animate context and the name of the global variable animButtonEnabled. Changing their names to reflect the new 3ds Max UI would break old scripts and is thus not a good idea.