- 141 - VIRYA - A MOTION CONTROL EDITOR FOR KINEMATIC AND DYNAMIC ANIMATION



Similar documents
This week. CENG 732 Computer Animation. Challenges in Human Modeling. Basic Arm Model

Interactive Computer Graphics

CATIA V5 Tutorials. Mechanism Design & Animation. Release 18. Nader G. Zamani. University of Windsor. Jonathan M. Weaver. University of Detroit Mercy

CS 4204 Computer Graphics

C O M P U C O M P T U T E R G R A E R G R P A H I C P S Computer Animation Guoying Zhao 1 / 66 /

Fundamentals of Computer Animation

Computer Animation in Future Technologies

Today. Keyframing. Procedural Animation. Physically-Based Animation. Articulated Models. Computer Animation & Particle Systems

Maya 2014 Basic Animation & The Graph Editor

SimFonIA Animation Tools V1.0. SCA Extension SimFonIA Character Animator

Design-Simulation-Optimization Package for a Generic 6-DOF Manipulator with a Spherical Wrist

Animation. Persistence of vision: Visual closure:

EDUH SPORTS MECHANICS

The 3D rendering pipeline (our version for this class)

Force/position control of a robotic system for transcranial magnetic stimulation

CG T17 Animation L:CC, MI:ERSI. Miguel Tavares Coimbra (course designed by Verónica Orvalho, slides adapted from Steve Marschner)

Robot Task-Level Programming Language and Simulation

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

ACTUATOR DESIGN FOR ARC WELDING ROBOT

Animations in Creo 3.0

FUNDAMENTALS OF ROBOTICS

Graphics. Computer Animation 고려대학교 컴퓨터 그래픽스 연구실. kucg.korea.ac.kr 1

animation animation shape specification as a function of time

Biomechanical Analysis of the Deadlift (aka Spinal Mechanics for Lifters) Tony Leyland

Active Vibration Isolation of an Unbalanced Machine Spindle

Character Animation Tutorial

Simulation of Trajectories and Comparison of Joint Variables for Robotic Manipulator Using Multibody Dynamics (MBD)

CIS 536/636 Introduction to Computer Graphics. Kansas State University. CIS 536/636 Introduction to Computer Graphics

Geometric Constraints

Computer Animation. Lecture 2. Basics of Character Animation

CS 4620 Practicum Programming Assignment 6 Animation

Time Domain and Frequency Domain Techniques For Multi Shaker Time Waveform Replication

Chapter 1. Introduction. 1.1 The Challenge of Computer Generated Postures

INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users

Design of a six Degree-of-Freedom Articulated Robotic Arm for Manufacturing Electrochromic Nanofilms

Centripetal force, rotary motion, angular velocity, apparent force.

Path Tracking for a Miniature Robot

Tutorial: Biped Character in 3D Studio Max 7, Easy Animation

Kinematical Animation

Computer Animation. Jason Lawrence CS 4810: Graphics

Scooter, 3 wheeled cobot North Western University. PERCRO Exoskeleton

animation shape specification as a function of time

SOLID MECHANICS TUTORIAL MECHANISMS KINEMATICS - VELOCITY AND ACCELERATION DIAGRAMS

Lesson Plan. Performance Objective: Upon completion of this assignment, the student will be able to identify the Twelve Principles of Animation.

Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau

The Fundamental Principles of Animation

On Predicting Lower Leg Injuries. for the EuroNCAP Front Crash

Kinematics & Dynamics

DESIGN, IMPLEMENTATION, AND COOPERATIVE COEVOLUTION OF AN AUTONOMOUS/TELEOPERATED CONTROL SYSTEM FOR A SERPENTINE ROBOTIC MANIPULATOR

FOR ARTICULATED FIGURE MANIPULATION. Chris Welman. B.Sc. Simon Fraser University a thesis submitted in partial fulfillment

Physics 9e/Cutnell. correlated to the. College Board AP Physics 1 Course Objectives

Creating Scenes and Characters for Virtools in OpenFX

Lecture PowerPoints. Chapter 7 Physics: Principles with Applications, 6 th edition Giancoli

FACIAL RIGGING FOR 3D CHARACTER

Goal-Directed, Dynamic Animation of Human Walking

Onboard electronics of UAVs

LEGO NXT-based Robotic Arm

Building Interactive Animations using VRML and Java

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool

