1. Use cases for the Animation System
  1. Brief descriptions of the use cases
    1. Define a geometrical model
    2. The user enters parameters that define a model of the figure to be animated. The parameters include joint positions, rotational constraints on the joints, link lengths and the model hierarchy.

      Actors: Modeler

      Uses: Change view

       

    3. Manipulate a kinematic chain
    4. The user interacts with a defined chain to place its links in a particular pose.

      Actors: Animator

      Uses: Change view

    5. Record an animation sequence
    6. The user records a set of poses at different times that define an animated sequence.

      Actors: Animator

      Uses: Manipulate a kinetic chain, Change view

    7. Change the view of the model
    8. The user manipulates the virtual camera to obtain the desired framing for viewing the model and animation.

      Actors: Modeler, Animator

      Uses:

    9. Save an animation
    10. The animation key frames and timings are saved to a file so that they can be recalled in another session.

      Actors: Animator

      Uses:

       

    11. Save a figure
    12. The geometrical model of a figure is saved in a file so that it can be recalled in another session.

      Actors: Modeler

      Uses:

       

    13. Save a movie of an animation
    14. The animated sequence is saved to disk as a series of images so that a movie can be made from the images.

      Actors: Animator

      Uses: Change view

       

    15. Load an animation
    16. A saved animation and its associated figure are loaded.

      Actors: Animator

      Uses:

    17. Load a figure
    18. A saved figure is loaded.

      Actors: Animator, Modeler

      Uses:

    19. Check an animated sequence

    An animator moves the displayed time to a different time to see the progress of the animation.

    Actors: Animator

    Uses: Change view

  2. Detailed Use Cases
  3.  

    1. Define a geometrical model

Precondition: The animation system is started and no figure exists.

Flow of Events:

  1. The user lets the system know that a chain is to be defined now.
  2. The user enters a set of points on the chain in the window by clicking.
  3. The user lets the system know that the chain is complete.
  4. The system displays the completed chain to the user.
  5. The user selects a link in a chain and specifies its rotational limits.
  6. The system displays the rotational limits as the user sets them.
  7. The user creates more chains.
  8. The user defines the root link.
  9. The user selects a chain and tells the system that it is to be connected to another link.

Assumptions:

  1. The point of attachment of a non-root link is also its point of rotation.
  2. There is only one root link.
  3. The root link may not belong to a chain.
  4. The root link’s centeroid is its center of rotation.
  5. A chain can be attached to any point on a link.
  6. Multiple chains can be attached to a link.

Postcondition: A figure has been defined that is a collection of kinematic chains. If any motion of the figure as a whole is desired, a root link has been defined.

 

    1. Manipulate a kinematic chain

Precondition: At least one chain exists. The animation system is running.

Flow of Events:

  1. The user selects the end effector link of a chain.
  2. The user drags the selected link through 3-space.
  3. The system displays the link in its new position.
  4. The system moves any attached links in this chain and any child chains along with the selected link.
  5. The user rotates the selected link in 3-space.
  6. The system moves any attached links in this chain and any child chains along with the selected link.

Assumptions:

  1. Any child chains attached to the selected one will remain in their initial joint configurations throughout the movement. That is, they will remain internally frozen although they may be translated and rotated as a whole.
  2. The movement of the selected chain will not be propagated to its parent. That is, as this chain moves, its parent and all other chains above it in the hierarchy will remain stationary.
  3. If the selected link is in the middle of a chain, all links after it in the chain will remain stationary relative to this link. That is, the rest of the chain will be treated as a static whole and rotated or translated as a unit.

Postcondition: The chain is in a new configuration.

 

    1. Record an animation sequence

Precondition: At least one chain exists.

Flow of Events:

  1. The user selects an overall length for the animation.
  2. The user lets the system know what time it is within the animation period.
  3. The user positions the figure in a keyframe position.
  4. The user lets the system know that the keyframe is to be saved.
  5. The system saves all position and rotation data for the figure at this time.
  6. The user does the above steps zero or more times.
  7. The user lets the system know that the animation is complete and should be saved.
  8. The system saves the animation for later recall.

