Controller Ease and Multiplier Curve Functions

addEaseCurve <controller> [ <float_controller> ]      

Adds an ease curve to the specified controller.

You can provide an optional float controller for the curve or have the function generate a default float controller for you.

When you add an ease curve in Track View, keys are automatically created at the beginning and end of the current animation range. The addEaseCurve() method does not generate these keys, so you need to add them to the ease curve controller.

An instance of the procedural Retimer Controller introduced in 3ds Max 2013 can be passed as second argument to enable the new Retimer workflow using markers instead of keys.

deleteEaseCurve <controller> <index>   

Deletes the indexed ease curve from the controller. The index is 1- based and corresponds to the order in which the curves were originally added to the controller.

numEaseCurves <controller> 

Returns the number of ease curves currently operating on the controller.

applyEaseCurve <controller> <time> 

Applies the combined ease curves in the specified controller to the given time value, returning the transformed time.

getEaseCurve <controller> <index> 

Returns the indexed ease curve (a bezier_float controller) on the specified controller. The index is 1- based and corresponds to the order in which the curves were originally added to the controller.

addMultiplierCurve <controller> [ <float_controller> ] 

Adds a multiplier curve to the specified controller.

You can provide an optional float controller for the curve or have the function generate a default float controller for you.

When you add a multiplier curve in Track View, keys are automatically created at the beginning and end of the current animation range. The addMultiplierCurve() method does not generate these keys, so you need to add them to the multiplier curve controller.

deleteMultiplierCurve <controller> <index_integer> 

Deletes the indexed multiplier curve from the controller. The index is 1- based and corresponds to the order in which the curves were originally added to the controller.

numMultiplierCurves <controller> 

Returns the number of multiplier curves currently operating on the controller.

getMultiplierValue <controller> <time> 

Returns the combined (float) value of the multiplier curves in the specified controller at the given time value.

getMultiplierCurve <controller> <index> 

Returns the multiplier curve (a bezier_float controller) at the specified index. The index is 1-based and corresponds to the order in which the curves were originally added to the controller.

Associated Properties

If an Ease Curve is assigned to a controller, the following controller-related sub-property is available:

<controller>.Ease_Curve -- the controller's ease curve value 
<controller>.Ease_Curve.controller -- the ease curve controller itself

If a Multiplier Curve is assigned to a controller, the following controller-related sub-property is available:

<controller>.Multiplier_Curve -- the controller's multiplier curve value 
<controller>.Multiplier_Curve.controller -- the multiplier curve controller itself
Note:

The values stored in an Ease Curve controller are stored as integer time ticks.

The following script shows examples of some of the above methods.

EXAMPLE

   --controller test bed 3
   b=box height:10
   at time 5 animate on b.height=50
   at time 10 animate on b.height=100
   bhc=b.height.controller
   ec=bezier_float()
   at time 0 animate on ec.value = 0
   at time 100 animate on ec.value=100*ticksPerFrame
   setBeforeORT ec #linear
   setAfterORT ec #linear
   addEaseCurve bhc ec
   applyEaseCurve bhc 50
   addEaseCurve bhc ec
   numEaseCurves bhc
   deleteEaseCurve bhc 2
   numEaseCurves bhc
   at time 50 bhc.ease_curve
   mc=bezier_float()
   at time 0 animate on mc.value = 1
   at time 100 animate on mc.value = 2
   addMultiplierCurve bhc mc
   at time 50 bhc.multiplier_curve