Visualizing molecular simulations

An Instructional Aid System for Driving Schools Based on Visual Simulation

CATIA Basic Concepts TABLE OF CONTENTS

Tutorial for Assignment #2 Gantry Crane Analysis By ANSYS (Mechanical APDL) V.13.0

Mocap in a 3D Pipeline

DIRECT ORBITAL DYNAMICS: USING INDEPENDENT ORBITAL TERMS TO TREAT BODIES AS ORBITING EACH OTHER DIRECTLY WHILE IN MOTION

IMD4003 3D Computer Animation

2.5 Physically-based Animation

Industrial Robotics. Training Objective

Computer Animation. Computer Animation. Principles of Traditional Animation. Outline. Principles of Traditional Animation

Design of a Universal Robot End-effector for Straight-line Pick-up Motion

Introduction to Robotics Analysis, Systems, Applications

HYDRAULIC ARM MODELING VIA MATLAB SIMHYDRAULICS

Operational Space Control for A Scara Robot

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu Objectives

ART 269 3D Animation Fundamental Animation Principles and Procedures in Cinema 4D

CIS 536/636 Introduction to Computer Graphics. Kansas State University. CIS 536/636 Introduction to Computer Graphics

Overview of the Adobe Flash Professional CS6 workspace

Figure Cartesian coordinate robot

Behavioral Animation Modeling in the Windows Environment

Virtual Disk Drive Design Game with Links to Math, Physics and Dissection Activities

Power Electronics. Prof. K. Gopakumar. Centre for Electronics Design and Technology. Indian Institute of Science, Bangalore.

Effects of Orientation Disparity Between Haptic and Graphic Displays of Objects in Virtual Environments

Chapter 1. Animation. 1.1 Computer animation

Computer Graphics. Geometric Modeling. Page 1. Copyright Gotsman, Elber, Barequet, Karni, Sheffer Computer Science - Technion. An Example.

Vibrations can have an adverse effect on the accuracy of the end effector of a

Lab #7 - Joint Kinetics and Internal Forces

DINAMIC AND STATIC CENTRE OF PRESSURE MEASUREMENT ON THE FORCEPLATE. F. R. Soha, I. A. Szabó, M. Budai. Abstract

ME Week 11 Introduction to Dynamic Simulation

This tutorial assumes that Visual3D has been installed and that a model has been created as described in Tutorial #1.

Robot coined by Karel Capek in a 1921 science-fiction Czech play

Intelligent Submersible Manipulator-Robot, Design, Modeling, Simulation and Motion Optimization for Maritime Robotic Research

Anime Studio Debut vs. Pro

Adding Animation With Cinema 4D XL

Practice Exam Three Solutions

Cork Education and Training Board. Programme Module for. 3 Dimensional Computer Graphics. Leading to. Level 5 FETAC

UNIT II Robots Drive Systems and End Effectors Part-A Questions

Transcription:

- 141 - VIRYA - A MOTION CONTROL EDITOR FOR KINEMATIC AND DYNAMIC ANIMATION Jane Wilhelms Computer Graphics and Imaging Laboratory Computer and Information Sciences Board University of California, Santa Cruz, CA. 95064, U.S.A. Abstract Virya is an interactive graphical motion control editor for kinematic and dynamic animation. Most animation is controlled kinematically, by designating objects' positions taken over time without consideration for the causes of the motion. An alternative is dynamic motion control, where objects are seen as masses moving under the influence of forces and torques. Dynamic motion control has some advantages in that motion more naturally simulates real world conditions and many complex motions can be automatically calculated, though calculating motion is quite expensive and control is sometimes less intuitive. The editor Virya works both for kinematic and dynamic motion control. It has two main tasks: to specify control functions representing positions (kinematic) or forces and torques (dynamic) controlling motion, and to specify control modes which designate how control functions are interpreted or whether joints are frozen in place, relaxed, or balanced. Using these control modes, the user can designate motion using a convenient kinematic method and still use dynamic analysis as a final step to constrain and add realism. KEYWORDS: computer animation, human modeling, dynamics, simulation 1. Kinematic Motion Control Methods Motion control is a central problem in computer animation and is the one aspect of animation that most sets it off from other areas of computer graphics. Common kinematic approaches to motion control are 3-D key framing, motion control functions, parametric control, and animation languages (these approaches can, and often are, combined). In 3-D keyframing, the user typically positions the objects in the scene interactively, designating a sequence of configurations and the times when they should occur [10,11] The animation system then interpolates between these keyframe configurations to generate the inbetween configurations. 3-D keyframing is iljnerently superior to 2-D key framing for 3-D animation because the problems of information loss do not :)ccur. However, key framing is limited by the necessity of creating many keyframes and the lack of complete control over the interpolation process defining the path and speed of motion between keyframes. Parametric motion control involves designating certain parameters whose values define a particular configuration of the objects in the world [5]. For example, in the case of facial animation, parameters may designate the position of the mouth, the elevation of the eyebrows, etc. [8]. Parameters are convenient to use and allow association of reasonably complex motions (such as smiling) with one or a few parameters. Choosing parameters that cover the desired range of motion can be problematic, so the user may have to sacrifice complete motion control for ease of use. Animation languages are an attractive alternative because complex motion can be described in the form of scripts [9]. Some languages are fairly low-level and merely provide a convenient interface to specify simple motions [7]. Higher-level languages would allow the user to specify motion in general terms (e.g. "walk forward") and depend upon an intelligent hierarchical interpretation system to find the specific low-level directions needed to draw the frames [16]. While high-level languages may provide the most convenience to the user in the long run, at present many issues involved in high-level motion control remain unresolved. Again, use of a script may limit the amount of control the user has over the motion. Kinematic motion control functions represent motion at each degree of freedom in the form of position versus time curves. The control functions can be simply generated and succinctly stored using control points which generate the curve. These control functions are low-level and represent motion at individual degrees of freedom, but do allow very detailed specification of motion. An advantageous feature of control functions is that the final motion description of the other methods (changes to particular degrees of freedom over time) can be easily represented in this form. The use of an interactive control function editor allows the user to make individual changes to motion at the lowest-level and at the last minute, and can make up for some of the loss of exact control often concomitant with the above methods. 2. Dynamic Animation Most animation systems at present are kinematicallybased, that is, motion is considered as the relation of position versus time without consideration of the environmental influences causing the motion. Virya, the motion control editor described here, was designed mainly for use with the dynamic animation system Deva. In Deva, objects are considered as extended masses which act under the influence of forces and