Assumptions:

  1. There will be a facility to erase a keyframe or clear all of the keyframes within an animation period.
  2. There will not be a facility to record multiple layers of animation. That is, the entire figure will be saved at each keyframe, not just part of it.

Postcondition: An animated sequence consisting of zero or more keyframes has been saved.

 

    1. Change the view

Precondition: The system is running.

Flow of Events:

  1. The user indicates the type of movement desired. This can be one of the following: rotation of camera, translation of camera.
  2. The user moves holds down the mouse button and moves the mouse. The following movements are possible:

Assumptions:

Postcondition: The view has been changed to the desired view.

 

    1. Save an animation

Precondition:

Flow of Events:

  1. The user tells the system that the existing animation is to be saved.
  2. The system prompts the user for a name
  3. The system saves a reference to the figure if any and a set of joint keyframes.

Assumptions:

  1. If there is no figure or animation, nothing is saved.
  2. Animation data must be removed when the figure is removed.

Postcondition: animation has been saved under the user-specified name.

 

    1. Save a figure

Precondition: A figure with at least one link exists.

Flow of Events:

  1. The user tells the system that the figure is to be saved.
  2. The system prompts the user for a name.
  3. The system saves all figure data (current pose, joint limits, link lengths, hierarchy).

Assumptions:

  1. There is only one figure in the system at any given time.

Postcondition: The figure data has been saved under the user-specified name.

 

    1. Save a movie of an animation

Precondition: animation consisting of at least one keyframe exists.

Flow of Events:

  1. The user tells the system that the animation is to be recorded as a set of images.
  2. The system prompts the user for a name.
  3. The system steps through the frames, interpolating figure poses and saves an image file for each frame.

Assumptions:

  1. The images will be numbered so that there is a unique frame number associated with each image.

Postcondition: A set of one or more images has been saved under the user-specified name.

 

    1. Load an animation

Precondition: A saved animation exists

Flow of Events:

  1. The user lets the system know that animation is to be loaded.
  2. The system prompts for a name.
  3. The system opens the animation and its figure.
  4. The system displays the figure and its keyframes.

Assumptions:

  1. The animation data contains a camera position.
  2. The figure reference by the animation exists and can be found.

Postcondition: A figure and its animation have been loaded.

 

    1. Load a figure

Precondition: A saved figure exists.

Flow of Events:

  1. The user lets the system know that a figure is to be loaded.
  2. The system prompts the user for a name.
  3. The system opens the figure
  4. The system displays the figure.

Assumptions:

  1. The figure data exists and can be found.

Postcondition: A figure has been loaded.

 

    1. Check an animated sequence

Precondition: A figure exists and some animation exists.

Flow of Events:

  1. The user indicates which time (frame) is to be displayed.
  2. The system displays the figure's pose for that time.

Assumptions:

  1. A rapid succession of frames can be displayed giving the animator a feel for the motion.
  2. Keyframes as well as in-between frames will be displayed.

Postcondition: The figure's pose at the new time is displayed.

 

Glossary terms

Animation

A set of keyframe poses of a figure which define movement over time.

In-between

A non-keyframe pose of the figure at a particular moment in time. In-between frames are generated by the system and interpolate positions between keyframes.

Keyframe

A figure pose at a particular moment in time. The keyframe specifies important positions of the figure in time.

Chain

A collection of interconnected links with no branches.

Figure

A collection of kinematic chains in a possibly branched hierarchical structure.

Joint

The connection between two links. A joint has position, orientation and orientation limits associated with it.

Link

A single rigid segment which rotates and translates. Each link has a joint associated with it.

Animation Period

The period of time over which an animation takes place.

Frame

One time unit within an animation. The total animation period is divided into evenly spaced time intervals called frames.

Camera Position

The world coordinate x, y, z and yaw, pitch, roll of the camera.

Pose

A configuration of a figure.

Camera

The data representing the viewing parameters in the system. These include center of projection, viewing frustum rotations, horizontal and vertical field of view.

Root link

The root of the figure’s hierarchy. The root link does not move when one of its child chains is positioned. All chains connected to this segment move when it is moved (without changing any chain’s configuration).


Michael Quinn
University of Minnesota
6/17/2000