Animating Using Waypoints


Animating an object along a pre-defined path is a common task in many simulation scenarios. To help level designers with this task, Vortex® Studio offers a waypoint-based animation extension that outputs a smooth path along those waypoints.


Animation Path

The Animation Path extension is part of the Animation tools.

This extension outputs an animated world transform along a path defined by points, called waypoints. The path starts at the first waypoint and ends at the last waypoint. The waypoints between the first and last are used to interpolate a smooth path.

There are three types of interpolated curves:

  • B-Spline of order 3 produces a curve that approximately follows the waypoints.
  • Bézier of order n (where n-1 is the number of waypoints) produces a very smooth curve that will not make any sudden change in direction.
  • Catmull-Rom spline is a curve that passes through all waypoints. (This is the default curve type.)
B-SplineBézierCatmull-Rom

B-Spline approximately follows the waypoints. Moving one waypoint will only modify the curve around that waypoint.Bézier curve passes through an average of all waypoints. Moving one waypoint will change the whole curve.Catmull-Rom spline passes through all waypoints. Moving one waypoint will only modify the curve around that waypoint.

To add an Animation Path:

  1. In a scene or mechanism, locate the Animation category in the Toolbox.
  2. Double-click Animation Path to add the extension.

The Animation Path extension uses any object with World Transform outputs as waypoints. You can also use the Reference Point object; in addition to providing the coordinates of each waypoint along the path, each Reference Point (when added to the Animation Path) can be assigned a type that affects how the path will proceed to the next waypoint.

Properties Panel

The Animation Path extension's Properties panel contains the following fields.

Input

  • Enabled: When you select the box next to Inputs, the animation will start along its path until it is paused or it stops at the last waypoint.
  • Pause animation: Toggle this box to pause or resume the animation. The animation will gently pause based on the lowpass filter (see the LowPass acceleration filter time constant parameter below).
  • Reset animation: Selecting this box resets the animation to its beginning. The reset is triggered only when this input goes from deselected to selected.
  • Input speed: Specifies the desired speed of the animation, in meters per second.

Output

  • Output transform: The animation transform along the path. This output is usually connected to the Parent Transform input of the object that will be animated, using the Connection Editor. You can also connect the output transform to the input animation transform of the Part Animator.
  • Animation state: The current animation state: "Animating", "Paused", or "Stopped".
  • Animation path length: The total calculated path length, in meters.
  • Number of interpolation points: The number of interpolation points necessary to calculate the animation path.
  • Current animation interpolation point: The interpolation point index used to calculate the current transform.
  • Current animation speed: The current linear speed calculated along the motion of the outputted transform, in meters per second.

Parameters

  • Minimum animation speed: The minimum animation speed at which this object may be animated, in meters per second.
    This will determine the minimum distance between interpolation points and affects the total number of interpolation points necessary to compute the path and animate it smoothly.
  • Stop point deceleration distance: The distance at which the animation will start decelerating linearly when arriving at a "Stop and go" or "Stop and pause" waypoint, in meters.
  • Stop immobilization duration: The duration of the stop in the animation when the animation is at a "Stop and go" waypoint, in seconds.
  • Loop animation: When selected, the animation continues from the first waypoint after reaching the last waypoint.
  • LowPass acceleration filter time constant: A lowpass filter constant, in seconds. The lowpass filter is used to filter out unwanted high speed changes in the acceleration.
  • Reset animation on enable: When selected, the animation resets to its initial position after switching the Enabled input from deselected to selected.
  • Interpolation curve type: Specifies the type of curve that defines the actual interpolated animation path using the waypoints. The options are B-spline, Bézier and Catmull-Rom.

Waypoints

Waypoints are used to calculate the animation path. The Waypoints parameter is a container that can hold as many objects (having transform outputs) as needed. Each waypoint can also be assigned a type:

  • Standard: Follow along the waypoint and automatically continue to the next waypoint, if there is one.
  • Stop and go: When the waypoint is reached, stop for the duration defined in the Stop immobilization duration parameter.
  • Stop and pause: When the waypoint is reached, pause the animation indefinitely (until it is resumed by deselecting the Pause animation input).

Using Waypoints

This section demonstrates how to create an animation by using Reference Point extensions as waypoints in your scene or mechanism content object in Vortex Studio Editor.

Note The information below specifically uses Reference Points to demonstrate animation creation. However, animations can be created by using any object having transform outputs as waypoints, e.g., a part.

To add a Waypoint:

  1. In a scene or mechanism, locate the Animation category in the Toolbox.
  2. Double-click Reference Point to add it.