- 14-2 - torques. Using dynamic analysis, this relationship is fonnu lated as the dynamics equations of motion; the solution of these equations is a kinematic description of the motion that would occur under the specified conditions in a "real" (simlllated) world [13,14]. Dynamic animation has certain advantages lacking in kinematic systems. Motion is automatically constrained to respond to environmental conditions. For example, it is kinematically difficlllt to animate a body, such as a human figure, naturally responding to collisions, such as hitting the ground. One problem is that colliding objects should not move through each other. The user can avoid this, at considerable expense, by visually checking for unrealistic intersections, doing automatic collision detection, or implementing constraints using inverse kinematics [4]. Another problem is that when an articulated body collides, the motion of its many connected segments can be extremely complex and difficult to predict. Using dynamics, such collisions can be automatically simulated by applying an opposing force against the body when it collides. Taking this force into account during dynamic analysis results in a natural response to the collision, including a certain amount of bouncing and correct reaction of other connected body parts. Bodies will also automatically respond to gravity or the motion of connected body parts or external influences. Dynamic animation does has some disadvantages as well. It is computation ally much more expensive than kinematic animation [1,14]_ When the system dynamics are complex, as in the case of articulated bodies with many degrees of freedom, numerical instability can be a problem. Dynamics also requires initial determination of object and environmental characteristics such as masses, joint limits, scale factors for springs and dampers used in collisions, etc. Perhaps the most serious disadvantage occurs in simulating controlled motion. While bodies respond naturally to environmental conditions, it is difficult to find when, where, and how strongly to apply internal forces and torques simulating muscles in humans and other animals. These issues are explored in detail elsewhere [13,14,15]. Suffice it to say that while dynamic animation is still in its exploratory stages, it does offer a method with considerable potential for simulating realistic motion. 3. Virya Motion Control Functions and Modes Virya is a motion control editor used to develop, modify, and store motion control information in the form of control functions and control modes. Virya was designed to work within the dynamic animation system, Deva. Some of its features are only relevant to dynamic animation systems; other features are relevant to both kinematic and dynamic systems. Deva and Virya were specifically designed to explore the problems of controlling the motion of articulated bodies such as. animals and robots. Though the same principles apply to controlling other, simpler objects, discussions will largely be from the standpoint of controlling articulated bodies. Virya control functions can either be kinematic, representing positions over time for each degree of freedom, or dynamic, representing forces (sliding joints) or torques (revolute joints) for each degree of freedom. In Virya, control functions are represented by cubic interpolatory spline curves, piece wise curves that interpolate a sequence of user-defined control points with first and second derivative continuity [2,3). Graphics Interface "86 Cubic interpolatory splines have the advantage that they interpolate specified control points; they have the disadvantages of being global (changes in one control point affect to varying degrees the entire curve) and given to occasional wild behavior. A local interpolatory spline, such as that of Kochanek [6], or a local approximating spline that can approach control points arbitrarily closely such as the betaspline [3], may be more desirable. Control functions are easily constructed in Virya by picking control points on the screen using a puck and tablet. Each degree of freedom of the body (e.g., flex ion of the elbow or rotation of the head) can exist in one of five control modes for dynamic animation: relaxed, dynamic control, frozen, balanced, and hybrid K-D modes. Each degree of freedom can alternate between modes during the animation. One of Virya's functions is to specify modes and their durations for each degree of freedom. A sixth, pure kinematic mode exists which completely by-passes dynamic analysis_ In this case, control functions represent positions over time and are directly sampled to produce purely kinematic animation. 3.1. Relaxed Mode Dynamic animations can be developed without any userspecified motion at all, merely by placing the body in an unstable position and letting it react to the gravitational force, its own joint limits, the ground, etc. The degrees of freedom in relaxed mode will move freely under environmental conditions with no internal controlling force or torque simulating a muscle contraction or a robot actuator motor_ These relaxed degrees of freedom are constrained to remain within their joint limits and their motion is slightly damped. Other forces or torques due to collisions or motion of other body parts will still act upon them. (Within the system Deva, springs and dampers are used to mimic both joint limits and collisions.) 3.2. Dynamic Mode To actually control the animation, pseudo-muscular forces or torques must be applied to certain degrees of freedom of the body. For example, to make the body wave its arm, torques must be applied to the shoulder and elbow. The most direct way to specify these forces and torques is to develop a control function for each degree of freedom whose motion is controlled in this way. These control functions represent a. force (for sliding degrees of freedom) or a torque (for revolute degrees of freedom) over time. The control functions are sampled to find the appropriate controlling force or torque to apply to specified degrees of freedom at each time instant that dynamic analysis is done; these controlling forces and torques are then added to the automatically calculated forces and torques mentioned above to find the total forces and torques acting upon the body. While these force/torque control functions have the advantage of directly specifying the controlling forces and torques needed for dynamic analysis, they leave the user at the disadvantage of not knowing intuitively what forces or torques will be necessary to produce the desired motion. This problem is accentuated by the complex interactions between different parts of an articulated body. For example, should the user find the correct force to lift the arm rigidly at the shoulder, and then add torques to the elbow to accompany the lifting by a bending action, he will find that the additional torque at the elbow inter-

