MJW_animationWorkshop

Animating with the KH_Plugins Suite


Introduction

The KH_Plugins provide added functionality to the MojoWorld 2.0 application by allowing precise control over object positioning, scaling and orientation. These control parameters may be varied over time. Used together, the three KH_Plugins constitute a sophisticated animation-system that greatly enhances MojoWorld's animation capability.

Downloading and Installation

The KH_Plugins are authored by Bernard 'Krummen Hacker' Krummenacher and are available on his MojoWorld 2.0 plugins page.

You will need to download both the KH_Nurbs.dll file (containing the KH_Nurbs plugin) and the KH_Mover.dll file (which includes both the KH_Mover and KH_Path plugins). After downloading and expanding the two .DLL (Dynamically-Linked Library) files, place them into the 'Plugins' directory of the MojoWorld 2.0 application.

Accessing and Placing the Plugins

To access the plugins from within the MojoWorld application, activate the Manipulation Tool by clicking on its icon or typing 'u' on your keyboard. Next, select the Plugin icon from the 'Create > Primitives' palette to evoke the 'Load Library Item...' Drop Down List Box and select the appropriate plugin. Place the plugin-object within the RTR window by single-clicking on the desired location.

The KH_Plugin is represented in the RTR window by a preview-object with red, green and blue control handles (see graphic, left). The Red axis represents the Right direction, the Green axis represents the Front direction and the Blue axis represents the Up direction.

You can re-position the preview-objects using the Translate Tool. You may also scale the Mover and Nurbs objects using the Scale Tool. The arrowheads on the ends of the directional axes will expand or contract to indicate applied scaling. You can rotate the Nurbs object using the Rotate Tool.

In addition to the control handles, the Nurbs preview-object also displays its associated NURBS (Non-Uniform Rational B-Splines) path (see below).


The KH_Mover Plugin

The KH_Mover plugin is the heart of the KH animation suite. With it, controlled-objects can be positioned, scaled and oriented in space to a high degree of precision.

Launch the KH_Mover Editor by mouse-clicking on the Mover Hot Button or double-clicking the Mover-object in the Object List.

Note the semicircle icon , located to the left of several of the Mover Editor's data-entry fields. This semicircle indicates that these parameters may be driven by a Function Graph in the Pro UI. Parameters may be varied over time to produce animation sequences.

Note the Object Control Stack Expand/Collapse Toggle , located to the left of the various target-object selection fields. When a target-object is selected from a DDLB, the toggle becomes active. Click on it to access the target object's parameters from within the Mover Editor.


Name: Give each Mover-object a unique and meaningful name.

Object: Use the Object DDLB to select an object to control with the Mover. Eligible objects include cameras, primitives, imported models, lights, Marker Flags, parameter-bombs and other KH_Plugin objects. The default setting of 'None' indicates that no object is currently selected.

Note that when an object is selected from the Object DDLB, it assumes the same point-of-origin and spatial-orientation as the Mover-object. Any previous scaling applied via the Scaling Tool is removed.

Scale: Scale the controlled-object with great precision. The three data entry fields correspond to the Red, Green and Blue axes, in that order. Scaling is by a factor of the controlled-object's size, i.e., a scaling factor of '2' will double the object's size.

Pivot: Offset the controlled-object in relation to the Mover's point-of-origin, measured in meters, along the Mover's R, G and B axes.


Points to: Orients the Mover's Front (Green) axis. Selecting a target-object from the 'Points to' DDLB will cause the Mover to 'look at' the selected object. The default setting of 'None' refers to the point-of-origin of the 'World' coordinate-system (the center of the planet).

Note that a camera-object controlled with a Mover will always point along the Front (Green) axis.

Note that the 'Points to' setting is constrained on the 'Z' or 'Up' axis by the 'Is Primary Direction?' setting, below.

Opposite?: When true, orients the Mover's Front axis to point opposite the selected target-object's point-of-origin. Defaults to 'false' (Checkbox).

Offset: Offsets the Mover's Front axis from the target-object's point-of-origin within the target-object's Cartesian (XYZ) coordinate-system.

Long / Lat / Height: Offsets the Mover's Front axis from the target-object's point-of-origin within the target-object's polar coordinate-system. When a target-object is specified, 'Height' is the distance from the target-object's point-of-origin. When used with the planet (None), 'Height' is the distance above the planet's surface.

Note that the Mover Editor's 'Offset' and 'Long / Lat / Height' data fields are interactive - changes to one set of data fields are reflected in the automatic updating of the related fields.

Use Sea Level?: When used with the planet (None), the 'Height' parameter specified in the 'Long / Lat / Height' settings is the distance above the planet's sea-level.


Vertical above: Orients the Mover's Up (Blue) axis. The default setting of 'None' refers to the point-of-origin of the 'World' coordinate-system (the center of the planet). You may select any other eligible target-object from the 'Vertical above' DDLB.

Note that the 'Opposite?' parameter for the Up axis defaults to 'true' (see below).

Is Primary Direction?: When true, constrains the Up axis to align with the point-of-origin of the object selected in the 'Vertical above' DDLB. Defaults to 'true' (Checkbox).

Opposite?: When true, orients the Mover's Up axis to point opposite the selected target-object's point-of-origin. Defaults to 'true' (Checkbox).

Offset: Offsets the Mover's Up axis from the target-object's point-of-origin within the target-object's Cartesian (XYZ) coordinate-system.

Long / Lat / Height: Offsets the Mover's Up axis from the target-object's point-of-origin within the target-object's polar coordinate-system. When a target-object is specified, 'Height' is the distance from the target-object's point-of-origin. When used with the planet (None), 'Height' is the distance above the planet's surface.

Use Sea Level?: When used with the planet (None), the 'Height' parameter specified in the 'Long / Lat / Height' settings is the distance above the planet's sea-level.


Position relative to: Selects which target-object's coordinate-system is referenced by the Mover-object. The default setting of 'None' refers to the point-of-origin of the 'World' coordinate-system (the center of the planet). You may select any other eligible target-object from the 'Position relative to' DDLB.

Zero Offset!: Sets the Mover's point-of-origin equal to the point-of-origin of the selected target-object (0,0,0), within the target-object's Cartesian (XYZ) coordinate-system.

Offset: The offset of the Mover's point-of-origin from the point-of-origin of the target-object, within the target-object's Cartesian (XYZ) coordinate-system.

Long / Lat / Height: The offset of the Mover's point-of-origin from the point-of-origin of the target-object, within the target-object's polar coordinate-system. When a target-object is specified, 'Height' is the distance from the target-object's point-of-origin. When used with the planet (None), 'Height' is the distance above the planet's surface.

Use Sea Level?: When used with the planet (None), the 'Height' parameter specified in the 'Long / Lat / Height' settings is the distance above the planet's sea-level.


To Be Continued...

This tutorial series is currently under construction. Last update, 10/23/03.

For further instructions on using the KH_Plugins, please see Calyxa's Advanced MojoWorld Animation Tutorial.