Each reference point is represented in the 3D View by a small colored sphere (green by default, scale and color are configurable via its Properties panel).

Once done, add an Animation Path extension to the same content object and add your reference points to the Waypoints container in the extension's parameters. For each waypoint, you can set a different animation type.

An Animation Path extension requires a minimum of three waypoints to generate the spline (path). With fewer than three waypoints, the extension will issue a warning.

As you add the third reference point to the waypoints container (and for every additional waypoint thereafter), you should see a cyan path drawn in the 3D view from the first waypoint to the last and approximating the other points along the way.

If the spline cannot go directly through one of your waypoints and approximates it, you will see a new colored sphere appear along the path. All points on the path (whether the original waypoint or an additional point added by the spline approximation) will be color-keyed to reflect their type (or the type of the approximated waypoint not directly along the path). Green means that it is a "Standard" waypoint, red that it is either a "Stop and go" or "Stop and pause" waypoint. Waypoints directly on the path will have a dual color pattern: the Reference Point Color parameter and the type's color .

In this example, the Reference Point A Standard waypoint had its Color parameter set to magenta. Since it sits directly along the path, it is shown as both magenta and green. The Reference Point B waypoint with a type of "Stop and Go" had its Color parameter set to blue, but since it is approximated by the spline, a red point is shown on the path with the red color representing Reference Point B's waypoint type.

Also, as can be seen on the image below, cyan arrows are added along on the path. They indicate the orientation that an object will have as it follows the path.

Finally, to animate an object using the Animation Path extension, connect the extension's Output Transform field to the Parent Transform of an object.

Waypoint Animation Example

Note The information below specifically uses Reference Points to demonstrate animation creation. However, animations can be created by using any object having transform outputs as waypoints, e.g., a part.

  1. Open the Vortex® Studio Editor and create a new Scene.
  2. In the 3D View, right-click and select Grid....
  3. Select the Use Grid box and Use grid as terrain (if not already done). Press OK. The grid is optional but will help you visualize the waypoints.
  4. In the Toolbox, select the Animation category and double-click Reference Point to add that extension to the scene.
  5. In the Explorer panel, select your newly added Reference Point and duplicate it (right-click on it then click Duplicate or Ctrl-D) four more times.
  6. Rename (in the Properties panel, in the Name field) each extension P1, P2, P3, P4, P5 in order. This will make the rest of this example more clear.
  7. Set the Local Transform of each Reference Point as follows:

    Reference PointXYZ
    P1-5.05.00.0
    P2-5.0-5.00.0
    P35.0-5.00.0
    P45.05.00.0
    P5-5.05.00.0

    All five points should now be in a square pattern.

  8. In the Toolbox, select the Animation category and add double-click Animation Path to add that extension to the scene.
    When newly created, your Animation Path extension has a warning. This is normal because the Animation Path requires at least three waypoints added to its container before it can compute and display the spline.
  9. Change the following fields of the Animation Path extension with these values:

    InputsValue
    Reset animationSelected
    Input speed1.3 m/s
    ParametersValue
    Stop point deceleration distance3.0 m
    Loop animationSelected
    LowPass acceleration filter time constant0.0 s
  10. In the Parameters section of the Animation Path extension's Properties panel, add five waypoints by pressing the + button five times.
  11. In order, assign each Reference Point (P1, P2, P3, P4, P5) previously defined as a waypoint in the following way:
    1. Click the topmost empty cell in the Waypoints array.
    2. Click on the ... button.
    3. Select the desired Reference Point from the Explorer panel.
    4. Press the check mark button to confirm your choice.
  12. For all waypoints, leave the type as Standard except for P3 which should be changed to Stop and go.
  13. In the Toolbox, select the Human category and double-click Human to add that extension to the scene.
  14. In the Toolbox, select the Basics category and double-click Connection Container to add that extension to the scene.
  15. Select Connections in the Explorer panel, then select the Human extension and drag its Parent transform input into the Connections Editor view.
  16. Select the Animation Path extension from the Explorer panel and drag its Output Transform output into the Connections Editor view.
  17. Connect both fields by dragging from one field's connection point to the other.
  18. Switch back to the 3D View tab. The Human should now be positioned on top of P1.
  19. In the Explorer, select Human > Human Control and change its Desired Human Action input to a walking animation.
  20. Press the Play button to start the simulation.
  21. If you want to see the spline while simulating, right-click on the eye icon next to the Animation Path extension in the Explorer panel and select Select All.