- feres with the smooth motion of the shoulder. For this reason, other modes have been added for user ease. 3.3. Freeze Mode It is common during many movements of articulated bodies that some parts of the body remain locally stable. For example, in reaching movements the legs and hips may remain. stable, and during walking the head usually is directed forward. Because of the complex interplay mentioned above, it is difficult to find the sequence of forces or torques that will ensure local stability. A simple solution to this is to simulate the stabilizing torque (or force) with a tight spring and damper clamped about the local position. This can be viewed as a temporary change in the range of the joint end limits. 3.4. Balance Mode While automatic response to gravitational forces make certain motions easy to simulate, this can create problems with coordinated movements. For example, walking no longer becomes a question of merely manipulating the legs in the proper sequence, but also of balancing the upper part of the body to keep it from falling over. A simple way to achieve balance is to describe a world-space orientation vector for particular segments, such as the trunk, and apply an external applied force to counteract any motion away from this orientation. Experimentation shows this technique is acceptable in limited cases; whether it will provide realistic balance in all cases has not been explored in depth. 3.5. Hybrid K-D Mode The freeze and balance modes do help with some of the motion control problems introduced by dynamics, but leave the major problem of determining forces or torques for controlled motion, rather than just stability. An approach to this problem that has been reasonably successful is to describe the desired motion in kinematic terms, as kinematic control functions specifying rotation (for revolute joints) or translation (for sliding joints) over time. The exact same Virya interactive interface can be used; the interpretation of the control functions merely changes. These kinematic descriptions are then used to find the forces and torques applied at specified degrees of freedom. The method used to find these forces and torques is trivially simple, but surprisingly effective. The equations used are delp = des yos - pos =delp Ideltime - vel f t =delv * m Ideltime delv For sliding joints, delp is the difference between the desired position at the next time sample (des y os) and the present position (pos). delv is delp divided by the time between samples (deltime) minus ~lle present velocity (vel), in other words, the amount the velocity must be altered to achieve the desired position at the next time sample. ft is the estimated force that must be applied to achieve this, and m is the mass of the segment distal to this degree of freedom. For revolute joints, the same formula is used but the velocities are angular, ft is a torque, and m is a moment of inertia. Probably because 143 - dynamic analysis is done from 3 to 30 times as frequently as images are displayed, no feedback is needed to achieve smooth motion. The advantage to this method is that the user can enter motion directions in the intuitive kinematic form for those joints whose particular motion is known (or desired) and yet retain the advantage of dynamics. 3.6. Pure Kinematic Mode Kinematic mode is separate from the dynamic animation package. Deva can operate as a strictly kinematic animation system, in which case the control functions specified by Virya are taken to represent the actual desired motion for all degrees of freedom. The dynamic analysis routines are entirely bypassed and fast kinematic animation is possible. 4. Virya User Interface The Virya screen (see Figure 1) consists of three regions. The lower half of the screen contains small joint windows representing each degree of freedom of the system. The upper right quadrant consists of a menu of commands for designing and saving control functions. The upper left quadrant is a large window where control functions can be viewed and altered. The user selects menu items or designates points on the screen by using a graphics tablet and puck. Virya runs on an Evans and Sutherland PS300/340 graphics system. Each joint window contains a label identifying the degree of freedom represented there; e.g. "J4 elbow (1) rz" refers to a z-rotation of the elbow (joint number 1). The line through each window joins the control points that define the curve representing motion control information for that degree of freedom. The user can alter these control points and thus define the shape of the motion control function. By specifying more or fewer points and spacing them differently, such control functions can be used to control both the path of the motion and its velocity (kinematics) or the strength of the force or torque applied (dynamics). The menu consists of 110 commands, joint commands, vertex commands, and miscellany. The 110 commands are LOADBODY (input a body description including segments, joints, degrees of freedom, and present configuration); LOAD (input a previously created Virya file containing motion control information); and SAVE (save the present motion control description in a file). Joint commands are SHOWJ (bring a particular control function into the large window) ; COPYJ (copy the control function for one degree of freedom to another) ; ACTIVEJ (designate one control function as modifiable); REDRA WJ (redraw the active control function); and CURVEJ (use the control points to create a cubic interpolatory spline curve). The vertex commands all refer to the degree of freedom that has been designated "active". They are INITV, ADDV, DELV, MOVEV, and LOCV. INITV initializes the control function to a horizontal line along the time axis. ADDV, DELV, and MOVEV add, delete and move control points defining the control curve. LOCV gives the exact numeric value of a point on the screen. The miscellaneous commands are CONFIRM (confirm a change); QUIT (leave Virya); and TABLET (a binary switch between inputting control points from the terminal or from the graphics tablet).

