These plugins/scripts are provided for your use as-is. Mondo Media claims no responsibility for any
damage to your files or lost productivity as a result of using this plugin/script. Feel free to
modify and/or redistribute these files as you see fit.
Mondo Media will provide no technical support for these plugins/scripts but please email any suggestions
for features and future plugins to mondolabs@mondomed.com.
Installation:
Copy the controllerpak.dlc file to your plugin subdirectory under your 3DS MAX directory.
Description:
Collection of custom animation controllers for all Float, Point3, Position, Rotation, and Scale values (except for the Object controller). Includes:
Bake
Derivative
Ease
Harryhausen
Limit
Multiplier
Object
Pulse
Spring
Instructions:
Each controller can be found under the Assign Controller command in the Track View or Motion Panel.
NOTE: Do not directly assign a controller to the input parameter of any of the Rotation or Scale versions of these controllers. Due to a limitation in MAX's design,
you will only be able to assign Point3 controllers, and a Rotation or Scale controller will crash with a Point3 input. Assign these controllers AFTER you have created the input animation you intend to use.
Bake Controller
Description:
"Bakes" existing animation by sampling entire animation curve and storing those samples.
Instructions:
Assign a bake controller to an existing animation controller,
and the existing controller will be assigned to the input of the bake controller.
Go to the controller properties and press Update to store the existing animation values. Press this button any
time you have modified the original animation (in the Input property) to save new values.
You can change the frequency at which the input animation is sampled by changing the Sampling Interval value.
This value represents the number of frames between successive samples.
You can enable and disable this controller with the Enable checkbox.
|
Derivative Controller
Description:
Outputs the derivative of the input curve.
Instructions:
Assign a Derivatice controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Derivative controller.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
You may also change the sampling rate for the derivative calculation, by adjusting the sample period spinner.
The sample period is the amount of frames in between samples. A higher number will result in faster, but less accurate
calculations.
|
Ease Controller
Description:
Picks values from a specified point in time along an existing animation curve.
Instructions:
Assign an Ease controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Ease controller.
The Ease property controls the part of the input curve which is passed through the output. For example, an ease
of 80 will pass the value of the input curve at frame 80.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
Special Instructions:
This controller is a more flexible version of the ease curve supplied by MAX. For example, you can apply an Ease controller to position,
float, and Point3 lists, whereas you cannot use a MAX ease curve in those cases.
|
Harryhausen Controller
Description:
Generates stop-motion like animation...after Ray Harryhausen.
Instructions:
Assign a Harryhausen controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Harryhausen controller.
The Shakiness property controls the amount of motion error in the output. A higher shakiness will result in a noisier,
more erratic motion. When there is no motion in the input curve, the output curve also has no motion, regardless
of shakiness. This is because a stop-motion animator would not be moving the object at all.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
You may also change the sampling rate for the controller calculation, by adjusting the sample period spinner.
The sample period is the amount of frames in between samples. The controller will hold its value for that many frames,
before calculating a new one.
|
Limit Controller
Description:
Outputs a clamped version of the input curve
Instructions:
Assign a Limit controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Limit controller.
The Min and Max properties control the range at which the input value is clamped. You can rescale the input to fit
perfectly within that range by selecting Scale to Limit in the controller properties window.
Also in the controller properties window, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
You may also set the minimum and maximum values for the current frame by using the Min and Max spinners.
|
Multiplier Controller
Description:
Multiplies input value by specified amount.
Instructions:
Assign a Multiplier controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Multiplier controller.
The Multiplier property controls the amount by which the input curve is multiplied.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
Special Instructions:
This controller is a more flexible version of the multiplier curve supplied by MAX. With this, you can apply a multiplication to position,
float, and Point3 lists, whereas you cannot use a MAX multiplier curve in those cases.
|
Object Controller
Description:
Retrieves the world space Transform, Rotation, or Scale of an object, and outputs a Point3.
Instructions:
There are three Object controllers, all of which output a Point3, but look at different inputs: Position, Rotation and Scale.
In the controller properties windows, you select the object that you want to reference, by pressing Pick Object
and picking an appropriate object. The output value will then be the position, rotation, or scale of the selected object,
depending on the type of Object controller you used.
|
Pulse Controller
Description:
Generates user-created pulses whenever the input value passes a certain threshold. Useful for triggering camera shaking, etc.
Instructions:
Assign a Pulse controller to an existing
animatable parameter, and the existing controller will be assigned to the input of the Pulse controller.
The Threshold property controls the timing of the pulses. Whenever the input controller rises above the threshold
value or, if Greater Than is enabled in the controller properties window, when it falls below the threshold,
the Pulse Curve will be played at time zero. If there is any animation on the Pulse Curve before time zero,
that will be played back ahead of the triggering event.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value through to the output.
|
Spring Controller
Description:
Simulates the effect of a spring attached to the input value or, in the case of rotation, a pendulum affected by gravity and inertia.
Instructions:
There are four Spring controllers: Float, Point3, Position and Rotation. The Rotation controller is a special case, and will be described later.
The following instructions pertain to the other three Spring controller types. Assign one of these controllers to an existing
animatable parameter, and the existing controller will be assigned to the input of the Spring controller.
The Spring Strength parameter controls the strength of the force that tries to make the output value closer to the input
value. A higher spring strength, will try to follow the input more closely, but could result in faster oscillations.
The Drag parameter controls the amount by which the input value slows down every frame (from 0 to 100 percent). A higher drag decreases
oscillation strength over time, even stopping oscillations completely.
The Multiplier parameter multiplies the different between the output and input curves, thus making the output
follow the input more or less closely.
In the controller properties windows, you can enable and disable the controller by clicking on the Enable
checkbox. A disabled controller will simply pass the input value straight through to the output without any modification.
You may also change the sampling rate for the controller calculation, by adjusting the sample period spinner.
The sample period is the amount of frames in between calculations. The controller value will continue in a straight line between samples.
Generate offset only forces the controller to output only the difference between the springy position and the
input position.
You can select from a set of preset spring and drag values from the listbox at the bottom.
Rotation Controller
The Spring Rotation controller simulates the motion of a pendulum. It is more complex and has more input parameters than the first three
controllers described above. The main difference is that it does not work with an existing rotation animation but generates its values based
on a rest position that you designate, the acceleration of its parent object, and the effect of gravity (a value which you also supply). With
the Rotation controller, you will see seven different inputs:
Input is automatically assigned an Object Position Point3 controller, which you can use (go to properties and select your target object)
to reference the world-space movement of the object to which your pendulum is attached. This value is used to generate the motion of a pendulum
swinging backwards when attached to an accelerating object.
Spring Strength determines how hard the pendulum tries to stay at its Rest Orientation, which is the orientation of the object at frame 0
when you assign the controller, or the orientation you provide by rotating the object in the MAX viewport.
Drag and Multiplier work the same way as the other three Spring controllers.
Lag determines how much the pendulum "lags" or swings behind its parent object when that object accelerates.
Parent Orientation is automatically assigned an Object Rotation Point3 controller, which you should use to select the parent object
of your pendulum. By using this input, you are guaranteed to have a consistent gravity direction when the parent object rotates.
Gravity Vector is a Point3 value which determines the direction if gravity which is affecting your pendulum. The -z axis of your pendulum
tries to align itself with the vector you supply here. The length of that vector determines the strength of gravity. For example, a value of (10, 0, 0) would
have gravity working in the positive X direction, with a strength of 10.
The properties window is very similar to the other Spring controllers, except there are no presets currently, and you cannot generate
offset values.
|
|