- Use cases for the Animation System
- Brief descriptions of the use cases
- Define a geometrical model
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
- Manipulate a kinematic chain
The user interacts with a defined chain to place its links in a particular pose.
Actors: Animator
Uses: Change view
- Record an animation sequence
The user records a set of poses at different times that define an animated sequence.
Actors: Animator
Uses: Manipulate a kinetic chain, Change view
- Change the view of the model
The user manipulates the virtual camera to obtain the desired framing for viewing the model and animation.
Actors: Modeler, Animator
Uses:
- Save an animation
The animation key frames and timings are saved to a file so that they can be recalled in another session.
Actors: Animator
Uses:
- Save a figure
The geometrical model of a figure is saved in a file so that it can be recalled in another session.
Actors: Modeler
Uses:
- Save a movie of an animation
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
- Load an animation
A saved animation and its associated figure are loaded.
Actors: Animator
Uses:
- Load a figure
A saved figure is loaded.
Actors: Animator, Modeler
Uses:
- 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
Detailed Use Cases
Define a geometrical model
Precondition: The animation system is started and no figure exists.
Flow of Events:
- The user lets the system know that a chain is to be defined now.
- The user enters a set of points on the chain in the window by clicking.
- The user lets the system know that the chain is complete.
- The system displays the completed chain to the user.
- The user selects a link in a chain and specifies its rotational limits.
- The system displays the rotational limits as the user sets them.
- The user creates more chains.
- The user defines the root link.
- The user selects a chain and tells the system that it is to be connected to another link.
Assumptions:
- The point of attachment of a non-root link is also its point of rotation.
- There is only one root link.
- The root link may not belong to a chain.
- The root links centeroid is its center of rotation.
- A chain can be attached to any point on a link.
- 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.
Manipulate a kinematic chain
Precondition: At least one chain exists. The animation system is running.
Flow of Events:
- The user selects the end effector link of a chain.
- The user drags the selected link through 3-space.
- The system displays the link in its new position.
- The system moves any attached links in this chain and any child chains along with the selected link.
- The user rotates the selected link in 3-space.
- The system moves any attached links in this chain and any child chains along with the selected link.
Assumptions:
- 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.
- 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.
- 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.
Record an animation sequence
Precondition: At least one chain exists.
Flow of Events:
- The user selects an overall length for the animation.
- The user lets the system know what time it is within the animation period.
- The user positions the figure in a keyframe position.
- The user lets the system know that the keyframe is to be saved.
- The system saves all position and rotation data for the figure at this time.
- The user does the above steps zero or more times.
- The user lets the system know that the animation is complete and should be saved.
- The system saves the animation for later recall.
Assumptions:
- There will be a facility to erase a keyframe or clear all of the keyframes within an animation period.
- 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.
Change the view
Precondition: The system is running.
Flow of Events:
- The user indicates the type of movement desired. This can be one of the following: rotation of camera, translation of camera.
- The user moves holds down the mouse button and moves the mouse. The following movements are possible:
- Up for forward translation, down for backward translation.
- Up with the shift key held down for upward translation, down with the shift key for downward translation.
- Up with the control key held down for pitch up, down with the control key held down for pitch down.
- Left with the control key held down for pan left, right with the control key held down for pan right.
- Left with shift and control held down for roll positive, right with the shift and control key held down for roll negative.
Assumptions:
Postcondition: The view has been changed to the desired view.
Save an animation
Precondition:
Flow of Events:
The user tells the system that the existing animation is to be saved.
The system prompts the user for a name
The system saves a reference to the figure if any and a set of joint keyframes.
Assumptions:
- If there is no figure or animation, nothing is saved.
- Animation data must be removed when the figure is removed.
Postcondition: animation has been saved under the user-specified name.
Save a figure
Precondition: A figure with at least one link exists.
Flow of Events:
- The user tells the system that the figure is to be saved.
- The system prompts the user for a name.
- The system saves all figure data (current pose, joint limits, link lengths, hierarchy).
Assumptions:
- There is only one figure in the system at any given time.
Postcondition: The figure data has been saved under the user-specified name.
Save a movie of an animation
Precondition: animation consisting of at least one keyframe exists.
Flow of Events:
- The user tells the system that the animation is to be recorded as a set of images.
- The system prompts the user for a name.
- The system steps through the frames, interpolating figure poses and saves an image file for each frame.
Assumptions:
- 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.
Load an animation
Precondition: A saved animation exists
Flow of Events:
- The user lets the system know that animation is to be loaded.
- The system prompts for a name.
- The system opens the animation and its figure.
- The system displays the figure and its keyframes.
Assumptions:
- The animation data contains a camera position.
- The figure reference by the animation exists and can be found.
Postcondition: A figure and its animation have been loaded.
Load a figure
Precondition: A saved figure exists.
Flow of Events:
- The user lets the system know that a figure is to be loaded.
- The system prompts the user for a name.
- The system opens the figure
- The system displays the figure.
Assumptions:
- The figure data exists and can be found.
Postcondition: A figure has been loaded.
Check an animated sequence
Precondition: A figure exists and some animation exists.
Flow of Events:
- The user indicates which time (frame) is to be displayed.
- The system displays the figure's pose for that time.
Assumptions:
- A rapid succession of frames can be displayed giving the animator a feel for the motion.
- 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 figures 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 chains configuration). |
Michael Quinn
University of Minnesota
6/17/2000