- L44 - The DKFRB (dynamic I kinematic I frozen / relaxed I balanced) option allows the user to designate control modes for each degree of freedom and a time span during which the modes are in force. The default control mode for dynamics is dynamic mode. Virya motion descriptions are stored in an ascii file (which under present conditions makes up for space consumption with user convenience); part of a sample file is shown in Figure 3. S. Use of Virya with 3 D Keyframing Because motion of a complex articulated body such as a human figure is sometimes difficult to visualize in terms of angular or translational motion of individual degrees of freedom, it has been found convenient to initially define the motion as a series of keyframes developed by interactively positioning the body on the screen using Deva. A sequence of key frames with the times they should occur are stored in an ascii file (part of such a file is shown in Figure 2). These files can be converted to Virya control function files and used to generate control curves which are sampled to drive the animation orcalled into the Virya editor for modification. These key-frame-derived control functions initially place all degrees of freedom in hybrid K-D mode, but because this almost completely constrains the motion, there would be little point in doing dynamics. Typically the user modifies this file placing many degrees of freedom into relaxed, frozen, or balanced modes to allow dynamics to fulfill its purpose of adding realism. 6. Sample Session A simple session using Virya will be described to illustrate its use. First, the user enters the animation system Deva and calls up a previously stored figure, in this case the 24- degree-of-freedom human figure foe. Using dials and the keyboard, five key frame configurations for Joe are found. These configurations are to occur at 0, 3, 6, 7, and 8 seconds in the animation. They are stored in ascii form in a key frame file shown in part in Figure 2. The lines with a single number represent the times when the key frames occur, and the following numbers are positions for each degree of freedom of motion at that time. The key frame file is converted using Deva to the format needed for interaction with Virya. In the keyframe file, positions are grouped by the times when they occur; in the Virya file they are grouped by degree of freedom. Figure 3 shows part of the Virya file originally derived from the key frame file, but. somewhat modified using Virya. Following the control positions (taken from the keyframes) for each degree of freedom are definitions of the states, or modes, over time. Initially, when the file is created from a key frame file, all degrees of freedom are in the hybrid K-D mode (K) during the default time span (0-100 seconds). (The 4 numbers after the time span are only used in balance mode, where they represent the position vector and the amount of deviation from it allowed.) During the motion described (lifting the legs and swinging the arms), many degrees of freedom (such as the waist) are frozen into their local configuration and others (such as the right knee) are relaxed. The modes of these joints are changed from the default K-D mode. This Virya file was used to drive dynamic analysis and the resultant, predicted motion stored in another, similar Virya file. This second, output file is a kinematic description of the dymlinically predicted motion, and was sampled to produce the animation shown in Figure 4. Keyframes are approximately in locations (0,0), (1,3), (3,0), (3,2), and (3,5) (row major order). (Act\lal dynamic analysis was do~e 300 times per second; not. all of these configurations are stored for the kinematic description and display.) i. Conclusions The interactive graphical editor Virya is used to design and store motion control commands for kinematic or dynamic 4llimation using control functions and control modes. For lcinematic animation, the user designs control functions representing positions over time for each degree of freedom. For dynamic animation, control functions may represent either lcinematic information (positions over time) or dynamic informati()n (forces or torques over time). To alleviate some of the control problems that accompany the advantages of dynamic 4llimation, the freeze, balance, and relaxed control modes are also available. The kinematic output of dynamic analysis routines and motion control information derived from other I!igher-level control methods can be stored the fonn of Virya data files. This format is convenient for low-level modification and sampling for animation generation. References ]_ William W. Annstrong and Mark Green, "The Dynamics of Articulated Rigid Bodies for Purposes of Animation," pp. 407-415 in Proceedings of Graphics Interface '85, Computer Graphics Society, Montreal (May, 19S5). 2. Brian A. Barsky and Spencer W. Thomas, "TRANSPLINE A System for Representing Curves Using Transformations among Four Spline Formulations," The Computer Journal, Vol. 24, No. 3, August, 1981, pp. 271-277. 3_ Richard H. Bartels, John C. Beatty, Brian A. Barsky, An Intr()duction to the Use of Splines in Computer Graphics, Tecllnical Report No. UCB/CSD 831126, Computer Science Division, Electrical Engineering and Computer Sciences Depilrtment, University of California, Berkeley, California, USA (August, 1983). 4. Michael Girard and A. A. Maciejewski, "Computational Modeling for Computer Generation of Legged Figures," pp. 263-270 in Proceedings of ACM SIGGRAPH '85, 19, San Francisco, Ca. (July, 1985). 5. Patrick Hanrahan and David Sturman, "Interactive Animation of Parametric Models," pg. 102-111 in course notes for the tutorial in Introduction to Computer Animation, ACM SIG GRA.PH '85. 6. Doris H. U. Kochanek, Richard H. Bartels, and Kellogg S. Sootl!, A Computer System for Smooth KeyfTame Animation,. University of Waterloo, Waterloo, Ontario (December 1982). 7. T. 1. O'DonneJJ and Arthur J. Olson, "GRAMPS - A Graphical Interpreter for Real-Time Interactive Three-Dimensional Picture Editing and Animation," pg. 133-142 in Proceedings of ACM SIGGRAPH' 81,15, Dallas, TX (July 1981). 8. Frederic Parke, "Parameterized Models for Facial Expression:' IEEE Computer Graphics and Applications, 2, No. 1 (Nov-ember 1982), pg. 61-68.

