UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Modelling and animating three-dimensional articulate figures Cachola, Danny G. 1986

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-UBC_1986_A6_7 C32.pdf [ 2.95MB ]
Metadata
JSON: 831-1.0051891.json
JSON-LD: 831-1.0051891-ld.json
RDF/XML (Pretty): 831-1.0051891-rdf.xml
RDF/JSON: 831-1.0051891-rdf.json
Turtle: 831-1.0051891-turtle.txt
N-Triples: 831-1.0051891-rdf-ntriples.txt
Original Record: 831-1.0051891-source.json
Full Text
831-1.0051891-fulltext.txt
Citation
831-1.0051891.ris

Full Text

MODELLING AND ANIMATING  THREE-DIMENSIONAL  ARTICULATE  by DANNY G. CACHOLA  A THESIS SUBMITTED  IN PARTIAL FULFILMENT OF  THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE  in r  ,THE FACULTY OF GRADUATE STUDIES Computer  We a c c e p t  this  Science  t h e s i s as  to the required  conforming  standard  THE UNIVERSITY OF B R I T I S H COLUMBIA April  ©  1986  Danny G. C a c h o l a ,  1986  FIGURES  In  presenting  degree freely  at  this  the  available  copying  of  department publication  of  in  partial  fulfilment  University  of  British  Columbia,  for  this or  thesis  reference  thesis by  this  for  his  and  scholarly  or  thesis  study.  her  for  purposes  gain  of  Cn^A+s  The University of British 1956 Main Mall Vancouver, Canada V6T 1Y3 Date  frprA  1ST  ^ciffMC-f Columbia  I  M9c  requirements  shall  that  agree  may  representatives.  financial  the  I agree  I further  permission.  Department  of  be  It not  is  that  the  Library  permission  granted  by  understood be  for  allowed  an  advanced  shall for  the that  without  make  it  extensive  head  of  my  copying  or  my  written  ABSTRACT  T h i s t h e s i s d e s c r i b e s an a n i m a t i o n level  graphical  constructs  f o r the d e f i n i t i o n ,  representation and  their  of  to^the host the  given. and  The  concluded  The  extension  f i g u r e s and permits  of  that  the and  of each model's motion a t a h i g h l e v e l  of  r e l a t i o n s h i p of t h e e x t e n s i o n  language's  modelling  implementation  external  articulate  l a n g u a g e i s d i s c u s s e d and  examples  and  joints  animation The  provides  manipulation,  three-dimensional  to a high-  which  m o d e l s c o n s i s t i n g of s e g m e n t s and  specification  abstraction.  of  of  language  a s s o c i a t e d movements.  definition the  programming  extension  and  the  constructs  high of  a r e e a s y t o r e a d and  level  sophisticated understand.  a general  design  motion  with  and  description  implementation  constructs are  are  is  discussed  presented.  animation  respect  permits  It  is the  a p p l i c a t i o n programs t h a t  TABLE OF CONTENTS  L I S T OF FIGURES  iv  1.  INTRODUCTION  1  2.  LANGUAGE DESIGN ENVIRONMENT  6  3.  MODELLING SYSTEM  11  3.1 DESCRIPTION OF JOINTS  11  3.2 INTERNAL REPRESENTATION  15  3.3 MODEL D E F I N I T I O N USING SUBMODELS  22  3.4 MODEL D E F I N I T I O N BY CONSTRUCT  25  3.5 MODEL TRANSFORMATIONS  28  MOTION P R I M I T I V E S  35  4.1 MOTION S P E C I F I C A T I O N  37  4.2 E X P L I C I T D E F I N I T I O N  40  4.3 I M P L I C I T D E F I N I T I O N  45  4.4 MOTION TRANSFORMATIONS  50  CREATING ANIMATION  53  5.1 TOOLS FOR ANIMATION  53  5.2 MODEL TRAVERSAL  58  5.3 LEVELS OF LANGUAGE USAGE  59  CONCLUSION  61  4.  5.  6.  BIBLIOGRAPHY  68  APPENDIX A - A L I G ANIMATE PROGRAM  70  APPENDIX B - IMPLEMENTATION NOTES  75  i i i  L I S T OF FIGURES  Figure  Page  1  Two j o i n t s  in different  2  Definition  of g r a p h i c a l o b j e c t s  3  Sample  4  P a r t i a l m o d e l o f a human  5  I n t e r n a l s t r u c t u r e o f a model  18  6  Information  20  7a  Open k i n e m a t i c  7b  Closed  8  Model symbol t a b l e  21  9  Model assignment  23  10a  Model s q u a t t i n g  31  10b  M o d i f i e d model s q u a t t i n g  31  11  Model s q u a t t i n g w i t h t h e f o o t as main l i n k  32  12  M o d e l s q u a t t i n g w i t h t h e t o r s o a s main l i n k  32  13  J o i n t s w i t h same a n g l e  34  14  Model i m p r o p e r l y  15  Motion s p e c i f i c a t i o n  16  Keyframe i n f o r m a t i o n  38  17  Motion template  39  18  Frames  43  19  Strip operation  joint  neutral positions  16  extremes  17 18  figure  a s s o c i a t e d w i t h each l i n k chain  kinematic  15  21  chain  21  but d i f f e r e n t  sign  squatting for a single joint  from the c l o c k animation  34 38  48 iv  20  Synchronize operation  49  21  Sample m o t i o n  51  22  Motion  b f r o m b = a <SCALE FRAMES -2.0>  51  23  Motion  b f r o m b = a <SCALE EXTREMES 0.5>  52  a  v  Chapter  1  INTRODUCTION  "Animation i s the g r a p h i c a r t which occurs i n time. Whereas a s t a t i c image (such as a P i c a s s o or a complex g r a p h ) may convey complex information through a single picture, animation conveys e q u i v a l e n t l y complex i n f o r m a t i o n t h r o u g h a sequence of images s e e n i n time. I t i s c h a r a c t e r i s t i c of t h i s medium o p p o s e d t o s t a t i c imagery, that the actual g r a p h i c a l i n f o r m a t i o n a t any g i v e n i n s t a n t is relatively slight. The source of information for the viewer of animation i s i m p l i c i t i n p i c t u r e change: change i n r e l a t i v e position, shape, and dynamics. T h e r e f o r e , a computer i s i d e a l l y s u i t e d to making a n i m a t i o n ' p o s s i b l e ' through the fluid r e f i n e m e n t of t h e s e changes." Baecker [4]  Mankind representing can They  always  his  world.  invoke emotions, allow  information  the  developed;  been This  interested  in  i s understandable;  r e f r e s h memories, t e a c h ,  representation  pictorially  of  a  and  maximum  pictures explain.  amount  of  i n a minimum a r e a .  Within  of  has  the  last  one h u n d r e d y e a r s , a new i n t e r e s t h a s  t h e d e s i r e t o a d d movement t o p i c t u r e s .  animation  has  been w i d e l y a c c e p t e d  and moving  The  use  pictures  h a v e become common, h o w e v e r , t h e c r e a t i o n o f a n i m a t i o n  is  labour-intensive  time,  process.  high q u a l i t y - f i l m twenty-four  images  F o r each second  animation  requires  (frames),  the  of v i e w i n g  preparation  each d i f f e r i n g  1  only  a  of  slightly  2 from  t h e p r e c e d i n g one.  contains approximately  In  an  attempt  commercial celluloid are  used  170,000  to  studios  create  animated  the  traditionally  "eels". a  feature  film  frames.  decrease  have  sheets c a l l e d to  A two-hour  labour  p a i n t e d images  Several of  frame.  involved,  these  This technique  onto  overlays  saves  time,  b e c a u s e o n l y t h e p a r t s o f a c h a r a c t e r t h a t a c t u a l l y move a  particular  can  still  f r a m e have t o be r e d r a w n .  be q u i t e  expensive,  since  The e n t i r e  a  feature  r e q u i r e t h e p r e p a r a t i o n of over h a l f a m i l l i o n  With cheaper  in  of  The f i r s t  production  1960s.  introduction  method  possible. the  the  three  the  of  animated  main  painting  animated  a  faster  films  r a p i d l y expanding  of  eels.  of d i f f e r e n t  One modelled from  new  field  animation.  computer-assisted  and made  which  role  conventional animation: the  Recent  in-between  frames,  advances i n computer animation  now i n c l u d e s a l a r g e number  p r o d u c t i o n s t y l e s , approaches,  approach  may  computers i n  g r a p h i c s h a r d w a r e a n d s o f t w a r e h a v e made c o m p u t e r a  was  has s i n c e p l a y e d a  t h e p r o d u c t i o n of  of  film  f i l m s d a t e s back t o t h e e a r l y  animation  areas  process  eels [6],  efforts to utilize digital  c r e a t i o n of drawings, and  computers,  producing  Computer-assisted  the  of  in  and t e c h n i q u e s .  t h a t h a s been d e v e l o p e d Computer-modelled animation  i s computer-  animation  differs  because i t corresponds t o  3 animation about  sequences  i n which three-dimensional  i n a three-dimensional  complex w i t h o u t occurred been  a computer.  space.  the  area  process  is  very  Many o f t h e a d v a n c e s w h i c h have  i n computer m o d e l l i n g  in  This  m o d e l s move  i n the last  of  figure  few  years  modelling  and  have motion  specification.  Several modelling  methods  and  control  (procedural modelling) by  the a p p l i c a t i o n  use  have  been  of  proposed  figures  including  using  the  procedures  [ 1 3 ] , t h e c o n t r o l of a p h y s i c a l model  of f o r c e s (dynamic  modelling)  [ 1 ] , the  of g o a l - d i r e c t e d systems f o r t h e g e n e r a t i o n of a model's  motion  [ 1 2 , 2 3 ] , a n d t h e u s e o f key frame a n i m a t i o n  of t h e o l d e s t a n i m a t i o n  A different dimensional  methods  subroutine l e v e l , level  animation  of  the  modelling  have  here.  approached  Whereas  of  a  three-  many  of  the  figure modelling  from a  t h i s approach i n v o l v e s t h e use of a  high-  programming  language.  It  provides  a programmer t o d e f i n e a n d  manipulate  t y p e MODEL a n d MOTION, t h e r e f o r e a l l o w i n g t h e  r e p r e s e n t a t i o n of r e a l three-dimensional their  i n use.  f i g u r e and t h e subsequent c o n t r o l of  be p r e s e n t e d  constructs that permit data  still  approach f o r the  articulate  i t s motions w i l l previous  techniques  [ 7 ] , one  a s s o c i a t e d motions  [24].  jointed  bodies  and  4 This  thesis  implementation m o d e l l i n g and kinematics: time  discusses  aspects  of s u c h a l a n g u a g e . motion  derivatives  The  specification  the study of  obstacle  and  [18]  avoidance  design  problem  of  (displacement)  and  figure  and  acceleration). [11,  e r a t i o n s of f o r c e , mass ( d y n a m i c s ) and  the  i s d e a l t w i t h i n t e r m s of  position  (velocity  of  17],  its  Consid-  balance  [15],  a r e b e y o n d t h e s c o p e of  this  t h e s i s.  Chapter language. respect  2  The  The  implementation  overview  and  of  the  and  representation presented.  the  animation  language  with  In a d d i t i o n ,  language's  modelling  internal  constructs  design  a  and  i s discussed.  the  A l s o , two  studied  in  of a m o t i o n  which  manipulation.  The  analyzed  different  techniques  presented.  constructs  is  are  r e p r e s e n t a t i o n of a f i g u r e and i t s  4 i n t r o d u c e s the concept  examines  definition  of  the  language i s c o n s i d e r e d .  f o r m o d i f y i n g a d e f i n e d model a r e  Chapter  of  i s given.  language's 3.  an  relationship  description  implementation  Chapter  overall  to the host  general  The  presents  and  allow  its  the  motion's  primitive motion's internal  implementation  is  5 Chapter motion  examines  primitives  addition, simplify  5  how  the  articulate  are i n t e g r a t e d to produce  s e v e r a l language the animation  features  process.  are  figures  and  animation.  introduced  In  which  Chapter  2  LANGUAGE DESIGN ENVIRONMENT  Virtually extensions a  a l l graphics  to existing  graphics  graphics  constructs  animation  language  availability which  are  h i g h - l e v e l computer languages,  since  of  program  for  generally  support.  discussed  The  requires  here.  It  assumes  f o r the non-animation  i n an a n i m a t i o n a p p l i c a t i o n p r o g r a m .  f e a t u r e s introduced are  constructs, a p p l i e d to  consequently any  independent the  high-level  the  language  constructs  The c o n s t r u c t s  o f any  animation  graphics  non-  same a p p l i e s t o t h e  a h i g h - l e v e l g r a p h i c s programming  p r o v i d e s the support  present and  languages  application  programming  of  the  extension  language  host can  be  with  equal  is  called  success.  The LIG6 and  host  language  used  i n the implementation  ( L a n g u a g e f o r I n t e r a c t i v e G r a p h i c s V e r s i o n 6) i s currently  Columbia.  The  i n use  o n l y at the  LIG6 system  University  language  L I G 6 was  easy  language  to learn,  production been e x p o s e d  system.  22]  of  British  i s i m p l e m e n t e d on a 48  megabyte  Amdahl 5850 m a i n f r a m e , u n d e r t h e M i c h i g a n The  [19,  Terminal  System.  c h o s e n f o r two m a i n r e a s o n s :  i t i s an  and  Also,  it  has  been  designed  as  a  a l a r g e number o f s t u d e n t s h a v e  to LIG6, thus e n s u r i n g 6  that  the  language  is  7 free  of  animation  errors.  Since  LIG6  is  language  implementation  is  preprocessor standard into  implemented written  as  language, LIG  a  FORTAN  to  program  is  compiling  to  A  i n PASCAL c o n v e r t s L I G 6 p r o g r a m s  into  subroutines  be  in  executed,  the preprocessor  the run-time  library;  the LIG6 User's  ANIMATE  extension.  FORTRAN p r o g r a m s w i t h e x t e n s i o n e l e m e n t s  calls  the  ANIMATion E x t e n s i o n ) .  a  s u b r o u t i n e s a r e c o d e d i n FORTRAN.  in  host  i s called  (Language f o r I n t e r a c t i v e G r a p h i c s  LIG6  the  run-time When a  the  output  translated  library.  LIG6  The  application  o b j e c t d e c k p r o d u c e d by  i s run i n c o n j u n c t i o n with  more c o m p l e t e i n f o r m a t i o n i s a v a i l a b l e  Manual [ 2 0 ] .  S i n c e t h e L I G ANIMATE c o n s t r u c t s a r e i n d e p e n d e n t o f i t s host  language,  implemented  as  preprocessor in  the  be  translator an  analyzes  animation  t a r g e t code. to  the  the  independent  program  animation  It  and  constructs  and  with the preprocessor  itself.  would  have  complicated  the  is The  present  p r o d u c e s LIG6 has  proven  has a l l o w e d e x p e r i m e n t a t i o n  the c o n s t r u c t i o n of a complete c o m p i l e r  thesis.  constructs  The d e c i s i o n t o u s e a p r e p r o c e s s o r  experimentation  extension  language  preprocessor.  only the animation  application  satisfactory.  different  for  has  with  allowed  In a d d i t i o n ,  f o r LIG6 objective  and  the  of t h i s  8 The of  L I G ANIMATE p r e p r o c e s s o r  a top-down C o m p i l e r  W r i t i n g System  the c r e a t i o n of a c o m p i l e r a  general  language,  not  support  parsed;  form  reserved  the  i t is  Several  free  and  Consequently,  host  segregation  statements does  the  output the  the  line.  i s compiled. of  a r e not d e t e c t e d u n t i l  column.  The  preprocessor statements  the preprocessor  at a  approach  was  not  I t s object high  was  level  chosen  independently  to  of the host  h e n c e , i t d o e s n o t t a k e a d v a n t a g e o f many  host's construct features. COMMON  be  implementation.  L I G ANIMATE h a s been d e s i g n e d  of.  not  statements  a complete p r o d u c t i o n system.  the  language,  [16].  can  The o b j e c t i v e o f t h e r e s e a r c h  therefore,  LIG6;  e r r o r s which a r e present i n  of  the  of  and e x t e n s i o n  of a n i m a t i o n  simplify  does  language and e x t e n s i o n  was t o e x a m i n e t h e d e f i n i t i o n abstraction,  The CWS  in the f i r s t  restrictions.  Any s y n t a c t i c  statements  creation  host  of host  from  the extension  (an a s t e r i s k )  of  result  required  statements  to flag  not a l l o w the mixture  host  to completely  conventions are  language  i n t r o d u c e s two  on a s i n g l e  input  use  (preprocessor) f o r  consequences  words  necessary  with a special character  The  or precompiler  the  A CWS a i d s i n  i n c r e a t i n g the preprocessor.  the  delimiters  (CWS).  h e n c e , i t was u n n e c e s s a r y  write the preprocessor. t h e u s e o f a CWS  was w r i t t e n w i t h  statements,  of  the  F o r example, LIG6 a l l o w s the use  arrays,  functions,  and  parameter  9 passing of the basic data types. these  features  with  the  L I G ANIMATE d o e s n o t a l l o w  use  of  i t s data  type  a l t h o u g h , MOTION d a t a t y p e s c a n be u s e d i n COMMON and  passed  The  MODEL,  statements  as parameters.  implementation  conventions w i t h LIG6.  does  share  Although  some  general  input  the preprocessor introduces  r e s e r v e d words w h i c h must be d e l i m i t e d by b l a n k s ,  statements  may  span  two o r more l i n e s .  statements  per  line  are  semicolons. anywhere.  allowed, Comments  Multiple extension  provided  they  enclosed  in  The l e n g t h o f a l i n e  are  separated  braces  may  by  appear  i s 255 c h a r a c t e r s a n d c o l u m n  p o s i t i o n s a r e not important w i t h respect t o the beginning of statements.  Several  LIG6  L I G ANIMATE. constructs, the f i r s t  input  Variable may  five  c o n v e n t i o n s h a v e been e x t e n d e d i n names,  present  in  the  animation  c o n t a i n up t o f i f t e e n c h a r a c t e r s , h o w e v e r , characters  must  be  unique.  Identifiers,  v a r i a b l e s , a n d k e y w o r d s u s e d i n L I G ANIMATE may be i n e i t h e r upper case o r lower c a s e , s i n c e they a r e t r a n s l a t e d t o upper case.  The o n l y c o n s i d e r a t i o n w h i c h a f f e c t s a n y o f t h e h o s t  code s t a t e m e n t s host dollar  statements sign.  restricted  i s t h a t none o f t h e v a r i a b l e s p r e s e n t i n t h e or animation c o n s t r u c t s can begin w i t h the  Variables beginning with the d o l l a r  f o r u s e by t h e L I G 6 ANIMATE  routines.  sign  are  10 Two f a c t o r s h e l p e d the p r e p r o c e s s o r . based  on  FORTRAN  and  A  problem  of a r t i c u l a t e  does  therefore, The  The CWS i s b a s e d on PASCAL  FORTRAN.  manipulation  f u r t h e r shape t h e e v e n t u a l d e s i g n o f  figures  i s created  LIG6  since  i s naturally  is the  recursive.  not e a s i l y a l l o w t h e s i m u l a t i o n of r e c u r s i o n ,  t h e model d a t a b a s e i s s t o r e d i n t h e p r e p r o c e s s o r .  preprocessor  receives  commands t o d e f i n e ,  d i s p l a y models i n i t s database.  displays  and  When  the  manipulate, preprocessor  t h e m o d e l , i t does s o by c r e a t i n g p r o g r a m  segments  t h a t LIG6 c a n p r o c e s s .  The  motion database i s not s t o r e d i n the preprocessor.  A suitable  representation  language,  consequently,  was  implementable  motions  host  in  the host  translates  motion  The  constructs  i n t o a form which t h e LIG6 language c a n c o m p i l e .  motion  subroutines written  in a  i n LIG6.  executed, output  extensions  the  are  run-time When  object  a  directly  stored  the  language.  The  preprocessor  are  in  translated library.  LIG  deck  ANIMATE  into  calls  to  The s u b r o u t i n e s a r e program  i s to  be  p r o d u c e d by c o m p i l i n g t h e L I G 6  i s run i n c o n j u n c t i o n w i t h the run-time  library.  Chapter 3 MODELLING SYSTEM  Before  an  for a f i g u r e , available.  a t t e m p t i s made t o s p e c i f y a d e s i r e d m o t i o n  a method f o r s p e c i f y i n g This  chapter  discusses  the  the problems  w i t h model s p e c i f i c a t i o n and p r e s e n t s a l l o w t h e c r e a t i o n o f an a r t i c u l a t e  LIG (links)  ANIMATE a s s u m e s t h a t a l l o f are  rigid,  that  figure  two  must  associated  constructs  No  formal  the  model's  segments  i s , once d e f i n e d , t h e l i n k s a r e  specification  ANIMATE f o r t h e d e f i n i t i o n defined  as  graphical  of l i n k s ,  objects  is  of  system  incorporated  they  of  the  i n LIG  a r e assumed t o  i n the host  segment i s assumed t o h a v e been d e f i n e d coordinate  that  model.  assumed t o r e m a i n t h e same s h a p e t h r o u g h o u t t h e l i f e model.  be  in  be  language.  Every  i t s own  local  [ 3 , 12, 2 3 ] , w i t h t h e o r i g i n a t t h e c e n t e r  the l i n k .  3.1 DESCRIPTION OF JOINTS  In t h e s i m p l e s t rigid  segments and a j o i n t  responsibility the  f o r m , an a r t i c u l a t e m o d e l c o n t a i n s  links  between t h e segments.  fordefining,  manipulating,  i s that of the host  and  two  Since the displaying  l a n g u a g e , L I G ANIMATE i s o n l y  1 1  12 responsible  for  the  specification  between t h e l i n k s .  The s p e c i f i c a t i o n  d e g r e e s of freedom,  and r e s t r i c t i o n s  A  joint  rotated  axes. and  the  to  permitting  fewer  Thus,  joints)  joints,  Y,  and  than  three  simple j o i n t s  be  relationship  includes the p o s i t i o n , on a  joint.  hence,  such  can  as  i t c a n be  Joints  degrees  of  may  be  freedom  by  o n l y one o r two o f  shoulders A  move  the p o s i t i o n  axes.  such as f i n g e r s  simulated.  A joint  Z  t o r o t a t e about  joints,  can  segments.  X,  the j o i n t  complex  the  h a s up t o t h r e e d e g r e e s o f f r e e d o m ;  about  restricted  of  joint  (hinge  joints),  (ball-and-socket  connects  independently  o f one j o i n t  the  only  of  two  a l l other  does not a f f e c t t h e  motion of another.  Links  are restricted  During a single segment)  is  joint's  movement,  A single  link  with  One  and to.  Only  link  respect  to  i t belongs  to  segment, t h e m o d e l ' s main l i n k ,  from the o t h e r s . link.  one  joint.  (the primary  the  link (the stationary  c a n f u n c t i o n a s b o t h a p r i m a r y segment  a n d a s e c o n d a r y segment i f joint.  movements a b o u t a  c o n s i d e r e d s t a t i o n a r y and t h e second  s e c o n d a r y s e g m e n t ) moves link.  in their  A l l movement u l t i m a t e l y  more  than  one  i s s i n g l e d out  r e f e r s t o t h e main  one segment may be d e s i g n a t e d a s t h e main  i t must be t h e p r i m a r y segment i n a l l j o i n t s  i t  link  belongs  13 Each  joint  that permits may the  place  instance  subsequent  reference  articulate  to the  'joint_identifier'  joint  instance;  previously  A typical  The  user  through which two  s t a t e m e n t c r e a t i n g an  i s the unique i d e n t i f i e r  'primary_link'  and  coordinate segment  (  'relative_location_1'  systems). with  each g r a p h i c a l parameters  angles  are defined i n  'primary_link'  which  i s the  'secondary_link'  coordinate  component beyond  are  moves.  are  vectors  r e l a t i v e p o s i t i o n s , with respect to  object's  are  (which  and ' r e l a t i v e _ l o c a t i o n _ 2 '  that contain the j o i n t ' s  for this  'secondary_link'  declared graphical objects  independent  vectors  which  the  Extremes,  as  well  as  the  joint's  specified  relative  to  the  joint's  system.  The  which  store  joint  can  current  extreme a p a i r of  not  move.  angles,  predefined  are  neutral  o f (0°, 0 ° , 0 ° ) .  The n e u t r a l p o s i t i o n f o r a j o i n t definition different models  joint.  joint_identifier, primary_link, relative_location_1, secondary_link, relative_location_2, x_extremes, y_extremes, z_extremes  where  position  identifier  joint i s  JOINT  maximum  a unique  c a n t r a v e l a n d may s p e c i f y where t h e  a r e t o be j o i n e d .  stationary  assigned  r e s t r i c t i o n s on t h e r a n g e o f a n g l e s  secondary l i n k  segments  is  i s determined  by  of t h e g r a p h i c a l o b j e c t s used i n t h e j o i n t . j o i n t s a r e shown  are  present  in  i n Figure their  1.  neutral  In both cases,  the Two the  p o s i t i o n s which i s  14 possible only the  joint  i f t h e segments a r e d e f i n e d as i n F i g u r e  locations  are  specified  as  in  the  2 and  subsequent  statements. JOINT j o i n t _ i d ,  o b j e c t 1, ( 0 . 0 , - 2 . 0 , 0 . 0 ) , o b j e c t 2 , ( 0 . 0 , +2.0, 0.0), x_extremes, y_extremes, z_extremes  JOINT j o i n t _ i d ,  object3, ( 0 . 0 , -2.0, 0 . 0 ) , object4, (-2.0, 0.0, 0.0), x_extremes, y_extremes, z_extremes  B o t h images joints +90°,  in Figure  presented, or  -90.0°,  The  1 c a n be p r o d u c e d  i f the current  by  angles  either  of  the  in either joint  are  respectively.  direction  of the extremes a s s o c i a t e d w i t h a  c a n be d e t e r m i n e d by t h e r i g h t hand  rule.  By  pointing  joint the  r i g h t hand  thumb i n t h e d i r e c t i o n  axis  closing  the  of  c u r l e d f i n g e r s i s the p o s i t i v e d i r e c t i o n  and  direction for  the  the extremes.  right  the  Figure  3 displays a joint  a x i s i s the negative  one  locked at 0 ° . are  hand,  Consequently,  about  contains  degree The  o f t h e p o s i t i v e h a l f o f an  in  the  the  counterclockwise  clockwise  direction  f o r the extremes.  i t s neutral  of freedom  direction  position  s i n c e t h e X and Y a x e s a r e  j o i n t ' s a x e s and t h e a s s o c i a t e d  a l s o d i s p l a y e d i n the f i g u r e .  The  joint  c a n be  (0°,  135°)  by t h e s t a t e m e n t : JOINT j o i n t _ i d ,  o b j e c t l , rel_l'oc1, object2, r e l loc2, (0°,  0°),  (0  which  7 7  ,  0°),  maximums created  15  Figure 1 Two j o i n t s  in different  neutral positions  3.2 INTERNAL REPRESENTATION The  internal  described stored  in  represented  by  r e p r e s e n t a t i o n o f an a r t i c u l a t e  a  the  tree LIG  structure ANIMATE  of  the  higher  the nodes below. represent  the  The  is  o f nodes and a r c s t h a t i s  preprocessor.  Links  by nodes a n d t h e j o i n t s a r e r e p r e s e n t e d  [ 2 , 2 3 ] . E a c h l e v e l o f nodes nodes  figure  moves  with  respect  are  by a r c s to  the  l e v e l and i s c o n s i d e r e d  s t a t i o n a r y by  nodes  of  at  the  leaves  the  tree  outermost e x t r e m i t i e s of the model; the root  node i s c o n s i d e r e d  t h e main l i n k .  F i g u r e 4 i s an e x a m p l e o f  16  Y  Y  2.0  2.0  Figure Definition a partial model's total  of g r a p h i c a l  m o d e l o f a human f i g u r e . internal  structure.  of m a r c s present  theoretically restricts  2  A  objects  Figure model  5  however,  LIG  m o d e l s t o a maximum o f t h i r t y  the  may h a v e a t most a  in i t s structure.  unlimited,  contains  This  ANIMATE  arcs  value  is  currently  (joints).  17  Y axis  X axis  Figure 3 Sample j o i n t  extremes  E a c h node i s a s s o c i a t e d w i t h a t l e a s t the  case  of  Typically,  the  two  corresponding  a  are link  a c t s a s b o t h a p r i m a r y and node  may  have  the  three  other  in  associated  with  a  secondary  segment,  however,  o r more a r c s a s s o c i a t e d w i t h  five  node,  ( s u c h a s t h e femur o f a l e g ) t h a t  example, t h e hand has s i x a r c s joint,  a r c , as  e x t r e m i t i e s t h a t a r e secondary segments.  arcs to  one  (one r e p r e s e n t i n g  representing  the finger  a  i t . For  the  wrist  joints).  A  Figure Internal  5  s t r u c t u r e of a m o d e l  19 node may factor ten  be a s s o c i a t e d w i t h a t most n a r c s . n  is  also theoretically  i s deemed s u f f i c i e n t  The  information  shown  in Figure  such  as  the  6.  object, the s c a l i n g in  which  of  associated  the  specific  b o u n d i n g an a r c c o n t a i n  information  to the j o i n t ' s  joint  on t h e n o d e ' s g r a p h i c a l o b j e c t . to  information  in  identify stored  restrictions information  joint  arc).  represent  a, joint the  associated  joints  model  with  the  E a c h node  acts  as a p o i n t e r t o  level the  identifier  containing  joint.  zero  The  represents  the joint  a  joint  node i s a s e c o n d a r y segment (an u p w a r d  information in  node.  The j o i n t  and  stored at table location  The j o i n t  Both of  i d e n t i f i e r and t h e l o c a t i o n o f t h e  at  which the current  present  p e r t a i n i n g t o the  opposite  contains  used  graphical  In a d d i t i o n ,  information.  also  is  a  information  host's  node i s a p r i m a r y l i n k .  joint  j o i n t and a p o i n t e r  w i t h a node i s  general  corresponding  figures.  f a c t o r , a n d t h e number o f j o i n t s  the current  e v e r y node c a r r i e s nodes  t o d e f i n e most a r t i c u l a t e  typically  branching  u n l i m i t e d , b u t a f a c t o r of  E v e r y node c o n t a i n s  name  The  which  stored the  in locations current  one  to  n  node i s a p r i m a r y  segment ( a downward a r c ) .  The  model's  tree structure permits  of open k i n e m a t i c  chains  linear  of l i n k s  an  sequence  only.  A  the representation  kinematic  chain  .i s  t h a t a r e c o n n e c t e d by j o i n t s .  open c h a i n , one end p o i n t  is  fixed  and  the  a In  remaining  20  G r a p h i c a l Object Name Object Scale N u m b e r of S u b j o i n t s No.  Joinl  #  Ptr t o Node  Joint  Location  0  0  0  (0,0,0)  1  0  0  (0,0,0)  2  0  0  (0,0,0)  n  0  0  (0,0',0)  Figure 6 Information chain  i s allowed  closed  7b.  t h e arms  motionless, The  t o move f r e e l y , a s  motion  F o r example,  Every  the  model  information  in  chain  i n such  a  t h e scope o f t h i s  information  addition  to  together  k e e p i n g t h e body  i s f o r m e d by t h e chain  In a  i n space, as  arms.  i s more c o m p l e x t o thesis.  h a s an a s s o c i a t e d s y m b o l t a b l e ,  The t a b l e c o n t a i n s model,  t o move w h i l e  a closed kinematic produced  i sfixed  7a.  i f two hands a r e j o i n e d  are allowed  a n a l y z e and i s beyond  8.  i n Figure  c h a i n , more t h a n one e n d p o i n t  in Figure and  a s s o c i a t e d w i t h each l i n k  see F i g u r e  from t h e d e c l a r a t i o n state  information.  includes: the j o i n t i d e n t i f i e r s , the  of The  rotational  maximums a s s o c i a t e d w i t h e a c h d e g r e e o f f r e e d o m , t h e c u r r e n t rotational  angles  of  each  degree  of  freedom,  and t h e  21  F i g u r e 7a  F i g u r e 7b  a) Open k i n e m a t i c c h a i n b) C l o s e d k i n e m a t i c c h a i n instantaneous  v e l o c i t y and a c c e l e r a t i o n of t h e j o i n t s  each degree of freedom. the model's p o s i t i o n at  a  specific  The t a b l e  completely.  frame,  is  defined  to  along  describe  The c o n t e n t s o f t h e t a b l e ,  represents  a  model's  current  orientation.  Current Orientation  X Extremes  Y Extremes  Extremes  Current Velocity  No. 1  (0,0,0)  (0,0,0)  (0,0,0)  (0,0,0)  0  0  No. 2  (0,0,0)  (0,0,0)  (0,0,0)  (0,0,0)  0  0  No. 3  (0,0,0)  (0,0,0)  (0,0,0)  (0,0,0)  0  0  No. m  (0,o',0)  (0,o",0)  (0,o",0)  (0,o",0)  0  0  Joint  #  z  Figure 8 Model symbol  table  Current Acceleration  22 Since  the state  model d u r i n g  i n f o r m a t i o n must be a v a i l a b l e t o t h e  the animation,  the p r e p r o c e s s o r .  t h e t a b l e c a n n o t be  The t a b l e i s s t o r e d  the host  language.  command  t o r e t r i e v e a model,  model's  Whenever  in  i n a s u i t a b l e form i n  the preprocessor the preprocessor  receives  a  transfers the  e x t e r n a l r e p r e s e n t a t i o n and t h e model's  to the t a r g e t  stored  symbol  table  code.  3.3 MODEL D E F I N I T I O N USING SUBMODELS  An  articulate  techniques. the  use  object of other  creation  of  referenced  can  be  defined using  u s e s t h e JOINT c o n s t r u c t  articulate  i n Section  graphical grouping  The f i r s t  of  discussed  model  submodels;  3.4.  f o r every  Instead link,  segments and  intermediate  and  allows  the second approach i s  of simply each l i n k  joints,  models  two b a s i c  using a  static  can c o n s i s t of a  which  o r submodels  permits  the  t h a t c a n be  independently.  In t h e s t a t e m e n t s , a :- JOINT .., o b j 1 , b :- JOINT .., o b j 3 , c :- JOINT .., b, d :- JOINT .., a , the  symbols  type  MODEL.  operator, right  .., .., .., ..,  obj2, a, obj4, b,  ..  ' a ' , 'b', ' c ' , 'd' r e p r e s e n t The  symbol  side  variables  i s t h e model  which causes the r e s u l t i n g  hand  ..  of t h e  assignment  node s t r u c t u r e  on t h e  o f t h e MODEL v a r i a b l e t o be s t o r e d on t h e  23 left  hand  side  of t h e o p e r a t o r .  s t a t e m e n t s were e x e c u t e d 9 w o u l d be g e n e r a t e d  Model A  I f each of t h e preceding  i n order,  the structures  in  Figure  respectively.  Model B  Model C  Objl  Obj3  Obj3  Obj2  Objl  Objl  Obj2  Obj2  Model D Objl  Obj4  Obj2  Obj3  Objl  Obj2  Figure Model  The  JOINT  (superposition) the  construct  assignment  can  vector  f o r the  respect  t o t h e main  model,  secondary  represented  link  segment in  structures.  system uses c o p i e s construct,  the  as p o i n t e r  ANIMATE s y s t e m d o e s n o t a l l o w the  be  compared  to  i n h i g h - l e v e l g r a p h i c a l languages.  s e c o n d a r y segment i s a  internally  9  Infinite  the  relative  the  Whenever location  must be s p e c i f i e d w i t h submodel.  Models  the user t o c r e a t e loops  submodel's  are  s t r u c t u r e s , hence, the LIG cycles  in  are prevented since the  of t h e submodels s p e c i f i e d i n t h e  i f the  '+'  JOINT  name i s n o t t h e same a s t h e  24 recipient prevents  model.  This  approach  the c r e a t i o n of i n f i n i t e  i s effective loops,  such  because i t as  by  the  statements: a c The  :- JOINT .., b, .., c , .. :- JOINT .., a , .., d,  technique  addition. a a model  a l l o w s an e f f i c i e n t  In the  implementation  of  model  statements  :- JOINT .., a , .., b, :- JOINT . . , b,- . . , a , 'b' i s a d d e d t o m o d e l  both models.  'a', without  using  The s y s t e m h a s one r e s t r i c t i o n .  copies  of  The f o l l o w i n g  statement a  :- JOINT .., a , .., a ,  i s not a l l o w e d . structure  The e x e c u t i o n  containing  a  of such a statement c r e a t e s a  c y c l e , therefore, the preprocessor  p r o d u c e s a n e r r o r message.  An that  advantage  fewer  t o t h e a b o v e method o f model c r e a t i o n i s  statements  are  required  to  create  symmetric  models.  F o r e x a m p l e , c r e a t i n g a m o d e l o f a human body  entails  t h e c r e a t i o n o f s u b m o d e l s f o r t h e r i g h t arm a n d  right and  leg.  Once d e f i n e d , b o t h  joined to the right  and l e f t  separate  s e t of l e f t  arises.  The v a l u e s o f t h e j o i n t  first the  s u b m o d e l s c a n be d u p l i c a t e d half  o f a human  l i m b s n e e d n o t be d e f i n e d . identifiers  torso.  A  One p r o b l e m  should  not  be  25 duplicated two  i n t h e r i g h t hand a n d l e f t  sets of limbs w i l l  unique i d e n t i f i c a t i o n identifiers  must  behave i d e n t i c a l l y .  of  be  hand l i m b s ,  the  joints,  modified  before  else  the  Thus, t o ensure  the  submodel  joint  t h e s u b m o d e l s c a n be  connected t o the t o r s o .  Consider the statement: arm  := JOINT 2, humerus, ( 1 . 0 , 5.0, 1 . 0 ) , f o r e a r m <TRANS JOINTS BY 10>, ( 0 . 0 , 0.5, 1 . 0 ) , (0°, 135°), (0°, 180°)  w h i c h c r e a t e s a m o d e l o f an arm c o n s i s t i n g o f a f o r e a r m  and  backarm  link  (humerus)  (forearm), model  The s e c o n d a r y  w h i c h was p r e v i o u s l y d e f i n e d ,  whose  value,of  j o i n e d a t the elbow.  joint  identifiers  have  i s an  articulate  been t r a n s l a t e d by a  t e n o n t o a new r a n g e o f i d e n t i f i e r s .  3.4 MODEL D E F I N I T I O N BY CONSTRUCT  The s u b m o d e l a p p r o a c h h a s produce  temporary  alternative assumes required.  models  one  disadvantage.  unnecessarily.  I t can  C o n s e q u e n t l y , an  t e c h n i q u e f o r c r e a t i n g models i s p r o v i d e d  none  of  t h e model's subcomponents i s s u b s e q u e n t l y  The method c r e a t e s o n l y  no i n t e r m e d i a t e  that  articulate  models.  t h e r e s u l t a n t model The c o n s t r u c t  with  26 STARTMODEL arm JOINT 1, h u m e r u s , ( 0 . 0 , 5.0, 1 . 0 ) , u l n a , ( 0 . 0 , 0.5, 1 . 0 ) , (0°, 3 5 ° ) , ( 0 , 180°) JOINT 2, u l n a , ( 0 . 0 , - 5 . 0 , 1 . 0 ) , p a l m , ( 0 . 0 , 3.0, 1 . 0 ) , (-90°, 0 ° ) , (-25°, 25°) JOINT 3, p a l m , ( 0 . 0 , - 3 . 0 , 1 . 0 ) , l i t t l e , ( 0 . 0 , 1.5, 0 . 5 ) , (-90°, 4 5 ° ) , (-45°, 45°) JOINT 4, p a l m , ( 0 . 0 , - 3 . 0 , 2 . 0 ) , r i n g , ( 0 . 0 , 1.5, 0 . 5 ) , (-90°, 4 5 ° ) , (-45°, 45°) JOINT 5, p a l m , ( 0 . 0 , - 3 . 0 , 3 . 0 ) , m i d d l e , ( 0 . 0 , 1.5, 0 . 5 ) , (-90°, 4 5 ° ) , (-45°, 45°) JOINT 6, p a l m , ( 0 . 0 , - 3 . 0 , 4 . 0 ) , i n d e x , ( 0 . 0 , 1.5, 0 . 5 ) , (-90°, 4 5 ° ) , (-45°, 45°) JOINT 7, p a l m , ( 0 . 0 , - 3 . 0 , 5 . 0 ) , thumb, ( 0 . 0 , 1.5, 0 . 5 ) , (-90°, 4 5 ° ) , (-45°, 45°) ENDMODEL C  creates The  a non-trivial  primary  restricted  to  links,  m o d e l 'arm' w i t h a specified  graphical  within  objects,  been  defined  prior  the model d e f i n i t i o n  the  however,  l i n k s may be e i t h e r g r a p h i c a l o b j e c t s  I f t h e m o d e l 'hand' c o m p r i s i n g  single  construct.  construct the  secondary  o r submodels.  the l a s t  five  j o i n t s has  t o t h e u s e o f t h e MODEL c o n s t r u c t , c a n be f u r t h e r  are  then  simplified:  STARTMODEL arm JOINT 1, h u m e r u s , ( 0 . 0 , 5.0, 1 . 0 ) , u l n a , ( 0 . 0 , 0.5, 1 . 0 ) , (0°, 3 5 ° ) , (0°, 180°) JOINT 2, u l n a , ( 0 . 0 , - 5 . 0 , 1 . 0 ) , h a n d , ( 0 . 0 , 3.0, 1 . 0 ) , (-90°, 0 ° ) , (-25°, 25°) ENDMODEL The  order  o f t h e JOINT s t a t e m e n t s p r e s e n t w i t h i n t h e MODEL  27 construct specified internal  is  arbitrary.  i n t h e same structure.  The  order The  j o i n t s t a t e m e n t s need n o t  as  their  appearance  in  the  system s o r t s the s p e c i f i c a t i o n s  and  a s s e m b l e s t h e model i n t h e a p p r o p r i a t e o r d e r , segment are  i d e n t i f i e r s are unique.  same o r d e r a s t h e y a p p e a r  model  I f t h e segment  i n the i n t e r n a l  user i s responsible  specification.  produce models of  provided  All  unambiguously.  an a m b i g u o u s  for  in  the  structure.  creating  a  non-ambiguous  t h e p r e c e d i n g model The  the  identifiers  n o t u n i q u e , t h e JOINT s t a t e m e n t s must be p l a c e d  The  be  following  is  definitions an  example  model:  STARTMODEL hand JOINT 1, p a l m , f inger, JOINT 2,  ..,  palm, f inger,  JOINT 3, f i n g e r , .., f ingernai1,  ..,  ENDMODEL The  specification  JOINT 3 c a u s e s t h e d i f f i c u l t y .  With  t h i s model d e f i n i t i o n , the system cannot d e t e r m i n e t o  which  finger  the  fingernail  specification the  of  d e p e n d s c o m p l e t e l y on  p r e p r o c e s s o r , hence,  specifications  belongs.  The the  result  of  implementation  i t s h o u l d be assumed t h a t  produce u n p r e d i c t a b l e  such  models.  a of  ambiguous  28 3.5 MODEL TRANSFORMATIONS  Once unit.  a  m o d e l h a s been d e f i n e d , i t c a n be t r e a t e d a s a  As p r e v i o u s l y  building  block  shown,  a  model  can  function  a  f o r t h e d e f i n i t i o n o f more c o m p l e x m o d e l s .  C u r r e n t l y , no c o n s t r u c t s a r e p r o v i d e d t h a t p e r m i t direct  as  access  to  transformations  t h e model's  have  been  the  user  d a t a b a s e , however, s e v e r a l  provided  that  permit  model  m o d i f i c a t i o n by t h e u s e r .  M o d e l e l e m e n t s on assignment  statement  the right represent  d e f i n e d model i d e n t i f i e r s . creating  different  different  results.  are  hand  side  instances  of of  Such i n s t a n c e s c a n  instances  of  a  model  a  previously  be  modified  i d e n t i f i e r with  Currently, the modifications  permitted  the transformations j o i n t i d e n t i f i e r t r a n s l a t i o n ,  segment  scaling,  follow  a model  by a n g l e  and  model  ina list  brackets  joint  separated  model  extreme  model  scaling.  They  by commas a n d s u r r o u n d e d  ("<", ">") a n d h a v e t h e s y n t a c t i c  form  TRANS JOINTS [ BY ] < i n t e g e r > SCALE MODEL < r e a l > SCALE EXTREMES < r e a l > where b r a c k e t s represent  constants  transformations commutative. repeated.  ( " [ " a n d " ] " ) i n d i c a t e an o p t i o n a n d "<type>"  are They  of  the  independent, may  type  "type".  consequently,  Model they  are  be a p p l i e d i n a n y o r d e r a n d may be  I f t h e TRANS JOINTS t r a n s f o r m a t i o n  is  repeated,  29 the  resulting  instances. EXTREMES  transformation  Repeating  i s t h e sum  either  transformations  t h e SCALE  produces  of  a l l the  MODEL  a  or  SCALE  transformation  c o n s i s t i n g of t h e product of the i n s t a n c e s .  The  TRANS JOINTS t r a n s f o r m a t i o n  i d e n t i f i e r s p r e s e n t i n t h e model.  translates  the  joint  The s t a t e m e n t  b :- a <TRANS JOINTS BY 10> creates  a  new  translated  by  identifiers. submodels  value  of  joint  identifiers  t e n onto  This transformation  identifier  a  new  have been range  i s used p r i m a r i l y contain  of  whenever  an  overlap  scales a l l of a  model's  range.  SCALE MODEL t r a n s f o r m a t i o n  segments. a  a  whose  p r e s e n t i n a model d e f i n i t i o n  in the joint  The  model  The s t a t e m e n t  :- a <SCALE MODEL 2.0>  redefines original system  model size.  will  A such t h a t If  the  create  image o f t h e p r e v i o u s  The  SCALE  model's j o i n t  i t s physical  scaling  factor  size  i s twice i t s  i s negative,  a new m o d e l i n s t a n c e w h i c h  the  i s a mirror  model.  EXTREMES  extremes.  transformation The s t a t e m e n t  scales  a l l of a  30 b :- a <SCALE EXTREMES creates  a  multiplied through  new by  model  the  2.0>  whose  factor  joint  extremes  have  thus  doubling  the  range  I f the s c a l i n g  factor  2.0,  which the j o i n t s can t r a v e l .  is negative, mirror created,  in  images o f t h e e x i s t i n g  joint  been  ranges  a d d i t i o n t o the change i n the j o i n t  are  movement's  magnitudes.  The  statement  b :- a <SCALE MODEL 1.5, SCALE EXTREME creates  a  model  'b'  which  i s larger  0.7>  than model  ' a ' , and  whose movements a r e more r e s t r i c t e d  t h a n t h o s e of model ' a ' .  Model  i n c r e a t i n g m o d e l s whose  transformations  are  useful  s i z e a n d movement r a n g e s a r e d i f f e r e n t , structure  are  executed, with corresponding generated.  the  same.  If  but  the preceding  'a' p r e d e f i n e d a s a model models  Figure  in  10a a n d  whose  Figure  10a  of and  internal  statement  was  robot,  the  a 10b  would  10b r e p r e s e n t m o d e l s ' a ' a n d  be 'b',  r e s p e c t i v e l y , a n d t h e e x t r e m e s by w h i c h t h e y c a n s q u a t .  Often of  i t i s desirable  motions.  If  these  t o h a v e a model p e r f o r m motions  a  range  i n v o l v e t h e movement o f a  m o d e l w i t h r e s p e c t t o d i f f e r e n t m a i n l i n k s , a t e c h n i q u e must be  available  i s performed. transformation  t o change t h e main l i n k Therefore, a second of  a  model.  The  w i t h w h i c h a movement  method  exists  transformation  for  the  has t h e  31  Figure  10a  Figure  a) M o d e l  squatting  b) M o d i f i e d model syntactic  squatting  form:  FIGURE model_name MAIN [ LINK l i n k _ i d ] [ JOINT j o i n t _ i d Execution the  model's  specified  by  which the l i n k the  joint's  Executing the  can  main  link.  the l i n k ' s  The  new  main  segment  name o r by t h e j o i n t  i s present. secondary l i n k  I f the j o i n t  a new  a  may  be in  i s used,  i s d e f i n e d a s t h e main  segment.  main l i n k  movement.  correctly.  as  identifier  t h e FIGURE s t a t e m e n t w i t h o u t any  to  link  identifier  options  assigns  a s t h e c u r r e n t main  segment.  11 a n d 12 d e m o n s t r a t e t h e d i f f e r e n c e t h e  make  squatted  ]  o f t h e FIGURE s t a t e m e n t a s s i g n s  model's o r i g i n a l  Figures  10b  The t o r s o  In  Figure has  11,  descended  main  link  t h e model  has  towards  the  32 ground the  b e c a u s e t h e m a i n segment i s a f o o t .  main  produced the  link  is  the  torso  i s quite different;  ground.  Figure  the squatting  t h e f e e t have r i s e n  This occurs since  during the squatting  and  In  the torso  movement  away  i s kept  12,  from  stationary  motion.  F i g u r e 11 Model s q u a t t i n g  with  t h e f o o t as main  Figure Model s q u a t t i n g  The  internal  with  link  12  t h e t o r s o as main  link  s t r u c t u r e s o f t h e m o d e l s a r e s e t up s u c h  that  t h e s t r u c t u r e i s i n d e p e n d e n t o f t h e m a i n segment.  the  structure  Yet,  enables the system t o determine the o r i g i n a l  33 orientation  of  the  structure.  This  ability  allows the  s y s t e m t o o r i e n t ' a model c o r r e c t l y whenever a new m a i n is  link  defined.  A r e l a t i o n s h i p e x i s t s between t h e current Figure  angle 13,  however,  both the  reversed. viewed  as  the  have  of  the  primary  a  joint's  o f i t s two s e g m e n t s .  the  same  angles  angle  between  or secondary l i n k .  (i.e.  primary  become p r i m a r y ) .  links  the  links i s  signs  In F i g u r e  reverse  secondary  By c o m p a r i n g  system can a u t o m a t i c a l l y determine  the  joint  14, t h e model h a s s q u a t t e d .  The m o d e l was o r i g i n a l l y  as  the  and  l e g have  link, angles  reversed.  The  torso  d e s c e n d e d t o w a r d s t h e g r o u n d b e c a u s e t h e main segment foot.  contorted.  have  changed. not  been  The  signs  defined with the  reversed  of  the  joint  thus the l e f t  has  i s the torso  main l i n k , c o n s e q u e n t l y , t h e r o l e s of t h e l e f t  however,  and  model's  d e f i n e d main  which  is  Whenever a new  become  m a i n segment w i t h t h e o r i g i n a l l y  need t h e i r  left  In  magnitude,  i s d e f i n e d , s e v e r a l of a model's l i n k s  secondary l i n k s  the  priority  joints  sign  roles  current  the  of  The s i g n o f t h e a n g l e d e p e n d s upon w h i c h l i n k  m a i n segment their  and  sign  foot  angles,  l e g became  34  Primary Link  Secondary Link  F i g u r e 13 J o i n t s w i t h same a n g l e b u t d i f f e r e n t  F i g u r e 14 Model i m p r o p e r l y  squatting  sign  Chapter MOTION  4  PRIMITIVES  Once t h e model h a s been d e f i n e d , m o t i o n s f o r t h e can  be  created.  associated  with  constructs motion  chapter  motion  discusses  specification,  f o r d e f i n i n g motions,  the  presents  two  a n d e x a m i n e s a method f o r  two-dimensional  t h e use of keyframe and  techniques.  animation  interpolation  Keyframes a r e a s e t of important  In a n i m a t i o n the m i s s i n g  i n a given  f r a m e s r e q u i r e d t o c r e a t e smooth  One o f  drawings that  s t u d i o s , k e y f r a m e s a r e drawn by h e a d  p r o d u c e d by i n - b e t w e e n i n g  animation  relies heavily  ("in-betweening")  show f i g u r e s a t c r u c i a l p o i n t s ( e x t r e m e s )  the  earlier  allowed  the  dimensional visualized limited  approaches animator  [7],  h a v e been a c h i e v e d , projections by t h e a n i m a t o r , in  animators; are  artists.  r o l e of t h e in-betweeners animations  action.  animation  to  computer-assisted  t o enter keyframe  i n t o t h e c o m p u t e r ' s memory a n d h a d t h e c o m p u t e r  is  problems  manipulation.  Conventional on  This  model  creating  of  Although keyframe  the  some v e r y  effective  drawings  a r e two-  hence t h e i n f o r m a t i o n  35  assume  three-dimensional  realistic  drawings  animation.  figures available Also,i n -  36 between  frames  resulting  in  are temporal  a c t u a l l y deform if  a  keyframe object  discontinuities  leg  obscures  limits  the  drawings.  An  from the d r a w i n g s  original drawing  model. it  corresponds  Use  linearly  In  must  the  automatic  can  b e c a u s e he  contain  for a  For  example,  the  loss  in-betweening  animator  order  other,  is  model  of  the  the  original with  figure  of t h r e e - d i m e n s i o n a l computer m o d e l l i n g  specification  the  eliminates  s e v e r a l problems  for  in  figure  associated with  problem  of  motion  a t h r e e - d i m e n s i o n a l model i s i n t r o d u c e d .  as  functions  of  time.  f r e q u e n t l y u s e d on a p i e c e w i s e b a s i s model  segment  The  technique  ( i . e . the  i s computed s e p a r a t e l y ) .  motion  a  producing  path over time. motion  with  n e v e r t h e l e s s , the d e s c r i p t i o n  The  few  method has  temporal  is of  the  involves advantage  discontinuities,  of a t h r e e - d i m e n s i o n a l p a t h  a - f u n c t i o n of time i s g e n e r a l l y a d i f f i c u l t  and  F u n c t i o n s of  t i m e a r e e v a l u a t e d on a f r a m e - b y - f r a m e b a s i s w h i c h specifying  a  that  p o p u l a r t e c h n i q u e i s t o e x p r e s s a model's p o s i t i o n s  velocities  of  of  deduce the familiar  of  a program t o u n d e r s t a n d  t w o - d i m e n s i o n a l a n i m a t i o n , however, the  each  and movements t h a t  t o t h e model i n t h e a n i m a t o r ' s h e a d [ 9 ] ,  representation  One  interpolated,  f i g u r e s d u r i n g the a n i m a t i o n .  figure's  information  frequently  task.  as  37 4.1  MOTION S P E C I F I C A T I O N  The the  proposed approach  best  aspects  techniques. views  a  of  both  Whereas  figure  functional  f o r motion the  specification  keyframe  two-dimensional  with  an  approach  external  views  a  and  functional  keyframe  perspective  figure  from  combines  a  animation and  piecewise  p e r s p e c t i v e , t h e p r o p o s e d t e c h n i q u e t r e a t s a model as a and  views  i t  from  an  model's p o i n t of v i e w ) . orientation  internal perspective  Consequently, a model's  c a n be u n i q u e l y s p e c i f i e d  method i s s i m i l a r positional  t o keyframe  extremes  are  used  of  accuracy  The to  abstraction,  initial  motion  keyframes  The or  and d e a l t w i t h on a h i g h  a l l o w i n g more f l e x i b i l i t y  specification used  of a s i n g l e  joint  in eel animation.  starting position Every  ( a n g l e ) , and a  keyframe  set  and  As  is similar shown  identifier,  in an  of  movements  c o n t a i n s t h e frame  identifier  d u r i n g w h i c h t h e movement i s c o m p l e t e d , t h e the  positional  t h r o u g h o u t t i m e , however, a  15, t h e s p e c i f i c a t i o n c o n t a i n s a j o i n t  (keyframes).  at  from the  in a figure's animation.  an a n i m a t i o n s c r i p t  Figure  thus  unit  throughout time.  a n i m a t i o n because  t h r e e - d i m e n s i o n a l model i s employed level  (i.e.  the  joint  position  c u r r e n t f r a m e , and t h e i n t e r p o l a t i o n method u s e d t o  r e a c h the p o s i t i o n a l extreme  (Figure  16).  38  Joint # Starting Position Movement 1 Movement 2  Figure Motion s p e c i f i c a t i o n  Frame #  15 fora single  Angular Position  Interpolation Method  Figure Keyframe The  angular  neutral  ticks  start  relative  The f r a m e i d e n t i f i e r s  The  the  joint's  objects  represent  passed  used  t h e number o f  during  the  motion  frame i d e n t i f i e r s a r e g i v e n w i t h r e s p e c t t o  of the motion s p e c i f i c a t i o n .  identifier  i s assigned  techniques  currently available  deceleration,  to  of t h e g r a p h i c a l  ( u n i t s o f t i m e ) t h a t have  sequence. the  information  o f (0°, 0 ° , 0 ° ) . The n e u t r a l p o s i t i o n i s  d e t e r m i n e d by t h e d e f i n i t i o n in the j o i n t .  16  p o s i t i o n i s given  position  joint  and  a  the value  The  of zero.  initial  The i n t e r p o l a t i o n  are: linear,  combination  frame  acceleration,  of b o t h a c c e l e r a t i o n and  decelerat ion.  The single The  keyframe  information  i s sufficient  j o i n t ' s movement t h r o u g h o u t  interpolation  an  to specify a  animation  r o u t i n e s h a v e been d e s i g n e d  sequence.  t o reduce t h e  39 effects  of  possible  temporal  because  instantaneous routines  discontinuities. the  velocity  take  interpolation  system  stores  and a c c e l e r a t i o n .  advantage  of  the  adjustments.  routine allows several  achieve  optimum  linearly.  Similar  interpolation motion which direction  velocity  every The  joint's  interpolation  information  For  interpolation an  Such r e d u c t i o n s a r e  and  example,  the  frames f o r a  before  the  linear  joint  joint  m o d i f i c a t i o n s have been made t o  routines,  make  to  travels a l l  the  therefore decreasing the i r r e g u l a r  i s n o r m a l l y c a u s e d by  of motion at every  discontinuities  i n the  keyframe.  Joint 1  Starting Position Movement 1 Movement 2  Joint 2  Starting Position Movement 1 Movement 2  Joint 3  Starting Position Movement 1 Movement 2  Joint 4  Starting Position Movement 1 Movement 2  F i g u r e 17 Motion  template  A complete motion d e f i n i t i o n f o r a  model  motion  specifications  model.  A motion template i s given i n Figure  specifications  are  consists  of  f o r a l l of t h e j o i n t s present i n the  entirely  independent,  17.  The m o t i o n  consequently,  40 different the  k e y f r a m e s may e n d on d i f f e r e n t  joint at  numbers o f k e y f r a m e s may e x i s t  that  finishes  processing  i t s current angular position  frame  f o r each j o i n t and identifiers.  i t s keyframes remains f o r the  remainder  Any frozen  of t h e  mot i o n .  4.2 E X P L I C I T  A  DEFINITION  motion  c a n be s p e c i f i e d  u s i n g two b a s i c  an e x p l i c i t a n d i m p l i c i t a p p r o a c h . discussed  in  S e c t i o n 4.3.  exact motion s p e c i f i c a t i o n of  every  joint's  approaches,  The i m p l i c i t a p p r o a c h i s  The e x p l i c i t a p p r o a c h a l l o w s an  f o r a model, however,  orientation  the d e t a i l s  must be s u p p l i e d t o t h e L I G  ANIMATE l a n g u a g e .  The  explicit  specification  approached  with  technique  assumes  relationships expressed  either  of  that  between  of a model's  two the  m o t i o n c a n be  techniques. desired  each j o i n t ' s  The  motion  keyframes  one k e y f r a m e  for a single  contains  that  i n t h e form of a m a t h e m a t i c a l f o r m u l a .  statement d e f i n i n g  first  can  be  A typical  joint i s  motion_name [ j o i n t _ i d , k e y _ f r a m e _ i d ] := FRAME f r a m e _ i d POSITION a n g l e _ x , a n g l e _ y , a n g l e _ z INTERPOLATE i n t e r p o l a t i o n _ t e c h n i q u e where  'motion_name'  is a  variable  of  the  t y p e MOTION;  'joint_id'  i s a j o i n t i d e n t i f i e r i n t h e model f o r w h i c h  movement  belongs.  A  motion  may  not  have  more  the joint  41 specifications  than  t h e maximum a l l o w a b l e j o i n t s p e r m o d e l .  Currently  t h i s number  relative  location  motion. is  is  thirty.  'key_frame_id'  of t h e keyframe from t h e b e g i n n i n g  A m o t i o n may h a v e a t most n k e y f r a m e s .  theoretically  is  sequence  at  which  movement  extreme.  the  frame  the  keyframe  beginning  of  the  motion.  'angle_z'  represent  secondary  link  the  with  (LINEAR, ACCELERATE, keyframe  to  the  or  the  of  the  'angle_x',  ACCDCC)  the value  direct  access  to  a  link.  interpolation  method  from If  employed w i t h i n o t h e r c o n s t r u c t s iteration  to  produce  technique  reduces  the  and  motion  the  previous  'keyframe_id' i s  specified  motion  and  of t h e j o i n t ' s  interpolation_technique i s a l s o ignored.  allows  to the  'angle_y',  f o r FRAME i s  value a c t u a l l y  figure's  primary  used  keyframe.  the animation  relative  the  the  currently  the  position to  is  current  s p e c i f i e d as z e r o then regardless  i s specified  respect  'interpolation_technique'  in  specifies  angular  value  keyframes.  location  'frame_id  of the  This  u n l i m i t e d , h o w e v e r , L I G ANIMATE  r e s t r i c t s m o t i o n s t o a maximum o f f i f t y  'frame_id'  i s the  set by  zero  'frame_id';  The  variable. permits  to  approach I t c a n be  the  use  specifications.  t h e number o f s t a t e m e n t s  of The  a n d t h e amount o f  work n e e d e d t o d e f i n e t h e s p e c i f i c a t i o n s .  Since the model's  motion  construct with  allows  the  specification  of  a  t h e use of a f o r m u l a , t h e i d e n t i f i e r s  42 may  be  used,  either  variables  the v a r i a b l e  execution  will  following  i s an  value  be  constants.  at  stored  example  c o r r e s p o n d i n g model  or  the in  of  time  the  a  I f variables are of  the  statement  c u r r e n t keyframe.  motion  definition  The  and  a  definition.  DO 10 hand = 1 , 2 DO 20 m i n u t e = 0, 120 IF hand = 1 THEN BEGIN { Calculate the { angle a n g l e z = (360 / END ELSE BEGIN { Calculate the a n g l e z = (360 / END  minute hand's c u r r e n t } } 60) * m i n u t e hour hand's c u r r e n t a n g l e } 12) * ( m i n u t e / 60)  a n g l e z = a n g l e z MOD 360 a n g l e = ( 0 , 0, a n g l e z ) frame_num = 24 * m i n u t e TIME[hand, minute] 20 CONTINUE 10 CONTINUE clock  :- JOINT 1, c l o c k _ b o d y , m i n u t e h a n d , ..., (0°, 0"*), (0°, 0 ° ) , (0°, 360°)  clock  :- JOINT 2, c l o c k , h o u r _ h a n d , ..., (0°, 0 ° ) , (0°, 0 ° ) , (0°, 360°)  The To  = FRAME frame_num POSITION a n g l e INTERPOLATION l i n e a r  show  d e f i n e d motion an e x a g g e r a t e d  animates  scene,  f o r two  minutes.  movement o f t i m e , t h e c l o c k r u n s a t  t h e r a t e o f one m i n u t e p e r minute  a clock  second.  two h o u r s w i l l  Therefore,  have e l a p s e d .  in  a  two  F i g u r e 18 shows  43 six  selected  sequence,  the c l o c k ' s  o'clock. hour  range. defined from  If a clock  range,  defined  frames  this  with  a  from  the a n i m a t i o n sequence.  n e u t r a l p o s i t i o n was  motion neutral  150 t o 270  t h e new  at twelve  i s t o be a n i m a t e d o v e r a d i f f e r e n t two can  animate  position  Otherwise, t h i s clock over  defined  In the  range.  would animate  a  different  clock  a t the s t a r t of the  new  c a n be u s e d , b u t w i t h a m o t i o n For example, a motion the c l o c k  Figure  f r o m 2:30  18  Frames f r o m t h e c l o c k a n i m a t i o n  -  defined 4:30.  44 In joints  t h e p r e c e d i n g example, t h e r e l a t i o n s h i p between and  motion  relationship  can  consequently,  an  provided.  contain  and  keyframes.  easily  not  always  alternate  be  defined  the  a mathematical  method f o r c r e a t i n g m o t i o n s i s motion  does  r e l a t i o n s h i p between t h e j o i n t s  I t c a n be t e d i o u s t o u s e ,  description  But t h e  mathematically,  The method assumes t h a t t h e d e s i r e d  not  allows  c a n be d e f i n e d m a t h e m a t i c a l l y .  the  of  complex  be d e s c r i b e d m a t h e m a t i c a l l y .  nevertheless, i t  motions  that can not  The c o n s t r u c t  STARTMOTION motion_name JOINT j o i n t _ i d [ POSITION a n g l e _ x , a n g l e _ y , a n g l e _ z  ]  FRAME f r a m e _ i d POSITION a n g l e _ x , a n g l e _ y , a n g l e _ z INTERPOLATE i n t e r p o l a t i o n _ t e c h n i q u e FRAME f r a m e _ i d POSITION a n g l e _ x , a n g l e _ y , a n g l e _ z INTERPOLATE i n t e r p o l a t i o n _ t e c h n i q u e •  • •  ENDJOINT JOINT j o i n t _ i d FRAME ... •  • •  ENDJOINT •  •  •  ENDMOTION allows  an  exact  motion  definition.  v a r i a b l e o f t h e t y p e MOTION w h i c h specifications. defined  The  i n t h e animated  joint  'motion_name'  contains the joint-motion  i d e n t i f i e r s correspond  model.  i sa  The  construct  t o those  permits  a  45 s t r u c t u r e d approach t o produce a motion does  not  values  allow  of  the  variables  the  u s e of o t h e r  identifiers  are allowed.  The  must  specification.  It  control constructs.  The  a l l be  keyframe  constants;  identifier  i s not  b e c a u s e t h e c o n s t r u c t assumes t h a t t h e k e y f r a m e s a r e i n an a s c e n d i n g s e q u e n t i a l o r d e r . each j o i n t  i s specified  statement  i s not p r e s e n t  the  starting position  4.3  IMPLICIT  The  starting  viewed  for  the  definition  can  i t can f u n c t i o n  q,t  more  complex  A p r i m i t i v e m o t i o n a l g e b r a h a s been i n t r o d u c e d f o r The  have  motions. human  the  specification,  specification  a s a u n i t ( m o t i o n p r i m i t i v e ) and  t h i s use. that  If  DEFINITION  as a b u i l d i n g b l o c k motions.  placed  i s assumed t o be t h e n e u t r a l p o s i t i o n .  Once a m o t i o n has been d e f i n e d , t h e be  used  position for  i n t h e POSITION s t a t e m e n t . i n a j o i n t ' s motion  no  a l g e b r a a l l o w s the c r e a t i o n been  temporally  For example,  m o d e l t o hop,  s t a t e m e n t c a n be  compounded  to create a  s k i p , and  motion  of  new  motions  from  predefined  that  enables  jump t e n t i m e s ,  a  the f o l l o w i n g  used:  new_walk = 10 * (hop + s k i p + jump)  In  the  statement,  'skip',  and  'jump' r e p r e s e n t  The a  symbol motion  '='  the  symbols  'new_walk',  v a r i a b l e s o f t h e t y p e MOTION.  i s the motion assignment operator.  expression  on  'hop',  t h e r i g h t hand  I t stores  s i d e t o the motion  46 v a r i a b l e on t h e l e f t action.  hand s i d e .  'hop', ' s k i p ' , and  motions  which  respectively.  allow  a  The s y m b o l s the  motion  '+' a n d  algebra.  merges two m o t i o n s operator the  'jump' model  The c o n s t a n t  i s a p p l i e d to the a c t i o n s  'new_walk' are to  previously hop,  skip  10 i s t h e r e p e t i t i o n 'hop', ' s k i p ' , a n d  '*' a r e t h e The  and  The  jump  factor that  present  '+' a d d i t i o n o p e r a t o r  i n t o a new m o t i o n .  defined  'jump'.  operators  '*'  in  temporally repetition  c r e a t e s a new m o t i o n by r e p e a t i n g an e x p r e s s i o n  r i g h t h a n d s i d e of t h e '*' by t h e  hand  i s the r e s u l t i n g  side.  The  interchangeably.  '+'  and  '*'  factor  operators  on can  on  the  left  be  used  Both of t h e s t a t e m e n t s  new_walk  = (hop + s k i p ) + (hop + s k i p ) + (hop + s k i p )  new_walk  = 3 * (hop + s k i p )  produce  the  same  motion.  independent o p e r a t i o n s , takes  precedence  over  The a d d i t i o n a n d r e p e t i t i o n a r e  however, the  the  repetition  addition  operator  operator.  In  the  statement m o t i o n = 10 * hop + s k i p the motion motion  'hop' i s r e p e a t e d  before  the  skipping  i s added.  The m o t i o n general  10 t i m e s  form  algebra on  allows  motion  expressions  t h e r i g h t hand s i d e o f t h e '='  of  a  assignment  47 operator.  The  production  <motion e x p r e s s > .  The  for  the  Backus-Naur  expression  is called  form d e f i n i t i o n  for  the  production i s <motion e x p r e s s >  ::=  •emotion term> ::= <motion f a c t o r > <simple  list>  <simple>  ::=  <repetition>  The  <motion f a c t o r > | <motion f a c t o r > < m o d i f i c a t i o n ::=  ::=  <simple> | <simple l i s t > (<motion  express>)  list>  ::=  algebra  <motion p r i m i t i v e > | <simple l i s t >  r e l i e s h e a v i l y on t h e  of p r e d e f i n e d motion p r i m i t i v e s .  and  definition  time  introduced  consuming, that  exists  I t i s recognized  therefore,  allow For  which  operations  The  a more c o n v e n i e n t d e f i n i t i o n  of the  example, a  if  a  model  motion to  motion  STRIP from  has a  walk, in  a  primitive i t may  given  = STRIP w a l k , 5, 6, 7, 8,  motion.  be  different  been i n t r o d u c e d ,  statement walking_legs  the  been  allows  operation  creates a partial  that  have  d e s i r a b l e t o employ the a c t i o n of the l e g s motion.  availability  o f s u c h p r i m i t i v e s c a n be b o t h d i f f i c u l t  motion p r i m i t i v e s . (walk)  list>  :.:= < i n t e g e r c o n s t a n t > * < r e p e t i t i o n l i s t > | <integer variable> * < r e p e t i t i o n l i s t >  motion  explicit  express>  <motion p r i m i t i v e > <repetition>  |  <repetition  <motion term> | <motion term> + <motion  In  which the  48 'walking_legs' model's  i s a new m o t i o n  legs.  identifiers several  The  present  motion  values  primitive  that  5, 6, 7, 8,  i n t h e model's  legs.  executed, the motions  I f the  i n Figure  a  are the j o i n t Using  p r i m i t i v e s c a n be c r e a t e d  p o r t i o n s of a g i v e n model.  animates  method,  that animate  preceding  19 w o u l d be  the  statement  only is  present.  MOTION: Walk Joint 1 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 2 Starting  Position Keyframe 1  Keyframe 2  Keyframe 3  Joint 3 Starting  Position  Keyframe 1 Keyframe 2  Keyframe 3  Joint 4 Starting  Position  Keyframe 1 Keyframe 2  Keyframe 3  Joint 5 Starting  Position Keyframe 1 Keyframe 2  Keyframe 3  Joint 6 Starting  Position  Keyframe 1 Keyframe 2  Keyframe 3  Joint 7 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 8 Starting  Position Keyframe 1 Keyframe 2  Keyframe 3  MOTION: Walkingjegs Joint 5 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 6 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 7 Starting  Position  Keyframe 1 Keyframe 2  Keyframe 3  Joint 8 Starting  Position  Keyframe 1  Keyframe 3  Figure Strip  The When  operation  given  Keyframe 2  19  operation  SYNCHRONIZE  has  also  statement  introduced.  a s e t o f p a r t i a l m o t i o n s , SYNCHRONIZE c r e a t e s a  new m o t i o n t h a t a n i m a t e s p o r t i o n s o f a The  been  model  concurrently.  49 my_walk  defines  a  := SYNCHRONIZE  motion p r i m i t i v e  t o walk w h i l e  swinging  of  the  STRIP  increase  in  the  explicitly  defining  (my_walk) w h i c h a l l o w s a  i t s arms.  i s executed, the motions use  walking_legs, swinging_arms  I f the preceding  i n Figure  and  of  operations  motion  primitives  the motions.  MOTION: W a l k i n g j e g s Joint 5 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 6 Starting  Position Keyframe 1  Keyframe 2  Keyframe 3  Joint  7 Starting  Position Keyframe 1  Keyframe 2  Keyframe 3  Joint 8 Starting  Keyframe 1  Keyframe 2  Keyframe 3  Position  MOTION: Swinging_arms Joint 1 Starting  Position Keyframe 1  Keyframe 2  Keyframe 3  Joint 2 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  MOTION: My_walk Joint 1 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint  2 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 5 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint 6 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint  7 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Joint  8 Starting  Position  Keyframe 1  Keyframe 2  Keyframe 3  Figure Synchronize  statement  20 w o u l d be p r e s e n t .  SYNCHRONIZE  number  figure  20 operation  allow  The an  without  50 4.4 MOTION TRANSFORMATIONS  In has  a d d i t i o n t o t h e u s e o f t h e m o t i o n a l g e b r a , a method  been p r o v i d e d  primitives  to  that  the  allows  needs  a  user  to  o f an a n i m a t i o n  knowing d e t a i l s of t h e u n d e r l y i n g m o t i o n . on  the  right  the  can  The  without  hand s i d e o f t h e m o t i o n a s s i g n m e n t  represent  be m o d i f i e d with  to create different  different  permitted  identifiers.  are  results.  the  separated  syntactic  by a n g l e  brackets  These  instances of  Currently,  transformations  s c a l i n g , and keyframe extreme s c a l i n g . in a l i s t  sequence  elements  same m o t i o n  modifications  motion  Motion  instances of p r e v i o u s l y d e f i n e d motion instances  tailor  the  temporal  They f o l l o w a m o t i o n ('<', '>').  form of t h e t r a n s f o r m a t i o n s  i s g i v e n by  SCALE FRAMES < r e a l > SCALE EXTREMES < r e a l > The  transformations  commutative. repeated.  They may be a p p l i e d i n a n y o r d e r If  transformation  The motion.  are independent, consequently,  a  transformation  i s the product  SCALE  FRAMES  i s repeated,  and  they a r e may  be  the r e s u l t i n g  of a l l t h e i n s t a n c e s .  transformation  temporally  scales a  Thus, t h e statement  b = a <SCALE FRAMES 2.0> assigns  t o motion  'b' an i n s t a n c e o f  motion  'a'  that  has  51 been t e m p o r a l l y number  of  stretched to twice  keyframes  present  h o w e v e r , t h e number  of  keyframe  doubled.  factor order, motion  has  been  i s negative, producing  length.  The  i n 'b' i s t h e same a s i n ' a ' ,  intermediate  the system a  i t s original  temporally  In  frames  addition,  will  reverse  reversed  between  i f the s c a l i n g the  instance  ( F i g u r e 21 and 2 2 ) .  F i g u r e 21 Sample m o t i o n a  Figure  each  22  M o t i o n b f r o m b = a <SCALE FRAMES -2.0>  keyframe of t h e  52 The  SCALE EXTREMES t r a n s f o r m a t i o n  extremes present  i n a motion.  b = a <SCALE EXTREMES assigns  to  had e v e r y number  motion  keyframes  i s unchanged  ' a ' w h i c h has  s c a l e d by a f a c t o r o f  present of  keyframe  the statement  'b' an i n s t a n c e o f m o t i o n  ' a ' , a n d t h e number keyframe  the  0.5>  keyframe extreme  of  Thus,  scales  0.5.  The  i n 'b' r e m a i n s t h e same a s i n  intermediate  frames  between  each  ( F i g u r e 21 a n d 2 3 ) .  Figure  23  M o t i o n b f r o m b = a <SCALE EXTREMES 0.5>  S u c h an a p p r o a c h t o m o t i o n m o d i f i c a t i o n g i v e s many  transformations  the  needs  as  well  that  o f an a n i m a t i o n "as  manipulation  sequence.  the operations  t h a t an i n t i m a t e k n o w l e d g e definitions  can t a i l o r  are  not  at a high  to  motion p r i m i t i v e s t o  These  transformations,  '*' a n d '+', have t h e a d v a n t a g e  of a model's necessary.  level  rise  s t r u c t u r e and motion They  of a b s t r a c t i o n .  allow  motion  Chapter 5 CREATING ANIMATION  5.1 TOOLS FOR ANIMATION  Once a model i s d e f i n e d a n d m o t i o n s f o r t h e m o d e l been  created,  animation  the  model  can  be  animated.  A  have  typical  statement i s  ANIMATE model_name FROM s t a r t _ f r a m e TO e n d _ f r a m e USING motion_name [ REPEAT ] where  'model_name'  'motion_name' applied and  to  is a  predefined  previously  t h e model.  'end_frame'  animation.  is a  are  specified  articulate motion  The f r a m e i d e n t i f i e r s temporal  They a r e d e f i n e d  endpoints  relative  of  model; that  is  ' s t a > r t _ f rame' the  model's  t o the beginning  of a  scene.  The  REPEAT  keyword  unspecified, the animation  motion  sequence;  i s optional. i s assumed  the  model  to  f o r the  entire  time  span  t h e REPEAT i s the  span.  does  not  the  motion  i s a u t o m a t i c a l l y repeated 53  define  The REPEAT i s u s e d  whenever t h e m o t i o n d o e s n o t s p a n t h e e n t i r e m o d e l sequence;  entire  remains frozen a t i t s l a s t  s p e c i f i e d o r i e n t a t i o n , i f the motion used movement  If  animation u n t i l the  54 t i m e span  i s covered.  Care  motions that are repeated. as t h e motion a  model's  i s finished  positional  must  be  taken  in  creating  Severe d i s c o n t i n u i t i e s  and r e s t a r t e d .  orientation  can a r i s e  For best  results,  s h o u l d be s i m i l a r a t b o t h  endpoints of the motion.  Once  the  ANIMATE  statement  i s executed, a  o b j e c t o f t h e name 'model_name' i s a v a i l a b l e language present  ( i . e . the host language t r e a t s i n a frame a s  statement link.  a  graphical  capabilities  of  graphical  object throughout a scene. tools  to  which c o n t r o l  w i t h a r t i c u l a t e models,  host  instance  The  ANIMATE  host  translate  main  language the  to  resulting  L I G ANIMATE p r o v i d e s a  t h e complex  motions  associated  but i t does not r e p l a c e t h e  function  the host language.  Models structure) identically  o f t h e same  class  and  with different-sized  models  when  animated  by  ( i . e . models  the  same  c o n t a i n i n g an e q u a l number b u t d i f f e r e n t still the  each model  the  the  of  the  produces a n i m a t i o n w i t h r e s p e c t t o a model's  I t i s the r e s p o n s i b i l i t y  of  to  object).  provide  set  graphical  of  identical  segments  motion.  m o d e l movements may be d i f f i c u l t  M o d e l s p l a c e r e s t r i c t i o n s on t h e i r movements. if  a rotation  i s employed  that v i o l a t e s  the  joint will  e n f o r c e i t s extreme  Models  t y p e s of j o i n t s can  be d r i v e n by t h e same m o t i o n s p e c i f i c a t i o n s , resulting  react  to predict.  For  a joint's  rotation  limit  however,  example, extremes, over  the  55 motion s p e c i f i c a t i o n g i v e n . models  of  the  same  behave r e a l i s t i c a l l y  Once  the  class,  elements  but d i f f e r e n t  permits  two  restrictions, to  I N I T I A L I Z E SCENE  f o r a s c e n e have been d e f i n e d , t h e specified with  A typical  initialize  restriction  u s i n g t h e same m o t i o n .  s c e n e c a n be e x p l i c i t l y components.  This  static  and  dynamic  statement c r e a t i n g a scene i s scene_identifier  scene  environment  STARTSCENE LENGTH s c e n e _ l e n g t h [ SAMEFRAME i m a g e s p e r f r a m e  ]  ANIMATE model_name FROM .... ANIMATE any d y n a m i c m o d e l s  movements w h i c h v a r y w i t h t i m e ( c a m e r a movements, p a n n i n g , zooming, e t c . )  ENDSCENE where  'scene_identifier'  scene i n s t a n c e ; displayed  scene.  By  STARTSCENE  during  the  the scene. to  SAMEFRAME  the  ENDSCENE  option;  is  specify  the  static  prior  statements are  generated d u r i n g the scene. the  unique  identifier number  f o r the  of  frames  The I N I T I A L I Z E s e c t i o n o f t h e  environment  default, and  a  'scene_length'  scene p e r m i t s a user initializes  is  to  information  that  t h e e x e c u t i o n of a  present  e x e c u t e d once  between f o r each  The d e f a u l t c a n be  changed  i t allows a user t o d i s p l a y  the frame by  several  56 images  of  each  model on t h e f r a m e .  when r e a l - t i m e o u t p u t c a p a b i l i t i e s model  produces  easier  several  examination  hardcopy  images  of  a  This option  are per  model's  i s useful  unavailable.  frame,  Each  thus a l l o w i n g  movements  when  using  devices.  The  s c e n e s d e f i n e d a r e d i s p l a y e d by t h e s t a t e m e n t :  SHOOTSCENES The  scenes a r e d i s p l a y e d  the  i n sequential order beginning  lowest scene i d e n t i f i e r  scene  constructs  sequence  can  Animated  be  t o t h e h i g h e s t one.  i s advantageous broken  the  independent  scenes  ordering  The u s e o f  the animation  i n t o a s e t of independent scenes.  f i l m s c a n be c r e a t e d on  simplifying  because  from  animation also  a  piecewise  process.  permits  without  any  knowledge  statement  has  been  The  changes of  basis,  thus  creation  in  t h e frame  the  of  scene  identifiers  involved.  A  w i t h i n t h e SCENE c o n s t r u c t . BACKGROUND o b j e c t l , defines a l i s t the  static  of  object2, object3,  a  i n t h e scene  background.  f o r use p r i m a r i l y  The s t a t e m e n t  of g r a p h i c a l objects that  background  definition  introduced  If  scene.  ... are displayed  Placing  initialization  the  section  as  BACKGROUND defines  a  t h e BACKGROUND s t a t e m e n t i s p l a c e d  57 between  the  STARTSCENE a n d ENDSCENE, t h e u s e r  new o r m o d i f i e d  can d e f i n e a  b a c k g r o u n d f o r each scene's frame  graphical objects  that are modified  by  using  throughout the l i f e  of a  scene.  LIG  ANIMATE  user  access  to  s t r u c t u r e of v a r i a b l e s of t h e type  MODEL,  however,  possible  to  restricts  observe a model's i n t e r n a l  the i n t e r n a l i t is  relationships.  The  statement PRINT v a r i a b l e l ,  v a r i a b l e 2 , ...  displays the i n t e r n a l either  status  of  variables.  Variables  MODEL o r MOTION t y p e may be d i s p l a y e d .  Specifying a  m o d e l ' s name i n a PRINT s t a t e m e n t p r o d u c e s a l i s t i n g model's  i n t e r n a l node r e l a t i o n s h i p s .  name w i t h t h e s y m b o l  '$' p r o d u c e s a  model's symbol t a b l e . listing  Preceding  status  of  of  the  t h e model's  report  of  the  S p e c i f y i n g a m o t i o n ' s name p r o d u c e s a  of t h e keyframe i n f o r m a t i o n  currently stored  i n the  mot i o n .  A model's i n t e r n a l ANIMATE  processes  database i s stored symbol  table  r e l a t i o n s h i p s a r e d i s p l a y e d when L I G  i t s source in  the  information  code  preprocessor.  used independently  the  The  i s not d i s p l a y e d u n t i l  code i s c o m p i l e d and run because t h i s at t h e host language l e v e l .  because  information  The PRINT s t a t e m e n t  model's  motion  and  the object is  stored  i s normally  o f c o n s t r u c t s , h o w e v e r , t h e s t a t e m e n t may  58 be  u s e d w i t h i n t h e SCENE c o n s t r u c t  to obtain  model's symbol t a b l e a t each scene  the s t a t u s of a  frame.  5.2 MODEL TRAVERSAL  A  model's  traversed frame).  e a c h t i m e a model i s  p o s i t i o n a l angle, to  the  information and  structure  displayed  is  (i.e.  completely once  traversal  i s obtained  current of  each  joint's  v e l o c i t y , and a c c e l e r a t i o n  the  model.  from b o t h t h e  The s y m b o l  motion  table  specification  the i n t e r p o l a t i o n routines.  The  traversal  routine.  It  extremities model. that  is  traversal  algorithm  assembles  inward) w i t h  The  language.  each  is  a  recursive  model's  respect  subsequently Recursive  displayed routines  because they a l l o w  by are  storage  main  whose m a i n l i n k s  (f,rom t h e  link  i n the  i s a graphical the  host  employed  object  graphical in  the tree  of the model's p r i m a r y -  r e l a t i o n s h i p i n the recursion  recursion also simplifies  post-order  instance  t o the  r e s u l t i n g model i n s t a n c e  secondary l i n k of  tree  A model's symbol t a b l e i s updated w i t h each  current prior  internal  stack.  t h e model t r a v e r s a l  ( r o o t s ) have been c h a n g e d .  on  The u s e models  59 5.3  LEVELS OF  LANGUAGE USAGE  The L I G ANIMATE l a n g u a g e may levels  of  abstraction.  The  be u s e d a t t h r e e d i f f e r e n t  motion  algebra,  STRIP  SYNCHRONIZE f u n c t i o n s , and e x p l i c i t  motion d e f i n i t i o n  on  levels with  e a c h l e v e l more  below  The  different  that  the l e v e l d i r e c t l y  subset  of  third  the  The with  language.  information  The At  second  level.  programmers the  abstract  which  by  level  Each l e v e l  levels  i s characterized  by t h e amount  of  algebra.  t h e u s e r need n o t know t h e s t r u c t u r e o f t h e being  animated.  The  a model i s p r e s e n t w h i c h meets t h e d e s i r e d  specific  a  allows  l e v e l e n t a i l s t h e use o f t h e m o t i o n  level,  may  is  d i f f e r e n t l e v e l s of s o p h i s t i c a t i o n t o use  t h a t a s e t of motions e x i s t which animate user  flexible  i s , i n t u r n , a s u b s e t of the  differentiation  m o t i o n p r i m i t i v e s o r t h e model, assumes  first  reside  known by t h e p r o g r a m m e r .  first  this  i t .  and  then  expand  the  need  model.  on t h i s m o t i o n s e t t o c r e a t e  t o the a n i m a t i o n sequence  desired.  Usage  l e v e l assumes t h e u s e r h a s had a programmer c r e a t e and b a s i c m o t i o n s n e c e s s a r y o r t h a t a l i b r a r y  user and The  motions at  this  t h e model  of models  and  motions i s a c c e s s i b l e .  The STRIP  second l e v e l  and  incorporates  SYNCHRONIZE o p e r a t i o n s .  must have k n o w l e d g e  the  use  At t h i s  of  the  level,  JOINT, the user  of b o t h t h e motion p r i m i t i v e s b e i n g used  60 and t h e m o d e l b e i n g a n i m a t e d . details  of  the  movements  The  u s e r need  present  however, knowledge  needed.  t h e u s e r must know t h e j o i n t  in both the removed  model  one  and  step  from  the  of t h e i r  motions.  the  details  existing  t o c r e a t e more c o m p l e x  motion  primitives  l e v e l , the  from  the joint  effect  identifiers programmer  is used is  necessary i n e x p l i c i t  At t h i s  new  overall  The  motion d e f i n i t i o n . submodels  know  i n each motion's  specification, Also,  not  user  portions  can  build  m o d e l s and  of  on  create  those  already  the  explicit  present.  The  third  definition  of  and models  highest and  level  entails  m o t i o n ; t h e u s e r knows  detailed  i n f o r m a t i o n of t h e m o d e l ' s s t r u c t u r e and  each  keyframe  the  third  level  joint-motion  specifications.  The  most f l e x i b l e and a l l o w s t h e d e f i n i t i o n models  and  motions.  The  o f t h e most  u s e r knows t h e e x t r e m e s  m o t i o n and d e c i d e s on t h e n a t u r e o f t h e  interpolation  to  This  create  either  the  intermediate  directly  or i n d i r e c t l y  frames.  by a l l u s e r s .  level  of  i s the detailed of  each used  i s used  Chapter  6  CONCLUSION  Three-dimensional is  similar  c o m p u t e r a n i m a t i o n , i n some r e s p e c t s ,  t o c l a y , puppet,  o r model a n i m a t i o n .  In  three-  d i m e n s i o n a l a n i m a t i o n , t h e model, p r o p s , and backgrounds a r e b u i l t and p a i n t e d . one  frame  of  model a l i t t l e procedure  A motion  the f i l m  p i c t u r e camera i s p r e p a r e d  i s exposed.  and a n o t h e r  The a n i m a t o r  frame i s exposed.  of t h e p e r s i s t e n c e o f v i s i o n , when t h e s e s i n g l e at  moves t h e  Repeating  i s t h e process of c r e a t i n g a n i m a t i o n .  projected  and  this  As a r e s u l t frames  are  an a p p r o p r i a t e r a t e t h e y a p p e a r t o b l e n d  into  movement [ 2 1 ] .  The of t o o l s  o b j e c t of t h i s t h e s i s  i s t o g i v e a programmer a s e t  f o r m o d e l l i n g complex a r t i c u l a t e  controlling  their  movements.  In  figures  and f o r  addition,  movement  s y n t h e s i z i n g t o o l s are s u p p l i e d that decrease work a s s o c i a t e d w i t h g e n e r a t i n g e x p l i c i t for a r t i c u l a t e computer  figures.  models  of  motion  much  L I G ANIMATE a l l o w s t h e c r e a t i o n  figures,  in  space.  by c h a n g i n g  the  descriptions  props  and b a c k g r o u n d s .  c o p i e s o r i n s t a n c e s o f a m o d e l c a n be u s e d a n d t h e y manipulated  of  their  size,  of Many  can  p o s i t i o n and o r i e n t a t i o n  L I G ANIMATE removes t h e b u r d e n o f r e p r e s e n t i n g  f i g u r e ' s segment r e l a t i o n s h i p s 61  be  from t h e h o s t language.  a  Yet,  62 the  host language  produced  by  i s allowed access t o the g r a p h i c a l  the  model  at  each a n i m a t i o n frame.  ANIMATE s y s t e m d o e s n o t r e p l a c e t h e language. with  The s y s t e m i s r e s p o n s i b l e  respect  responsible simplifies the  to  describe  approach  movement  language  movement a s a u n i t .  animation  Defining  because  the  a  systems  the  realistic  graphics  but  remains  L I G ANIMATE still  allow  a  allows  user  to  both the models  [1].  Other  systems  f o u n d i n n a t u r e a n d by  motion  [23].  using  T h e s e m e t h o d s t e n d t o be i s o l a t e the user  from  and m o t i o n s .  has  a s i m p l e r approach t o t h e problem of  animation s p e c i f i c a t i o n which f a l l s dynamics  structure  must be c o n t r o l l e d by t h e  e x p e n s i v e and u s u a l l y  ANIMATE  of  is  t e c h n i q u e s t o c r e a t e s e p a r a t e movements w h i c h  computationally  level  sequence  p r o b l e m by a s s i g n i n g c o n s t r a i n t s t o t h e l i m b s  p a r t of t h e f i n a l  LIG  walking  of the w a l k i n g object  r e l a t e t o the constraints  strength  host  host  a s s o c i a t e d with the host language.  computer  goal-directed  the  the  f o r a model's  t h e work o f t h e h o s t l a n g u a g e  motion dynamics  motion  of  The L I G  m o t i o n s f o r t h r e e - d i m e n s i o n a l o b j e c t s by g e o m e t r i c  difficult  are  the  f o r t h e model's  descriptions.  that  itself;  flexibilities  Many  function  object  and  goal d i r e c t i o n .  animation  present associated  between  in  of  I t attempts to raise by  extending  the  high-level graphical  languages.  One  approach  is  with  specification  t h e extremes  LIG  ANIMATE's  63 flexibility.  For example, the  independently  o f t h e L I G ANIMATE p r e p r o c e s s o r .  can  use e x i s t i n g  ones. can  interpolation  subroutines,  Interpolation subroutines  easily  be added  realistical created  without  LIG  for  from a h i g h  s c r i p t s a r e employed  specific  level  inseparable).  events,  which  can thus  more  allowing  between models,  have a t t e m p t e d t o a p p r o a c h Directors  and  models  ( i . e . t h e model a n d m o t i o n a r e  systems  lack  change  the  the  They a l s o do n o t p e r m i t For  new  a l s o be  [ 5 , 1 4 ] , however, t h e a r t i c u l a t e  Such  model i n s t a n c e s . created  allowing  of a b s t r a c t i o n .  sequences, or t o  w i t h a model.  add  preprocessor.  systems  implemented as p r o c e d u r e s  animation  thus  Interpolations  t h e L I G ANIMATE  animation  defined  A programmer  or can  s y n c h r o n i z a t i o n by message p a s s i n g  Several  are  t h a t a r e more s o p h i s t i c a t e d  ANIMATE,  movement.  check  modifying  animation  to  model  that  animation  are  interpolations  example,  motions  to  add  associated  the transformation of  i f a  a n i m a t e s a man w a l k i n g ,  must be w r i t t e n t o a n i m a t e a c h i l d  ability  procedure  has  a separate  procedure  walking,  even though  been  the  s t r u c t u r e of both models i s i d e n t i c a l .  LIG  ANIMATE  allows  a  structured  c r e a t i o n of both models and m o t i o n s . be  c o a r s e l y d e f i n e d and s u b s e q u e n t l y  level. specified  For  example,  a  walking  approach  to  the  M o d e l s and m o t i o n s c a n refined motion  to  a  desired  c a n i n i t i a l l y be  t h a t p r i m a r i l y r e l i e s on t h e u s e o f a m o d e l ' s  hip  64 and s h o u l d e r Once  the  joints;  hip  t h e r e s t of t h e  and  shoulder  movements a s s o c i a t e d  with  movements  the  m o t i o n ' s movements  remains  are  secondary  k n e e s , e t c . ) c a n be s p e c i f i e d . c r e a t i o n of motion because  model  rigid.  correct,  joints  the  (elbows,  This approach s i m p l i f i e s the  i t i s possible  to  deal  with  a  individually.  The same a p p r o a c h c a n be a p p l i e d t o m o d e l . d e v e l o p m e n t . A m o d e l may be d e f i n e d w i t h o n l y t h e m a j o r development approach  p r o c e e d s more  to  internal  model d e v e l o p m e n t  s t r u c t u r e c a n be  graphical  joints  objects  that  can  be  j o i n t s and as t h e added.  Another  i s also possible.  specified represent  A  independently the segments,  For example,  a b l o c k may  segment; t h e segment c a n s u b s e q u e n t l y complex proceed  polygonal  structures.  independently  dimensions  of  initially  of  model's  represent a  be r e p r e s e n t e d  by mote  T h i s segment d e v e l o p m e n t  of a model's  definition,  the  therefore,  t h e g r a p h i c a l o b j e c t s c a n be m o d i f i e d t o r e d e f i n e a appearance.  model's  provided  can the  the g r a p h i c a l o b j e c t s remain e s s e n t i a l l y t h e  same.  LIG because  ANIMATE's data  generation  specifications. simplified A  approach t o d e f i n i n g motion i s f l e x i b l e  Human  by d e r i v i n g  software motion  orientation  create  specification  r e a l time data  human c a n be w i r e d w i t h d e v i c e s  measure p o s i t i o n a l  can  from  motion can  instrumentation.  (electrogoniometers)  [8].  be  that  The movements p e r f o r m e d  65 by t h e human  can  be  a n i m a t e human  models.  recorded  and  subsequently  As i s t h e c a s e w i t h most p r o j e c t s , be  beneficial.  rotational a  LIG  joints  further  ANIMATE c u r r e n t l y  (i.e.  used  work  restricts  (i.e.  within  a joint  t h e s e c o n d a r y segment r o t a t e s  in  which  the  secondary  about  Prismatic  link  slides  t h e p r i m a r y l i n k ) a r e commonly u s e d i n r o b o t i c  L I G ANIMATE c o u l d be e x t e n d e d joints,  rather  than  to  permit  permitting  only  the  change  in  sequence.  size  and  shape  ability  of a l l joints.  segments  size  could  be  t e c h n i q u e ; t h e l a n g u a g e woul'd  the a p p r o p r i a t e segments  arms.  which  throughout a model's a n i m a t i o n  The s e g m e n t ' s shape a n d  a, k e y f r a m e  use  rotational  F u r t h e r work c o u l d p e r m i t t h e s y s t e m t o u s e  using  would  joints to  p i v o t a l p o i n t l o c a t e d on t h e p r i m a r y s e g m e n t ) .  joints  to  during  the  would a l l o w t h e metamorphosis  in-between  animation. of models  defined  Such  an  (e.g. a mail  box c o u l d c h a n g e i n t o a human d u r i n g a s c e n e ) .  LIG  ANIMATE  i s designed  l a n g u a g e , a n d t o be e x e c u t e d preprocessor  translates  i n t o procedure c a l l s . command l a n g u a g e t h a t are p o s s i b l e . predefined  as  in  a  an  batch  a l l extended Other  extension t o a host environment.  language statements  implementations,  such  i s i n t e r p r e t e d by an e x e c u t i v e  as  and  motions.  At  present,  d e f i n i t i o n s must be made a t t h e b e g i n n i n g o f an  a  kernel,  The b a t c h e n v i r o n m e n t c o m p l i c a t e s t h e u s e models  A  of  these  application  66 program  before  animation  they  studios  can  be  build  up  employed. the  Most  equivalent  of a  c a t a l o g of m o d e l s t h a t a r e a v a i l a b l e f o r f u t u r e Ideally,  there  should  motions defined be  assigned  and  the  before  animation  The Unless  and  u s i n g LIG  use a  of  to  determine  useful  what  specified  model's  m o d e l s and  had  [10].  a library.  would  Subsequent  f o r the models  approach would the  and  and  increase  creation  of  a  model and  new  problem.  the  associated  p r e v i o u s l y w o r k e d w i t h them, i t i s d i f f i c u l t a  This technique  S u c h an  motions  d e f i n i t i o n s creates a  t o have a v i e w i n g  predefined  work  ANIMATE.  has  m o t i o n s , o r has  in  speed a s s o c i a t e d w i t h  library  user  m o d e l s and  load d e f i n i t i o n s  u s i n g them.  flexibility  The  stored  p r o g r a m s w o u l d need o n l y motions  shopping  be a method t o a r c h i v e t h e m o d e l s  i n a program.  names  computer  p o t e n t i a l movements. utility  m o t i o n s i n an  would a l l o w the  been  that permits  previously  to  defined  be  viewing  of>  the  interactive  user  I t would  environment.  determine  exactly  and  further  what  d e f i n i t i o n s must be made i n t h e a p p l i c a t i o n p r o g r a m .  LIG systems. at  a  ANIMATE  has  I t permits  high  level  several  the m o d e l l i n g  and  over  animation  of  existing figures  of a b s t r a c t i o n from w i t h i n a programming  language thus a l l o w i n g the application  advantages  programs  Where many s y s t e m s c a n  implementation  of  sophisticated  t h a t a r e e a s y t o r e a d and not  e a s i l y work w i t h  understand.  rotations,  LIG  67 ANIMATE  deals  rotations can  rotations  effectively.  enables the creation  of g e n e r a l i z e d  be a p p l i e d  specifications the  specific  Articulate  with  t o m o d e l s o f t h e same j o i n t using models  paths  and f o r c e s  for  which  figures are frequently  The  use  motions which  structure;  can only  they  were  interpolated  motion  be u s e d on designed.  at the point  l e v e l because a two-dimensional p r o j e c t i o n  of the f i g u r e  used.  the  The  approach  three-dimensional on  a  to  the  interpolation), three-dimensional  permits  f i g u r e s and t h e i r subsequent  rotational  correspond  presented  thus  basis  (i.e.  keyframe allowing  animation.  the  drawings  for easier  is  m o d e l l i n g of interpolation  rotational in  of  extremes  two-dimensional s p e c i f i c a t i o n of  BIBLIOGRAPHY  [I]  Armstrong, W.W., a n d M. G r e e n , The D y n a m i c s o f A r t i c u l a t e d R i g i d Bodies f o r Purposes of A n i m a t i o n , Graphics I n t e r f a c e '85, 1985, p p . 4 0 7 - 4 1 5 .  [2]  B a d l e r , N . I . , J . O'Rourke, a n d B. K a u f m a n , S p e c i a l Problems i n Human Movement Simulation, Computer G r a p h i c s , V o l . 14, No. 3, 1980, p p . 189-197.  [3]  B a d l e r , N . I . , a n d S.W. S m o l i a r , D i g i t a l R e p r e s e n t a t i o n s of Human Movement, ACM C o m p u t i n g S u r v e y s , V o l . 11, No. 1, 1979, p p . 19-38.  [4]  Baecker, Conference  R.M., Picture-Driven Animation, AFIPS P r o c e e d i n g s , V o l . 34, 1969, p p . 273-288.  [5]  Bergeron, Computer 215-222.  P., A S t r u c t u r e d M o t i o n S p e c i f i c a t i o n i n 3D Animation, G r a p h i c s I n t e r f a c e '83, 1983, p p .  [6]  B o o t h , K.S., D.H. Kochanek, a n d M. W e i n , Computers A n i m a t e F i l m s a n d V i d e o , I E E E S p e c t r u m , V o l . 2 0 , No. 2, 1983, p p . 4 4 - 5 1 .  [7]  B u r t n y k , N., a n d M. W e i n , C o m p u t e r - G e n e r a t e d Key-Frame Animation, S o c i e t y o f M o t i o n P i c t u r e + TV E n g i n e e r s , V o l . 8 0 , 1 9 7 1 , p p . 149-153.  [8]  C a l v e r t , E., J . Chapman, a n d A. P a t l a , The S i m u l a t i o n of Human Movement, G r a p h i c s I n t e r f a c e '82, 1982, p p . 227-234.  [9]  C a t m u l l , E., The P r o b l e m s o f C o m p u t e r - A s s i s t e d Animation, Computer G r a p h i c s , V o l . 12, No. 3, 1978, p p . 348-353.  [ 1 0 ] C h u a n g , R., G. E n t i s , 3D S h a d e d Computer Animation, Step-by-Step, Computer Graphics Theory and A p p l i c a t i o n s , S p r i n g e r - V e r l a g , T o k y o , 1983. [ I I ] H o r n , B.K.P., K i n e m a t i c s , S t a t i c s , a n d D y n a m i c s o f TwoDimensional M a n i p u l a t o r s , A r t i f i c i a l I n t e l l i g e n c e : An MIT P e r s p e c t i v e , V o l . 2, 1979. 68  69 [12]  Korein, J.U., and N.I. Badler, Techniques for Generating the Goal Directed Motion of A r t i c u l a t e d S t r u c t u r e s , I E E E Computer Graphics and Applications, V o l . 2, No. 9, 1982, pp. 7 1 - 8 1 .  [13]  Magnenat-Thalmann, N., and D. Thalmann, Actor and Camera D a t a T y p e s i n Computer Animation, Graphics I n t e r f a c e '83, 1983, pp. 203-207.  [14]  Magnenat-Thalmann, N., a n d D. Thalmann, Oriented 3D Shaded Computer Animation, I n t e r f a c e '84, 1984, pp. 1-7.  [15]  McGhee, R.M., Control of Legged L o c o m o t i o n Systems, P r o c . 1977 J o i n t A u t o m a t i c C o n t r o l C o n f e r e n c e , V o l . 1, pp. 2 0 5 - 2 1 3 .  [16]  McKeeman, W.M., J . J . Horning, and D.B. Wortman, A Compiler Generator, Prentice-Hall, Englewood Cliffs, 1970.  [17]  Paul, R.P., M a s s . , 1981.  [18]  P e r e z , L., and M.A. W e s l e y , An A l g o r i t h m for Planning Collision-Free Paths Among Polyhedral Obstacles, C o m m u n i c a t i o n s o f t h e ACM, V o l . 22, 1979, p p . 560-570.  [19]  R o s s , R., A H i g h - l e v e l Graphics Programming Language Supporting the I n q u i r y of G r a p h i c a l O b j e c t s , M.A.Sc• T h e s i s , The U n i v e r s i t y o f B r i t i s h C o l u m b i a , 1982, 88 pp.  [20]  R o s s , R., LIG6: Language for Interactive Graphics, U s e r ' s Manual, Department of E l e c t r i c a l Engineering, The U n i v e r s i t y o f B r i t i s h C o l u m b i a , 1982, 55 pp.  [21]  Sachter, J . , 3-D Computer G e n e r a t e d A n i m a t i o n , P r o c . 4 t h Symposium on S m a l l C o m p u t e r s i n t h e A r t s , 1984, pp. 42-49.  [22]  Schrack, G.F., D e s i g n , I m p l e m e n t a t i o n and E x p e r i e n c e s with High-level Graphics Language for Interactive C o m p u t e r - A i d e d D e s i g n P u r p o s e s , Computer G r a p h i c s , V o l . 10, No. 1, 1976, pp. 10-17.  [23]  Zeltzer, D., Motor C o n t r o l Techniques f o r Figure Animation, I E E E Computer Graphics and A p p l i c a t i o n s , V o l . 2, No. 9, 1982, pp. 5 3 - 5 9 .  [24]  Zeltzer, D., Representation of Complex Animation F i g u r e s , G r a p h i c s I n t e r f a c e '82, 1982, pp. 2 0 5 - 2 1 1 .  DirectorGraphics  R o b o t M a n i p u l a t o r s , MIT P r e s s , C a m b r i d g e ,  APPENDIX A A L I G ANIMATE PROGRAM  The L I G ANIMATE p r o g r a m shown on was  used t o c r e a t e  11.  P R I M I T I V E BOX i s  creates  graphical  the animation a  LIG6  objects  the  following  sequence p r e s e n t graphical  processed  by  the  LIG  statements a r e copied program  demonstrates  an a r t i c u l a t e  i n Figure  subprogram  f o r t h e f i g u r e ' s segments.  s t a t e m e n t s f l a g g e d w i t h an a s t e r i s k i n t h e f i r s t ANIMATE  preprocessor.  to the preprocessor the a b i l i t y  70  column The  target f i l e .  which The are host This  o f L I G ANIMATE t o a n i m a t e  f i g u r e w h i l e a l l o w i n g the host  t o t h e f i g u r e as a u n i t .  pages  language  access  71 P R I M I T I V E BOX p r o d u c e s a 3D r e c t a n g l e o f a r b i t r a r y h e i g h t , w i d t h a n d d e p t h . The r e c t a n g l e i s d e f i n e d about the o r i g i n . Width i s along the X a x i s . Height i s along the Y a x i s . Depth i s a l o n g t h e Z a x i s . P R I M I T I V E BOX REAL HEIGHT, WIDTH, DEPTH, LIGHT, LIGHT2 VECTOR CENTRE, FTR, F T L , FBR, F B L , BTR, BTL, BBR, BBL BOX  ::= 'BOX' ['AT' CENTRE ' , ' ] <CENTRE = ( 0 . 0 , 0.0, 0.0)> 'WIDTH' WIDTH ', ' 'HEIGHT' HEIGHT ' , ' 'DEPTH' DEPTH [','  'LIGHTNESS' LIGHT]<LIGHT = 40.0> ;  LIGHT2 = LIGHT * 1.5 FTR FTL FBL FBR BTR BTL BBL BBR  = = = = = = = =  CENTRE FTR FTL FTR FTR BTR BTL BTR -  + (WIDTH/2, HEIGHT/2, DEPTH/2) (WIDTH, 0.0, 0.0) ( 0 . 0 , HEIGHT, 0.0) ( 0 . 0 , HEIGHT, 0.0) ( 0 . 0 , 0.0, DEPTH) (WIDTH, 0.0, 0.0) ( 0 . 0 , HEIGHT, 0.0) ( 0 . 0 , HEIGHT, 0.0)  Set  the drawing  parameters  DRAW WITH <LIGHTNESS LIGHT> Back DRAW POLY FROM (BTR) TO ( B T L ) TO ( B B L ) TO (BBR) TO (BTR) Set  the drawing  parameters  DRAW WITH <LIGHTNESS LIGHT2> Top DRAW POLY FROM (FTR) TO (BTR) TO ( B T L ) TO ( F T L )  Bottom  TO ( F T R ) (FBR) TO (BBR) TO (BBL) TO ( F B L ) TO ( F B R )  DRAW L e f t POLY FROM DRAW POLY FROM ( F T L ) TO ( B T L ) TO ( B B L ) TO ( F B L ) TO ( F T L )  Right DRAW POLY FROM (FTR) TO (BTR) TO (BBR) TO (FBR) TO ( F T R ) Set t h e drawing  parameters  DRAW WITH <LIGHTNESS LIGHT> Front DRAW POLY FROM (FTR) TO ( F T L ) TO ( F B L ) TO (FBR) TO (FTR) RETURN END GRAPHICAL GRAPHICAL VECTOR REAL  HEAD, BODY, TORSO FARM, BARM, FLEG, BLEG, FOOT LOCATN, DISTAN VUWID, TORWID, FRMNUM  MODEL HUMAN, LARM, RARM, LLEG, RLEG MOTION SQUAT D e f i n e t h e m o d e l ' s HEAD HEAD  :- BOX WIDTH 0.30, HEIGHT 0.30, DEPTH 0.16  D e f i n e t h e m o d e l ' s TORSO BODY :- BOX WIDTH 0.56, HEIGHT 0.86, DEPTH 0.36 TORSO :- (HEAD + BODY<TRANS(0.0, - 0 . 5 8 , 0.0)>) <TRANS(0.0, 0.58, 0.0)> D e f i n e t h e model's l i m b s (Forearm, Backarm, F o r e l e g , B a c k l e g ) FARM :- BOX WIDTH 0.22, HEIGHT LIGHTNESS 25.0 BARM :- BOX WIDTH 0.22, HEIGHT LIGHTNESS 25.0 FLEG :- BOX WIDTH 0.30, HEIGHT LIGHTNESS 25.0 BLEG :- BOX WIDTH 0.30, HEIGHT LIGHTNESS 25.0  0. 48, DEPTH 0. 14, 0. 48, DEPTH 0. 14, 0. 58, DEPTH 0. 18, 0. 40, DEPTH 0. 18,  D e f i n e t h e m o d e l ' s FOOT FOOT :- BOX WIDTH 0.42, HEIGHT 0.13, DEPTH 0.10, LIGHTNESS 25.0  73 C  D e f i n e t h e model's r i g h t  * * *  RARM :- JOINT 1, BARM, ( 0 . 0 , -0.24, 0 . 0 ) , FARM, ( 0 . 0 , 0.24, 0 . 0 ) , ( 0 . 0 , 0 . 0 ) , ( 0 . 0 , 0 . 0 ) , ( 0 . 0 , 135.0)  *  LARM :- RARM <TRANS JOINTS BY 1>  C  D e f i n e t h e model's r i g h t  *  STARTMODEL RLEG  *  and l e f t  and l e f t  arms  legs  JOINT 3, BLEG, ( 0.00, -6.20, 0 . 0 ) ,  * * * * * *  FLEG, (0.0, JOINT 4, FLEG, FOOT, (0.0, ENDMODEL  ( 0.00, 0.29, 0 . 0 ) , 0 . 0 ) , ( 0 . 0 , 0 . 0 ) , (-150.0, 0.0) (-0.05, - 0 . 2 9 , 0 . 0 ) , (-0.11, 0.06, 0 . 0 ) , 4 5 . 0 ) , (-25.0, 2 5 . 0 ) , ( - 5 0 . 0 , 50.0)  *  LLEG :- RLEG <TRANS JOINTS BY 2>  C  Add t h e e x t r e m i t i e s t o t h e model HUMAN  * * * * * * * * * * * * * * * *  HUMAN :- JOINT  7, TORSO, ( 0 . 0 0 , 0 . 4 0 , - 0 . 1 8 ) , RARM, ( 0 . 0 , 0.24, 0 . 0 ) , ( 0 . 0 , 1 8 0 . 0 ) , (-20.0, 2 0 . 0 ) , (-90.0, 180.0) HUMAN :- JOINT 8, HUMAN, ( 0 . 0 0 , 0.40, 0 . 1 8 ) , LARM, ( 0 . 0 , 0.24, 0 . 0 ) , ( 0 . 0 , 1 8 0 . 0 ) , (-20.0, 2 0 . 0 ) , » (-90.0, 180.0) HUMAN :- JOINT 9, HUMAN, ( 0 . 0 0 , - 0 . 4 0 , - 0 . 1 8 ) , RLEG, ( 0 . 0 , 0.24, 0 . 0 ) , (-45.0, 4 5 . 0 ) , (-45.0, 4 5 . 0 ) , (-90.0, 135.0) HUMAN :- JOINT 10, HUMAN, ( 0 . 0 0 , - 0 . 4 0 , 0 . 1 8 ) , L L E G , ( 0 . 0 , 0.24, 0 . 0 ) , (-45.0, 4 5 . 0 ) , (-45.0, 4 5 . 0 ) , (-90.0, 135.0)  C  Define t h e motion  * * * * * * * * * * * *  STARTMOTION SQUAT JOINT 1 POSITION 0.0, 0.0, 135.0 JOINT 2 POSITION 0.0, 0.0, 135.0 JOINT 3 POSITION 0.0, 0.0, 0.0 FRAME 5 POSITION 0.0, 0.0,-135.0 INTERPOLATE ACCELERATE JOINT 4 POSITION 0.0, 0.0, 0.0 FRAME 5 POSITION 0.0, 0.0, 45.0 INTERPOLATE ACCELERATE JOINT 5 POSITION 0.0, 0.0, 0.0 FRAME 5 POSITION 0.0, 0.0,-135.0 INTERPOLATE ACCELERATE  SQUAT  JOINT 6 POSITION 0 . 0 , 0 . 0 , 0 . 0 FRAME 5 POSITION 0 . 0 , 0 . 0 , 4 5 . 0 INTERPOLATE ACCELERATE JOINT 9 POSITION 0 . 0 , 0 . 0 , 0 . 0 FRAME 5 POSITION 0 . 0 , 0 . 0 , 9 0 . 0 INTERPOLATE ACCELERATE JOINT 10 POSITION 0 . 0 , 0 . 0 , 0 . 0 FRAME 5 POSITION 0 . 0 , 0 . 0 , 9 0 . 0 INTERPOLATE ACCELERATE ENDMOTION FIGURE HUMAN MAIN LINK FOOT I N I T I A L I Z E SCENE 1 VIEW POINT = ( 0 . 0 , 0 . 0 , 4 . 0 ) VIEW WIDTH = 7 . 5 DISTAN  = ( 6.0, 0.0, 0.0)  LOCATN  =  (-2.0,  0.0,  0.0)  STARTSCENE LENGTH 6 SAMEFRAME 6 ANIMATE HUMAN FROM 0 TO 5 USING SQUAT HUMAN :- HUMAN <TRANS  (LOCATN)>  LOCATN = LOCATN + (DISTAN / 5 . 0 ) ENDSCENE SHOOTSCENE STOP END  APPENDIX B IMPLEMENTATION NOTES  The  language  University  of  5850 c o m p u t e r following contained  LIG  British under  MTS  ANIMATE Columbia  the  commands  i n the f i l e  is  on  Computing C e n t r e ' s  Michigan will  implemented  Terminal  execute  the Amdahl  System.  The  a L I G ANIMATE p r o g r a m  LIGPROGRAM.  $RUN LIGANIMATE.0 SCARDS=LIGPROGRAM SPRINT=-OUTPUT SPUNCH=-LIGCODE PAR=NEW=35 L I S T = - L I S T $RUN L I G 6 : L I G 6 SCARDS=-LIGCODE SPUNCH=-FTN $RUN *FTN SCARDS=-FTN SPUNCH=-FTNOBJ $RUN -FTNOBJ+LIG6:LIB+LIGANIMATE.LIB  Several s t a t i s t i c s  regarding the implementation  ANIMATE h a v e been o b t a i n e d . PASCAL  using  resulting 6,312  a  top-down  and o c c u p i e s a d i s k  c o n t a i n s 4096 b y t e s ) . compilation file  Compiler  Writing  System.  This represents a l i s t i n g file  LIG  The p r e p r o c e s s o r was w r i t t e n i n  p r e p r o c e s s o r c o n s i s t s o f 229 p r o c e d u r e s  l i n e s of code.  of  c o n t a i n i n g 56 p a g e s  The o b j e c t c o d e  The  totalling  o f 124 p a g e s  (each d i s k  resulting  from  page the  of t h e p r e p r o c e s s o r source code r e q u i r e s a d i s k  o f 50 p a g e s a n d i t t a k e s 0.334 s e c o n d s o f CPU  load.  75  time  to  76 The 28  run-time l i b r a r y  subroutines  consisting  represents a l i s t i n g 12 p a g e s . file  The  was w r i t t e n of  1,151  resulting  translation  equivalent extension  LIG6  that  of  with  i n a run-time  occurs  to  1.139  depends  a  LIG  ANIMATE  program,  involves  the  LIG6  statements  library.  using  The  replacement  motion  and p r o d u c e a l i s t i n g .  11  statements.  was  defined  e q u i v a l e n t L I G 6 c o d e c o n t a i n s 29 f a c t o r of  1.8.  and  of  calls  actual  99  to  expansion  statement  In  program  s e c o n d s a n d c o s t $0.29 f o r t h e p r e p r o c e s s o r  2.4. The  c o n t a i n s 75 s t a t e m e n t s , an e x p a n s i o n SQUAT  of  i n t o an  upon t h e p r o g r a m b e i n g p r o c e s s e d .  t h e L I G ANIMATE p r o g r a m was  defined  This  file  program  a n a l y s e t h e p r o g r a m , c r e a t e an e q u i v a l e n t  LIG6 for  CPU  l i n e s of code.  time t o l o a d .  t h e p r o g r a m shown i n A p p e n d i x A, t h e took  contains  o b j e c t c o d e r e q u i r e s a 12 page d i s k  program  constructs  subroutines  i t  o f 22 p a g e s a n d o c c u p i e s a d i s k  a n d t a k e s 0.083 s e c o n d s o f CPU  The  i n LIG6;  using  234  statement  The e x p a n s i o n The  HUMAN  equivalent factor 16  model  was  LIG6  code  6.8.  The  statements.  The  statements,  of  factor  an  expansion  

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0051891/manifest

Comment

Related Items