- 145 - Figure I. The Virya Screen.. ~ l(li"j I '1'IY AOOY 5"OMJ LOAO copt J 5U[ ~..... ~.. ~ -....,. 10 ' 0'.. "". -" J/ I I _ I. l Ot 0' tt 1""_' 11 Jt 1------ - 1'. 0 ' f I o.," '"... 1 1 ' 1 101 1'.,,., 'u 0' II. 0".f /... 0" U I ' ot"," 114 '0'" d' 1",.,"..,,.,,.. " 11 1 U, ' 0 " )01," 11 0',,, OilY ~OY[Y IUl" locy JO 11/ ~ -- - 0.' '4 101...... t Ill'".",u.,cH II }I /11.f' et 11 _.t. JOt _t'.. ", 1/. f' 11" JII _""..,,."... Illl,.,,14, '''' I.. I U,,,,. At"Y[J I[OIUJ CUII[ J OA0800' ~u" 1/' n. '" 11'1." m If' UtI '" }It I.',.".. JII 1111 II1 lul!l Olf'U JlI JlI JII Ill< Figure 2. Partial Keyframe File Figure 3. Partial Virya File 0.000000 180.000000180.000000180.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000-180.000000 0.000000 0.000000 0.000000-180.000000 0.000000 3.000000 180.000000180.000000180.0000000.000000 0.000000 0.000000-150.000000 0.000000 30.000000 0.000000-210.000000 0.000000 25.0000000.000000 30.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.000000 180.000000 180.000000 180.000000 0.000000 0.0000000.000000 0.000000 0.000000 0.0000000.000000-210.000000 0.000000 30.0000000.000000-180.000000 0.000000 25.000000 0.000000 0.000000 0.000000 dof 18 Pjnt 7 Type 0 Numv 5 Lhipr Control 0.000000 0.000000 Control 3.000000 0.523599 Control 6.000000 0.000000 Control 7.000000 0.000000 Control 8.000000 0.000000 States K 0 6 0 0 0 0 States F 6 8 000 0 Q dof 19 Pjnt 7 Type I Numv 5 L hipr Control 0.000000 0.000000 Control 3.000000 0.000000 Control 6.000000 0.000000 Control 7.000000 0.000000 Control 8.000000 0.000000 States F 0 8 0 0 0 0 Q dof 20 Pjnt 8 Type 0 Numv 5 L kneer Control 0.000000 0.000000 Control 3.000000 0.000000 Control 6.000000 0.000000 Control 7.000000 0.000000 Control 8.000000 0.000000 States R 0 8 0 0 0 0 Q

- 146-9. Craig Reynolds, "Computer Animation with Scripts and Actors," in Proceedings of ACM SIGGRAPH '81, 15, Dallas, TX (July 1981). 10. Craig Reyno1ds, "Description and Control of Time and Dynamics in Computer Animation," pg. 289-296 in course notes for the tutorial in Advanced Computer Animation, ACM SIGGRAPH '85. 11. Scott Steketee and Norman 1. Badler, "Parametric Keyframe Interpolation Incorporating Kinetic Adjustment and Phrasing Control," in Proceedings of ACM SlGGRAPH '85, 19, San Francisco, CA (July, 1985). 12. David Stunnan, "Interactive Keyframe Animation of 3-D Articulated Models," pg. 102-111 in course notes for the tutorial in Introduction to Computer Animation, ACM SIG GRAPH '85. 13. Jane Wilhelms and Brian A. Barsky, "Using Dynamic Analysis for the Animation of Articulated Bodies such as Humans and Robots," pp. 97-104 in Proceedings of Graphics Interface '85, Montreal (27-31 May 1985). 14. Jane Wilhelms, Graphical Simulation of the Motion of Articulated Bodies such as Humans and Robots, with Special Emphasis on the Use of Dynamic Analysis, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA (July, 1985). 15. Jane Wilhelms, "Using Dynamic Analysis for Realistic Animated Motion," submitted for publication 1986. 16. David Zeltzer, "Motor Control Techniques for Figure Animation," IEEE Computer Graphics and Applications, 2, No. 9 (November 1982), pg. 53-59. Figure 4. Dynamic Animation Based on Virya File It -~--...--...--L_...- o