Open Collections

UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Animation palette : an interface for prototyping dynamic aerial motions Zhao, Peng 2004

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

Item Metadata


831-ubc_2004-0708.pdf [ 11.52MB ]
JSON: 831-1.0051538.json
JSON-LD: 831-1.0051538-ld.json
RDF/XML (Pretty): 831-1.0051538-rdf.xml
RDF/JSON: 831-1.0051538-rdf.json
Turtle: 831-1.0051538-turtle.txt
N-Triples: 831-1.0051538-rdf-ntriples.txt
Original Record: 831-1.0051538-source.json
Full Text

Full Text

Animation Palette: A n Interface for Prototyping Dynamic Aerial Motions by Peng Zhao B . E . , Tsinghua University, 2000  A THESIS SUBMITTED IN PARTIAL F U L F I L L M E N T O F THE REQUIREMENTS  FOR T H E DEGREE OF  Master of Science in T H E F A C U L T Y OF G R A D U A T E STUDIES (Department of Computer Science)  We accept this thesis as conforming to the required standard  The University of British Columbia August 2004 © Peng Zhao, 2004  IUBCL  FACULTY OF GRADUATE STUDIES  THE UNIVERSITY OF BRITISH COLUMBIA  Library Authorization  In presenting this thesis in partial fulfillment of t h e r e q u i r e m e n t s for an a d v a n c e d d e g r e e at t h e University of British C o l u m b i a , I a g r e e that t h e Library shall m a k e it freely available for reference a n d study. I further a g r e e that p e r m i s s i o n for e x t e n s i v e c o p y i n g of this thesis for scholarly p u r p o s e s m a y be g r a n t e d by t h e h e a d of m y d e p a r t m e n t or by his or her r e p r e s e n t a t i v e s . It is u n d e r s t o o d that c o p y i n g or publication of this thesis for financial g a i n shall not be a l l o w e d w i t h o u t m y written p e r m i s s i o n .  ?  t  0  N a m e of A u t h o r (please  Date (dd/mm/yyyy)  print)  Title of T h e s i s :  Year:  Degree:  Xoof  D e p a r t m e n t of T h e University of British C o l u m b i a Vancouver, BC  Canada  p a g e 1 of 1  last updated:  20-Jul-04  Abstract  T h i s thesis presents an interface for the interactive design of dynamic aerial stunts, such as platform diving, freestyle aerial ski jumps and half-pipe snowboarding. T h i s has applications for the prototyping of sports motions or for computer character animation i n video games. T h e user selects from a library of actions, such as "stand", "pike" and "extend", i n order to create a motion. Some actions define a set of target joint angles for proportional-derivative controllers, while others invoke balance controllers employing closed-loop feedback.  A real-time physics based simulation  determines the final motion. A motion can be created interactively i n real-time, or edited off-line to allow for incremental refinement. M o t i o n timings can be optimized automatically to produce desired outcomes.  T h e interface can be used to explore  questions such as "Is this new stunt possible?" or "What if the pike began earlier?" We demonstrate the interface using simulations of platform diving (29 unique dives), freestyle aerial ski jumps (13 unique jumps), and half-pipe snowboarding (4 unique jumps).  ii  Contents  Abstract  ii  Contents  iii  List of Tables  vi  List of Figures  vii  Acknowledgements 1  2  ix  Introduction  1  1.1  A n i m a t i o n Methods  1  1.2  Motivation  2  1.3  A n Example  4  1.4  Contribution  5  1.5  Thesis Organization  5  Related Work 2.1  7  Physics-based A n i m a t i o n  •  7  2.1.1  Constraint-based Approaches  8  2.1.2  Controller-based Approaches  8  iii  2.2  F i n i t e State Machine Controllers  9  2.3  Interactive Interfaces for Character A n i m a t i o n  10  2.4  Summary  11  .  3 The Animation Palette Interface  12  3.1  Interface and Workflow  12  3.2  A c t i o n Buttons  14  3.2.1  K i n e m a t i c Actions  15  3.2.2  D y n a m i c Actions  15  3.3  3.4  Switching Between Actions  16  3.3.1  K i n e m a t i c to K i n e m a t i c Transitions  17  3.3.2  D y n a m i c to D y n a m i c Transitions .  17  3.3.3  K i n e m a t i c to D y n a m i c Transitions  18  3.3.4  D y n a m i c to K i n e m a t i c Transitions  19  Summary  19  4 Prototyping Dynamic Aerial Motions  20  4.1  M o t i o n Stages and Stage Parameters  20  4.2  D y n a m i c Controllers  24  4.3  4.4  4.2.1  Proportional-derivative Controller  4.2.2  Balance Controller  25  Offline M o t i o n Refinement  28  4.3.1  M a n u a l Adjustment  28  4.3.2  Automatic Optimization  30  Summary  •.  24  32  iv  5 Implementation and Results  33  5.1  Dynamics Simulation  33  5.2  Character Models  35  5.3  Platform D i v i n g  36  5.4  Freestyle A e r i a l S k i J u m p i n g  40  5.5  Half-pipe Snowboarding  45  5.6  User Experiences  46  5.7  Summary  ;  6 Conclusions and Future Work  47  50  6.1  Improved D y n a m i c Controller Actions . . .  50  6.2  Natural Motion  51  6.3  G a m e P a d Interface  51  Bibliography  52  Appendix A Dynamic Model Details  56  Appendix B Description of Virtual Buttons  60  v  List of Tables  5.1  Dimensions of kicker jumps  41  A.l  Physical parameters of diver model.  A.2  Joint strength of diver model. . .  57  A.3  Physical parameters of skier model  57  A.4  Joint strength of skier model  58  A.5  Physical parameters of snowboarder model  58  . .  56  A . 6 Joint strength of snowboarder model  59  B. l  Description of diving buttons  60  B.2  Description of buttons for aerial ski jump control  61  B.3  Description of buttons for snowboard control  61  vi  List of Figures  1.1  E x a m p l e of animation created online using our system  4  3.1  Interface of A n i m a t i o n Palette  13  3.2  C o n t r o l of kinematic motions  16  3.3  A kinematic action to dynamic action transition  18  4.1  Simulated platform diving and ski j u m p i n g  21  4.2  5 stages for forward somersaults pike  22  4.3  Three examples of stage parameters  23  4.4  Sagittal plane balance control i n standing  25  4.5  Lateral balance control i n standing  26  4.6  Lateral balance control i n crouching  27  4.7  Interface for offline design  29  4.8  Dive entry before and after optimization of the time for extension.  4.9  S k i landing before and after optimization of the time for stretch.  .  31  . .  31  5.1  Degrees of freedom used for diving, snowboarding and skiing models.  35  5.2  States of Platform D i v i n g  36  5.3  Platform diving: forward 1^ somersault pike w i t h one twist  38  5.4  Platform diving: backward l i somersault pike  38  vii  5.5  Platform diving: reverse I5 somersault tuck  .  5.6  Platform diving: bad entry for inward l\  5.7  States of S k i J u m p i n g  40  5.8  Specification of ski-hill  41  5.9  Dimensions of kicker jumps  41  somersault pike  5.10 S k i j u m p : double twisting double back  flip  39 39  43  5.11' S k i j u m p : front pike single  43  5.12 S k i jump: back layout-tuck-layout  44  5.13 S k i j u m p : bad landing for a back-full-full  44  5.14 States of Half-pipe Snowboarding  45  5.15 Section view of half-pipe  46  5.16 Half-pipe snowboarding: back-grab  '  48  5.17 Half-pipe snowboarding: front-grab  48  5.18 Half-pipe snowboarding: back 360  49  5.19 Half-pipe snowboarding: crash landing for back-grab  49  viii  Acknowledgements First, I would like to thank my supervisor, Michiel van de Panne, for leading me into the world of computer animation. His guidance and encouragement was invaluable. I would also like to thank A l i a Sheffer and Jason Harrison for giving me useful comments to improve my thesis. T h a n k s to other members i n Imager lab, who I was pleasant to work w i t h . In particular, I wanna thank Hamish C a r r for his suggestions on my thesis project, thank K e n A l t o n for his help i n my English, and thank Dave Burke for introducing me into the group of playing the Quake game. I am grateful to my friends here, including Shuzhen Wang, X i a o j i n g W u , L o n g L i , P i n g d o n g A i , Yushuang L i u , D a n X i a o , L i n Zhong, Q i a n Huang, Kangkang Y i n , C h e n Yang, Zhijin W a n g and many others. T h e y made my life i n U B C a wonderful memory. Finally, I'd like to thank my parents and my wife, Huanchun R e n , for their endless love and support.  PENG  The University of British Columbia August 2004  ix  ZHAO  Chapter 1 Introduction  Computer animation is a rapidly developing area i n computer science, w i t h applications such as feature films, digital simulators, computer games and virtual'reality. Improved techniques are required to simplify and speed up the process of creating convincing animations.  One key direction involves the use of physical simulation  to generate physically realistic motions. T h i s thesis presents an approach for the interactive design of dynamic aerial stunts. Before further discussing the motivation of our thesis, we w i l l first provide a brief overview of methods for creating human figure animations.  1.1  Animation Methods  B r o a d l y speaking, there are three widely used methods to make computer animations: keyframing, motion capture and dynamic simulation. In keyframe character animation [3], the animator defines the position of all parts of characters at specific points i n time. These specified positions are known as keyframes.  T h e computer  then computes the in-between frames using an interpolation algorithm. A l t h o u g h  1  keyframing is time consuming and requires significant skill, it remains the method of choice i n many animated productions because of the complete control it offers the animator. A straightforward approach for generating realistic motion is to use a motion capture system [18] to record the 3D motion of a human actor and then map this motion onto an animated character.  T h e ability to blend and transition between  motions is very important for motion capture based animation system i n order to provide adequate flexibility to create the wide range of desired animated motions required by video games, for example. Another key technology is that of retargeting the pre-recorded motions to an animated character having different dimensions from the person used to capture the motion, which is a common occurrence. One disadvantage of this approach is that it is difficult to alter captured motions to realistically interact w i t h environments different from the one i n which they are obtained. D y n a m i c simulation [26] is a potentially powerful t o o l for m a k i n g physically realistic animations. It has been used to b o t h analyze and animate many classes of motion, including diving, running, and gymnastic motions. A major challenge in creating physically-based animation is that of solving for the required control to achieve desired behaviours, especially for complex models such as humans and many animals. Typically, this necessitates a great deal of trial-and-error i n the design of the controllers for any given motion.  1.2  Motivation  Presently, animators have used all three of the methods described above to produce high quality animations. For interactive applications such as video games, however, the animated characters need also respond to various environments, such as varying 2  terrains and interaction with obstacles. In this case, the simulation approach has advantages over the keyframing and motion capture. Also, the speed of today's computers now enables us to simulate a fully dynamic-based character in real-time. Recent games incorporate "rag doll" simulations which involve no active control. We believe this is due to the difficulty of designing controllers and that of defining appropriate interfaces between the game player and the game character. We present an interface which exploits the structured nature of acrobatic aerial movements to simplify the specification of physically-based prototypes of such motions. Specifically, we support platform diving, acrobatic ski jumping and halfpipe snowboarding based upon fully dynamic character simulations. Our system, called "Animation Palette", represents the required actions using a series of sequentially executed stages. For example, platform dives typically have the following sequence of actions: stand, crouch, takeoff, an aerial position such as a tuck or a pike, and extension prior to entry into the water. The complete diving motion can be created through the proper timing and execution of all these stages. Our interface maps each possible action for any given stage to an on-screen two dimensional virtual button. The timing of the button press represents when the specified action begins, and the exact location of the press on the button is used to represent two additional parameters which gives greater control over the action to be executed. When the interface is used in an online fashion, the simulation runs in real-time to produce the animation. As a result, the user is able to control a 3D character simulator in a fashion that is analogous to steering a plane via a flight simulator. The interface can also be used in an off-line fashion. For off-line design, we incorporate a timeline into the interface to represent the sequence of user inputs.  3  Virtual Buttons Control Parameters  F i g u r e 1.1: E x a m p l e o f a n i m a t i o n c r e a t e d o n l i n e u s i n g o u r s y s t e m .  T h e user c a n refine t h e t i m i n g a n d l o c a t i o n p a r a m e t e r s o f p r e v i o u s o n l i n e i n p u t s a n d t h e n s i m u l a t e t o see w h e t h e r t h e d e s i r e d r e s u l t is a c h i e v e d . A l s o , g i v e n a m e t r i c t o e v a l u a t e t h e q u a l i t y o f a m o t i o n , e.g., t h e w a t e r e n t r y a n g l e for a p l a t f o r m d i v e , our s y s t e m c a n a u t o m a t i c a l l y o p t i m i z e the t i m i n g of a specified i n p u t to achieve the best outcome.  1.3  A n Example  F i g u r e 1.1 s h o w s a n e x a m p l e o f o u r interface for d e s i g n i n g a c r o b a t i c a e r i a l m o t i o n s . T h e a n i m a t o r uses a m o u s e o r s t y l u s t o choose w h a t a c t i o n t h e s i m u l a t e d c h a r a c t e r  4  should do and how it should be performed by clicking at the appropriate position inside the v i r t u a l button. O u r system then maps the t i m i n g and position parameters of these selections to controllers that compute the torque at each joint to drive the motion of the dynamic character. A physics-based simulation calculates the external forces such as gravity, and determines the final motion. B o t h the physical simulation and graphical rendering r u n i n real time to provide the user w i t h immediate feedback, displaying the animation as it is being created.  1.4  Contribution  T h e primary contribution of this thesis is to provide a method for the interactive control of 3D physically-based characters. Specifically, we present an interface for prototyping dynamic aerial motions such as platform diving. T h i s interface presents the control parameters of the simulation i n an understandable manner, which allows the user w i t h little knowledge of the underlying control mechanisms to make various of dynamic aerial motions i n a short time. We develop a system that implements this interface technique and use it to design three types of stunts: platform diving, freestyle aerial ski jumps, and halfpipe snowboarding.  T h i s system demonstrates the feasibility of designing sports  games based upon fully dynamic character simulations, as well as the possibility of creating useful tools for sports prototyping.  1.5  Thesis Organization  T h e remainder of this thesis is structured as follows.  After reviewing previous  related work i n Chapter 2, we provide an overview of the structure of our interface  5  in Chapter 3. Chapter 4 describes the components of our interface and the specific actions that our system currently supports. Chapter 5 demonstrates a variety of results obtained using our interface. Finally, Chapter 6 presents conclusions and future work.  6  Chapter 2 Related Work T h e use of dynamic simulation to design animation is a topic of interest in the area of character animation. T h i s chapter describes the work which is particularly relevant to ours. F i r s t , we provide an overview of methods for producing physicsbased animation. We then discuss the work specific to controllers based on finite state machines. Finally, relevant work on interactive control for character animation is reviewed.  2.1  Physics-based Animation  Physical simulations can simplify the work required to generate realistic motions of passive objects, such as sliding blocks, bouncing balls, or clothing. However, for active objects such as humans and animals, we must also solve for the control mechanism to direct their movements. These must determine how the muscles act in order to produce desired motions.  There are two different approaches to this  problem, one is constraint-based and the other is controller-based.  7  2.1.1  Constraint-based Approaches  Constraint-based techniques [2, 4, 16, 35] attempt to generate the animation through an optimization of a specified objective function subject to the constraints.  Typi-  cally, the motions are defined as a trajectory w i t h a collection of constraints imposed at specific times, such as the starting and ending positions. T h e physics is also i m posed as a constraint by adding the equations of motion as a constraint for each time step. T h e entire space-time trajectory is then optimized w i t h respect to an objective, e.g., m i n i m u m control energy or m i n i m u m time, to achieve a unique "best" solution, thereby solving for a complete motion as a single optimization problem. T h e work of [8] presents an approach which can scale well to more complex characters using a set of objective functions and constraints that lead to linear time analytical first derivatives.  More recently, this approach has been expanded u p o n i n interactive  techniques developed to control physical simulations of passive objects [23]. Space-time constaint techniques have several limitations. T h e solution derived by constraint-based techniques must be recomputed i n new situations for which it was not calculated. Also, the available numerical methods often do not converge to acceptable answers because of spurious local m i n i m u m .  2.1.2  Controller-based Approaches  Another approach, that of controller-based techniques, is to synthesize a controller that activates the muscles to perform some action. For instance, the locomotion of snakes [19] and the walking motion of cockroaches [17] have been produced w i t h periodic controllers. In many cases, controllers are designed by hand [11, 36], which requires carefully fine-tuning the control parameters.  There are also several meth-  ods based on automatically synthesizing controllers [31, 32] using stochastic search  8  strategies.  These automatic synthesis techniques work well only for finding con-  trollers for simple creatures w i t h a small number of degrees of freedom.  T h i s is  because the space of possible controllers becomes exceedingly large as the degrees of freedom increase, which makes it difficult for the stochastic search method to locate useful solutions. One of the principle advantages of using controller-based techniques is that controllers are generally reusable and composable [6, 7, 27, 33]. A reusable controller can potentially be used to achieve a given motion w i t h i n different environments. Composable controllers may be composed sequentially over time to generate a sequence of motions, which is what the user does w i t h our system. T h a t is, the user chooses controllers for certain actions and arranges them i n particular order to create the entire animation.  2.2  Finite State Machine Controllers  Controllers can be based on finite state machines, which exploit the  structured  nature of certain motions, representing each phase of motion by a single state. T h e transitions between states can be time-based [31] that occurs after the controller has spent a prespecified time i n a given state, or sensor-based [10] that occurs on a particular event. [11] created the animation of running, bicycling and vaulting using finite state motion control. These controllers are designed by hand which is difficult i n that it requires specifying and testing many control parameters at each state. [31] presented an algorithm to automatically generate-and-test these parameters for relatively simple creatures and motions. T h e work of [14] uses a local stabilization technique upon a state machine model for the bipedal locomotion. T h e animations created i n our system are similar to the work of [36], which 9  explored the creation of three simulated 10m platform dives. T h e controller i n that work is also based on a finite state machine model, w i t h all the parameters tuned by hand. We provide a system for user based mid-level control, which significantly speeds up the creation of new motions by exposing all the key parameters i n a readily accessible fashion, as shown i n Figure 1.1. A s a result, we are able to rapidly author many new motions, as demonstrated by the set of 46 motions across 3 sports that we have authored to date using the system.  2.3  Interactive Interfaces for Character Animation  There are many kinds of interactive interfaces for character animation. Most of them are based on kinematic approaches [15, 24], which copy particular joint angles from an input device, or copy things such as the positions of the hands or feet and then use inverse kinematics (IK) to compute joint angles.  [21] developed a framework  that used the two 6 - D O F tracking devices to control a 3 3 - D O F character by layering motions i n several passes. [37] uses a foot pressure sensor pad to interactively control avatars.  [28] demonstrates sketch-based interface for animating an articu-  lated human character.. T h e system presented i n [5] presents a novel mimic-then-act interface for creating animations. T h e increase of computer processor speed has made it possible to simulate the motion of articulated human models i n real-time. T h i s provides opportunities to extend the interactive control approaches used i n flight and driving simulators to physically-simulated human figures. E a r l y work on the use of interactive control for physically-based character was presented i n [29, 30], which proposed the use of manual manipulation to control the motion of bipedal characters. T h e work of [13] mapped the 2D movements of a mouse and keystrokes to control parameters i n order 10  to design the motion of planar models. However the system d i d not provide support for refining inputs and there are potential scalability problems for 3-dimensional motions. O u r system employs additional levels of abstraction i n the interface and allows for the control of 3D character motion.  T h e timeline component of our  interface further supports the refinement of timing parameters. M o r e recently, [22] demonstrates interaction w i t h a partial dynamic 3D simulation for stepping motions. Our system is focussed specifically on dynamic-based aerial motions. More recently, N a t u r a l M o t i o n has developed an industrial software, called endorphin  [1], for dynamic motion synthesis. T h i s software allows users to instruct  characters like directors instruct actors by choosing from an extensive list of available behaviours, such as balancing, jumping, and staggering. T h e A l and biomechanics techniques built i n this system enable the simulated character to interact realistically w i t h the environment. For example, when characters walk over a swaying bridge, they t r y to negotiate the bridge's movements for keeping balance.  T h e motions  created i n our system depend mostly on user-based control which exploits the user's knowledge and intuition. T h e system-based control is only for maintaining balance during standing and crouching.  2.4  Summary  We have presented the work from the computer animation literature that is related to our method. O u r system builds on previous work i n controller-based animation and interactive interfaces, as applied to 3D characters. T h e key ideas are embodied i n our animation palette interface, which we describe i n detail i n the following chapter.  11  Chapter 3  The Animation Palette Interface The core of our animation system consists of an  Animation Palette, which is intended  to be analogous to a painting palette. Simply put, it provides a library of actions for the user to interactively select. T h e user can specify b o t h when a particular action should happen and how it should be done, such as "walk quickly i n this direction" and "fall to the left." T h i s chapter presents an overview of this system, while the following chapter elaborates on the specifics of how it is used to create dynamic aerial motions.  3.1  Interface and Workflow  Figure 3.1 shows an example interface of our system.  The top part is a window  displaying the animation that is being created. T h e inset-window i n the b o t t o m left corner of the animation window serves to show information related to the current action, such as the action name and the target pose . T h i s inset-window is helpful 1  for refining the motion offline, which is discussed i n section 4.3.1. 1  T h i s term will be defined shortly.  12  13  Below the animation window is a palette w i t h 14 action buttons, one for each possible action. E a c h button defines an action and has two associated parameters that can be directly specified by the relative location of the user mouse-click or stylus-tap w i t h i n the action button. T h e meanings of the two parameters are defined according to the attributes of the action. T h e specific details of the palette and actions are presented later i n sections 3.2 and 4.1. T h e bottom part of the interface is a timeline, which represents the sequence of user inputs. T h e user can adjust the timing and parameters of previous action events and then replay or resimulate to see the result. For dynamic aerial motions, our system can automatically optimize the timing of a specified input to achieve the best outcome. T h i s process is described i n further detail i n section 4.3.2. A typical workflow starts by interactively creating an animation through the use of the action buttons.  T h i s is an online process,, that has the user specifying  actions during an ongoing physics-based simulation of the character. T h e user then manually fine-tunes the motion offline using the timeline provided i n our interface, or can resort to using the automatic timing optimization feature.  3.2  Action Buttons  There are two basic classes of actions i n our system, kinematic actions and dynamic actions. K i n e m a t i c actions produce kinematically-generated animation, i.e., it i n volves a direct specification of positions and orientations over time and does not involve the use of a physics-based simulation. For dynamic actions, motions are the result of physical simulation, which models of the body mass and moments of inertia, internal and external forces and torques, and interaction w i t h the environment.  14  3.2.1  Kinematic Actions  O u r system supports two types of kinematic actions, keyframe-based and motion capture-based.  T h e first allows the user to specify parameterized keyframes.  For  instance, a "Point" action may use the x and y v i r t u a l button parameters to indicate the direction of the finger pointing, thus various pointing actions could be specified by clicking different positions of a "Point" button. A n alternate technique for kinematic animation is the use of motion capture clips. In this case, the two parameters are used to offer high level control over the motion sequence. Figure 3.2 shows two examples of this. T h e "Walk" b u t t o n tells the character to walk, and the click position of this b u t t o n controls the direction (9) and speed (v = k • r, where A; is a constant) of walking. Likewise for the "Fall" button, the y position specifies the forward distance of the fall and the x position indicates the direction of the fall relative to the current walking direction.  3.2.2  Dynamic Actions  D y n a m i c character motions include both passive "rag doll" simulation and the use of active controllers. For passive simulations, the x and y parameters specify the environment properties such as the gravity and ground elasticity, or some inactive attributes of the character such as the joint stiffnesses. In our system, the majority of action buttons for prototyping dynamic aerial motions implement active controllers.  T h e x and y parameters of click position  are used to parameterize the controllers, such as the target pose for proportionalderivative controllers, and the target lean angle for balance controllers. T h e details of this w i l l be elaborated i n section 4.1 and A p p e n d i x B .  15  tl  t  2  Figure 3.2: Control of kinematic motions.  3.3  Switching Between Actions  W h e n action A is i n progress and a user then selects action B, we need a method for transitioning between these two types of actions. A s stated above, our interface supports both kinematic actions and dynamic actions. T h i s section discusses the four types of transitions that can occur during animation, namely kinematic to kinematic transitions, dynamic to dynamic transitions, kinematic to dynamic transitions, and dynamic to kinematic transitions.  10  3.3.1  Kinematic to Kinematic Transitions  Transitions between kinematic actions i n our system are computed by blending from one animation to another over a period of 0.5 seconds. W e blend the global position, global orientation, and joint angles using a linear interpolation method. T h i s can work well when the new motion is sufficiently similar to the current motion. Other issues need to be solved to expand the range of motions between which we can make realistic transitions, such as the footskate cleanup. W e do not solve this problem because the focus of our work is on generating and controlling dynamic aerial motions.  3.3.2  Dynamic to Dynamic Transitions  Transitioning between dynamic motions is straightforward because it involves a simple substitution of controllers. T h e continuity of the motion is guaranteed because the state of the system (positions and velocities) is preserved when the new dynamic action begins. T h e new controller begins control over the simulated character immediately upon the user choosing a new dynamic action. For example, the "landing" action of ski jumps happens once the user selects it and drives the character toward the pose preparing for landing. Note that the new controller does not provide a guarantee of a successful motion. Rather, it relies on the user's experience and perception to determine whether the character can successfully perform landing. Developing "automatic landing" controllers for actions which are difficult to reliably achieve is not w i t h i n the scope of this thesis.  17  Kinematic Motion  I Dynamic Motion Switch to Dynamic Simulation  Figure 3.3: A kinematic action to dynamic action transition.  3.3.3  K i n e m a t i c to D y n a m i c  Transitions  D u r i n g kinematic to dynamic transitions, current positions and computed velocities for the degrees of freedom of the character become the initial states of the physical simulation which is initiated. Thus, the animated characters w i l l initially preserve their linear and angular momentums immediately after the transition, which results in a natural-looking motion. Figure 3.3 shows an example of this. T h e character i n red represents the first animation frame after the transition from a kinematic motion to the dynamic simulation.  After that point the character can have physically-  realistic interaction w i t h the environment, such as the collisions w i t h the block and the tree.  18  3.3.4  Dynamic to Kinematic Transitions  T h e dynamic to kinematic transition is a hard problem which requires a large library of motion clips and adaptive blending algorithms. In our system, we simply stop the physical simulation and do a straight cut to the kinematic action, which thus results i n a visible discontinuity i n the motion.  3.4  Summary  T h e animation palette interface provides a library of parameterized actions for the user to choose. These actions can be kinematic or dynamic. T h e user can interactively select among them to create a motion sequence, or refine them offline to improve u p o n a previous animation. In the next chapter, we w i l l discuss i n detail the use of dynamic actions for prototyping acrobatic aerial motions.  19  Chapter 4 Prototyping Dynamic Aerial Motions  Interactively controlling 3D dynamic characters is challenging due to the number of degrees of freedom ( D O F ) and issues such as the difficulty of maintaining balance. T h e interface should ideally be sufficiently expressive for the user to create a large variety of motions while still being tractable to learn. T h e animation palette provides a generic framework for creating animations, and we shall use it to design dynamic aerial stunts. Figure 4.1 shows two examples of the types of simulated motions that can be rapidly constructed using our interface.  4.1  Motion Stages and Stage Parameters  T h e structured nature of acrobatic aerial motions makes it possible to represent the required actions using a series of sequentially executed stages. For example, platform dives can typically be represented by the following sequence of actions: stand, crouch, takeoff, an aerial position such as a pike or a tuck, and extension.  20  A  Figure 4.1: Simulated platform diving and s k i j u m p i n g . user can create the complete diving motion through specifying the proper timing and execution of all of these stages. A s an example, Figure 4.2 illustrates the stages for forward somersaults i n a pike position for platform diving. T h e simplest of our presented motions have 4 stages, while the most complex have 8 stages. Throughout the remainder of the thesis, the words stage and action w i l l be used interchangeably. We use one action button for controlling each possible action. T h e t i m i n g of the button selection represents when the associated action takes over the control of the simulated character, while two action parameters are given by the x and y location of the selection w i t h i n the button.  These action parameters serve to  parameterize the action to make a variety of motions. The following list describes the types of action parameters used i n our system.  • Target joint angle: Sets the desired angle of a single joint for proportionalderivative controllers discussed i n section 4.2.1. For example, the x-location of the takeoff button specifies the desired bend angle of the waist during a takeoff j u m p .  • Target body position: Indicates the desired position of several joints. For  21  Stand Forward  Crouch Arms-Up  Takeoff Forward  Pike  Come-out  Figure 4.2: 5 stages for forward somersaults pike. instance, the x-location of the open pike button click represents the target angle of the pike, which is a combination of the waist and hip angles. • Stiffness  of joint:  Designates the stiffness of one or more joints for the  proportional-derivative controllers, which is helpful to create j u m p i n g motions w i t h different heights. • C e n t e r o f m a s s : Denotes a target position for the center of mass relative to the location of ankles. T h i s is an important parameter for the standing and crouching actions and preparing the body for a somersault, as illustrated i n section 4.2.2. • Speed of performance:  Specifies how fast the character w i l l reach the  given target pose. It is important for most aerial actions like pike or tuck and it is discussed i n detail i n section 4.2.1. • I n i t i a l s t a t e : Represents the starting locations of the motions. For example, in the case of ski jumps, this parameter specifies the starting height on the hill leading towards the ski jumps.  Figure 4.3 shows three examples of action buttons used i n our platform diving interface.  T h e two key parameters for the crouch action are the lean angle and  22  (a) Crouch  (b) Takeoff  (c) Open Pike  Figure 4.3: Three examples of stage parameters. the height of crouch, which are mapped to the x parameter and the y parameter respectively. T h e lean angle is determined by the position of center of mass relative to the location of ankles, and is implemented i n our system by setting the target lean angle of the balance controller discussed i n section 4.2.2. T h e height of crouch is determined by the target hip and knee angles. T h e important attributes for the takeoff action are the initial rotation momentum, as determined by the target waist bend angle while taking off (x), and the height as determined by the stiffness of the hips and knees while j u m p i n g (y). For the open-pike action, the controllable parameters are the target angle of pike (x), which is a combination of the waist and hip angles, and the speed to reach this pose (y), which is determined by the interpolation duration of the target angles discussed i n section 4.2.1. A complete summary of the set of buttons used for the platform diving, acrobatic ski j u m p i n g , and snowboard control is given i n A p p e n d i x B .  23  4.2  Dynamic Controllers  In order for a given dynamic action to be realized, we need to determine low-level controllers that compute how much torque each joint should exert i n order to achieve the desired result.  There are two classes of controllers used i n our system, one  for driving the character toward target poses and another class of controller for maintaining balance. We now discuss each of these i n turn.  4.2.1  Proportional-derivative Controller  T h e joint torques that drive joint angles toward their desired values are computed using proportional-derivative ( P D ) controllers:  T = kp • (8* desired  @current)  ^d ' ^ i  where r is the torque applied at the joint, Qdesired is the desired joint angle, 0current is the current joint angle, 0 is the relative angular velocity of the two links connected by that joint, and k , kd are proportional and derivative control constants. p  T h e values of k  p  and kd control the strength of the actuator for each joint,  which should be strong enough to achieve particular desired actions. A p p e n d i x A gives the specific control constants used for our dynamic models. For the hip, knee, and ankle joints, their control constants are different across various actions. example, the "stand" action usually requires higher k  p  For  and kd values at the ankles  than the "pike" action. Linear interpolation of the target angles, i.e., ^desired-, is used between targetangle poses i n order to produce smooth transitions between the most recent pose and a newly chosen pose. T h e duration of the interpolation is exposed as one of the motion parameters for many actions, such as pike and tuck. 24  COM  Figure 4.4: Sagittal plane balance control i n standing.  4.2.2  Balance Controller  M a i n t a i n i n g balance is crucial for stages that preceed and follow the aerial portions of the motion. Balance control can depend on many factors, such as the distance between two feet and the placement of two feet. In our system, we focus on the balance during a regular stance w i t h the feet being spaced at shoulder w i d t h . According to [34], balance in the sagittal plane can be modeled as an inverted pendulum about the ankle joint, as shown i n Figure 4.4. T h e torque due to gravity is M-g-h-  sin(/9) KM  -g-h-9,  where M is the mass of the character, g is gravitational acceleration, h is the height from the ankle to the Center O f Mass ( C O M ) , and 6 is the leaning angle as measured in radians. T h e torque exerted by the spring muscle at the ankle is r = k • 8. A s p  long as k > M-g-h, p  the ankle w i l l be sufficiently strong to maintain the equilibrium  position. T h e addition of damping i n the ankle joint torque ensures that the body  25  Figure 4.5: Lateral balance control i n standing. w i l l eventually stop near the target leaning angle, which is set by the x parameter of the "Stand" and " C r o u c h " buttons. T h e body can no longer maintain balance when the lean angle is such that the projection of C O M onto the ground plane falls outside the support polygon of two feet. However, such a body position is required before a j u m p i n order to initiate angular momentum. T h e front-back balance controller thus does not only serve to maintain balance, but also to prepare the b o d y for somersaults. Using the ankles for lateral stability is not very stable because the w i d t h of foot is much smaller than the length of foot. Thus, other joints must be used to help keep lateral balance. T h e hip abductor and adductor moment can move the Center O f Pressure ( C O P ) between two feet, which draws the C O M back to the equilibrium position. For human during the quiescent stance, the lateral balance is dominated by this hip load-and-unload strategy [34]. Figure 4.5 shows the character in the frontal plane, i n which the equilibrium position is the point midway between  2G  Figure 4.6: Lateral balance control i n crouching.  the two feet. T h e torques of the hip abductor and adductor are computed using a spring-damper model:  T — /up * X  ' 35  where x is the distance between the C O M and its equilibrium position and x is the velocity of the C O M . In the crouched position, a knee-based strategy is used for lateral balance. Similar to the hip strategy, the knee flexor and extensor also serve to move the location of the C O P i n order to control the C O M . For example, extending the left knee and flexing the right knee w i l l move the C O M to the right. Figure 4.6 illustrates a crouching character, using knee joints to maintain lateral balance. M a i n t a i n i n g balance is a challenging part of creating dynamic character motions. T h e mechanisms discussed above can only solve the balance problem i n some cases. For complex problems, such as the landing of the skier and the snowboarder,  27  we need to develop more adaptive controllers. T h i s is discussed as future work i n Chapter 6.  4.3  Offline Motion Refinement  Our system supports both online and offline authoring of aerial motions. Online use of the interface enables the creation of simulated animations i n real time through the use of the action buttons during an ongoing simulation. Offline  adjustments  can be used to refine the resulting motions, through either manual adjustment or automatic optimization.  4.3.1  Manual  Adjustment  M a n u a l adjustments are useful for producing a motion through iterative refinement and is supported through the use of a timeline included at the b o t t o m of the interface panel. E a c h v i r t u a l button press introduces an event that is displayed on the timeline, as shown i n Figure 4.7. T h e t i m i n g of this event can be adjusted directly on the timeline by dragging w i t h the mouse.  Selecting any event marker on the  timeline also allows for the associated action parameters to be altered, as specified by the selection point w i t h i n the associated v i r t u a l button. In Figure 4.7, the red cross-hairs drawn on the "Takeoff" button illustrate the current parameter settings associated w i t h a selected takeoff action. These parameters can be adjusted w i t h a mouse or stylus press at the desired location w i t h i n the button.  Once a set of  desired adjustments has been made, the user hits a "Resimulate" button i n order to review the newly refined motion. Unlike during online creation, manual adjustments offline have no real-time feedback of the animation. Nevertheless, there are several useful feedback signals 28  Selected Action  Timeline Cursor 1  Inputs Figure 4.7: Interface for offline design.  29  Optimization Result  that can help the user w i t h the motion refinement.  A simple-but-helpful cue is  showing the target pose while the user adjusting the parameters associated w i t h a button. T h i s provides the user w i t h immediate feedback of what k i n d of action is specified. A s shown i n Figure 4.7, the inset-window i n the bottom left corner of the animation window serves this purpose. Another useful form of visual feedback is to display the animation frames while the user drags the timeline cursor. T h i s is especially helpful for adjusting the timing of inputs. Since some aerial motions pass by too quickly for the user to catch particular events, such as the specific time instant when the skier reaches the top of the kicker j u m p , offline scrolling through the animation is the best way to handle this.  4.3.2  A u t o m a t i c Optimization  To further speed the creation of successful simulated aerial motions, our system can automatically optimize the timing of a specified input to achieve the best outcome. Accomplishing this requires a metric to evaluate the quality of a motion and a fast function evaluator, which i n our case consists of a simulation that determines how changes i n timing affect the given metric. Numerical methods which exploit derivative information w i l l generally require the fewest function evaluations.  However,  this requires differentiable optimization metrics, which may be difficult to achieve in the face of non-linear effects such as joint limits and other discontinuous events that may occur during the course of a simulation. In the face of these difficulties, we perform the optimization by discretely sampling the t i m i n g parameter i n question at regular intervals that bracket its current value. Function evaluations are then carried out using a dynamic simulation from that point i n time forward to the time  30  Figure 4.8: Dive entry before and after optimization of the time for extension.  Figure 4.9: S k i landing before and after optimization of the time for stretch. where the metric is evaluated. T h e previous motion is used to start each of these simulations from the appropriate dynamic state. Our optimization metric for platform diving is computed by integrating the error of the water entry angle for the body:  t2~h where C is the total error which needs to be minimized, t\ is the time at which the diver first touches the water, ti is the time at which the upper b o d y is fully under water, and E(t) is the error of the entry angle at time t which is defined i n terms of the angular deviation from the vertical. A component measuring twist errors could 31  also be added, although we have not experimented w i t h this. Figure 4.8 illustrates several frames from a diving motion before and after the optimization of the t i m i n g parameter associated w i t h the extension action, which is the last action prior to water entry. Similarly, the optimization metric for ski j u m p i n g is calculated by integrating the error of the landing angle for the body, from the time the skier first contacts the ground tp the time it reaches the end of the landing area.  Figure 4.9 shows  the landing motions before and after the optimization of the t i m i n g for the stretch action, which is the last action prior to landing.  4.4  Summary  In this chapter, we have presented the animation palette framework for prototyping dynamic aerial motions. T h e required actions are represented by a series of sequentially executed stages. We use one action button for controlling each possible action. PD-controllers compute the torque at each joint for driving the character to achieve a desired action. Balance controllers are responsible for actively maintaining the balance. Finally, offline motion refinement can serve to improve motions to achieve the desired result. In the following chapter, we w i l l describe implementation issues i n detail and we present the resulting motions created using our system.  32  Chapter 5 Implementation and Results We have implemented a system using our- interface ideas to design motions for platform diving, freestyle aerial ski jumps, and half-pipe snowboarding. T h e next two sections w i l l describe the dynamic simulation and the character models we used to make the aerial motions, and the remaining sections w i l l describe our results i n detail.  5.1  Dynamics Simulation  Our system makes use of the publicly-available O p e n Dynamics Engine ( O D E ) [26] for computing and integrating the equations of motion.  One advantage of this  simulation library is that models can be assembled on the fly. L i n k s and joints can be added, removed or changed during the simulation. T h i s feature makes O D E more flexible to use than some other libraries such as S D / F A S T [12] which requires pre-compiling the models before the simulation begins. The process of simulating the motions of rigid bodies through time has two parts. D u r i n g each time step, the first part uses the equations of m o t i o n to determine  33  the instantaneous accelerations for all the rigid bodies. T h e second part, namely the integration, advances the current time by a given step size and adjusts the state of all the rigid bodies for the new time value. O D E uses a first order semiimplicit integrator, which includes both the implicit forces (i.e., constraint forces at the joints) and explicit forces (i.e., external forces applied by the environment and the applied joint torques).  Since we use controllers to drive the character toward  target poses and the external forces are explicit, the integration can become unstable when the system is stiff, i.e., when k  p  and kj are large. Reducing the simulation  time step enhances the stability, but results i n slower simulation speed. We limit the m a x i m u m torque that each joint can exert to avoid excessively-large control torques, which reflects the reality of limited muscle forces and also helps w i t h the stability of the simulation. In our system, the m a x i m u m allowable torque at each joint is given by T  max  = 1.0 • k , where k is the spring constant for this joint. p  p  For collision detection, we assign each b o d y a simple shape (e.g. sphere or box), and use the collision detection engine supplied w i t h O D E to determine which bodies are i n contact at each time step. T h e average time of this collision engine for intersection testing is 0(n)  [26], where n is the number of objects. To simplify the  control and increase the stability, we only process collisions between the character and the environment (e.g., ground), and we ignore the self-collision of different parts of the character model. T h e collision reaction forces i n O D E are based on a penalty method and a Coulomb friction model is used to limit the tangential component of the reaction forces. T h i s is sufficient to simulate the interaction forces between the character and the ground. T h e O D E - b a s e d simulation runs i n real-time on a 2.66 G H z P 4 P C . T h e fixed time step which we use to integrate the equations of motion is 0.001s.  34  Without  Figure 5.1: Degrees of freedom used for diving, snowboarding and skiing models. graphical display, our diving simulation can compute 3.7 simulation seconds in 1 wall-clock second. For skiing and snowboarding, the performance numbers are 1.68 and 1.69 respectively. The diving simulation requires significantly fewer collision detection computations and is faster as a result.  5.2  Character Models  The character models are based on the anthropometric parameters used in [6]. We make changes to the original model according to the nature of each aerial motion. For example, the skier needs to bind each foot to a ski. In order to increase the speed and stability of dynamic simulation, we remove the wrist joints and the joint  35  Stand Forward  Crouch Arms Up  Stand Backward  Crouch Arms Down  Figure 5.2: States of Platform D i v i n g . between head and neck. These joints have little effect on the simulation results and can make the simulation unstable, due to the large disparity between lightweight b o d y parts such as the hands and the heavier links such as the torso. T h e structures of the three character models are shown i n Figure 5.1. T h e diver model has 13 links and 26 Internal Degrees O f Freedom ( I D O F ) . T h e snowboarder is the same but w i t h an extra D O F for each ankle. Lastly, the skier has fixed ankles, giving 13 links and 22 I D O F . T h e details of these dynamic models are given i n A p p e n d i x A , including all the physical parameters of the links (e.g., mass and moment of inertia) and joints (e.g., joint strength).  5.3  P l a t f o r m Diving  Platform diving is the least difficult motion to design because it does not need to solve the problem of balance upon landing, as is the case w i t h ski j u m p i n g and snowboarding. We represent the motion of dives w i t h 5 stages of actions:  stand,  crouch, takeoff, one or more aerial positions, and extension before entry into water. Our interface has 12 action buttons for the control of all possible actions during diving.  Figure 5.2 shows the actions and the possible transitions between them.  36  Table B . l illustrates the actions and x and y parameters associated w i t h each button. We have used the interface to author 29 types of 5 m platform dives, including all four takeoff methods a diver can use: forward, backward, inward and reverse dives. In the diving terminology of [20], we have authored dive types 101a, 101b, 101c, 103b, 103c, 105b, 107c, 201a, 201b, 201c, 203b, 203c, 205c, 301a, 301b, 301c, 303b, 303c, 305c, 401a, 401b, 401c, 403b, 403c, 405b, 405c, 407c, 5132d. Figures 5.3, 5.4 and 5.5 show three of them, while Figure 5.6 illustrates an unsuccessful dive i n which the extension action is executed too early.  37  38  39  5.4  Freestyle Aerial Ski Jumping  For skiing, we unite the lower leg, foot and ski into one rigid b o d y segment for the simulation model. Similar to platform diving, aerial ski jumps have 6 executed stages: in-run, crouch, takeoff, aerial positions, stretch for landing and finish position. T h e purpose of the "finish" position is to improve the visual effect by making the character straighten and raise the arms upon a successful landing. Table B.2 describes the definition of the v i r t u a l buttons we use to control the acrobatic ski actions and Figure 5.7 shows the feasible transitions between them. For the in-run action, one of the button parameters provides control over the start position on the in-run, and hence the speed accumulated upon take-off.  Big Kicker  Crouch Arms Up  Small Kicker  Crouch Arms Down  Takeoff Figure 5.7: States of S k i J u m p i n g .  T h e kicker jumps and ski-hill i n our system have been designed to match freestyle skiing competition specifications [25]. Figure 5.8 shows the specification of ski-hill, while Figure 5.9 and Table 5.1 illustrates the dimensions of kicker jumps. In reality, the snow friction coefficients are different between the forward sliding Cf and the sideway sliding C . We use 0.001 for Cf and 0.1 for C to ensure the realistic s  s  interaction of the skis and the snow.  40  Figure 5.9: Dimensions of kicker jumps.  kicker  A  B  C  D(lm)  E(2m)  F(2m)  small  6.70  5.95 6.70  30°  13°  8.10  3.25 3.65  50°  big  55°  33°  14°  G(2m) 5° 6°  Table 5.1: Dimensions of kicker jumps.  T h e creation of successful aerial ski jumps is more difficult than diving because of the difficulty of maintaining balance upon landing. It is important to find the best time for extension i n order to decrease the rotation and twist speed before landing. We decrease the stiffness of knees and hips for landing position i n order to 41  cushion the kinetic energy of the character when landing on the ground. T h i s also makes the landing action look more natural. A series of 12 aerial ski jumps were created using our interface: b F F , b L , b L L T , b L T L , b P P , b T T , fF, £L, f P P , fT, f T T , and f T T T , where T and 'b' indicate front and back flips respectively, ' F ' indicates a flip w i t h a full twist, and ' L ' , ' P ' , and ' T ' indicate layout, pike, and tuck positions, respectively. Figures 5.10, 5.11 and 5.12 show three of them and Figure 5.13 illustrates a bad landing for a back-full-full j u m p . We have also experimented w i t h simulating landings i n water, as is typical of summer training.  42  Figure 5.10: S k i jump: double twisting double back flip.  P i IS! Figure 5.11: S k i jump: front pike single.  43  \  /  1 Figure 5.12: S k i jump: back layout-tuck-layout.  .1: Figure 5.13: S k i jump: bad landing for a back-full-full.  44  5.5  Half-pipe Snowboarding  Half-pipe snowboarding was the most difficult motion to produce using our system, the principal reason being the difficulty of maintaining balance at a variety of points in the half-pipe. L a n d i n g diagonally on the transition between the wall and ground was found to be much harder to control than on the landing hill of ski jumps. Also, the snowboarder needs to be well balanced upon approaching the wall of the halfpipe i n the lead up to the j u m p i n order to successfully initiate a j u m p . T h e terrain anticipation of a real snowboarder during the rapid transition from the horizontal to the near-vertical edge of the half-pipe is not implemented i n our system, m a k i n g this challenging to properly execute.  Takeoff  Face Left Face Right Crouch  A"  Landing  Front  r>—!  Back Grab  Figure 5.14: States of Half-pipe Snowboarding.  F r o m our experience w i t h platform dives and ski jumps, motions w i t h twists were generally found to be more difficult to reconstruct than motions without twists. Most half-pipe stunts involve a twist and this thus makes the snowboarding motions more challenging to control. We have thus far created 4 types of half-pipe snowboarding stunts, including a back 360, back 360 w i t h grab, a front grab, and a back grab. Figure 5.16, 5.17, 5.18 and 5.19 illustrate some successful or unsuccessful mo45  tions we have made. Figures 5.14 and Table B . 3 explains the v i r t u a l buttons for this stunt. T h e specification of the half-pipe comes from [9]. Figure 5.15 illustrates the section view of the half-pipe, which has an inclination w i t h respect to the horizontal of 15° i n the dimension going into the page.  Figure 5.15: Section view of half-pipe.  5.6  User Experiences  Our system has been used by several users who have little knowledge of control mechanisms.  After 10 minutes tutorial, all of them can create relatively simple  diving motions i n 5 minutes, such as forward 1^ somersaults i n pike position, and backward l\  somersaults i n tuck position. For the dives which involve more som-  ersaults, these users need some basic knowledge of platform diving and about half an hour guided practise before they can produce such motions w i t h i n 10 minutes. For the creation of ski jumps, these users usually spend most of time on finding the appropriate time of takeoff and the proper pose for landing. T h i s makes the time of creating successful ski jumps three times as much as that of creating successful platform dives. A s we expected, the most difficult part is the creation of half-pipe snowboarding or motions which involve a twist. M a k i n g these motions may take several hours to fine-tune the inputs.  46  5.7  Summary  Our animation system provides a method for interactively controlling 3D simulated characters. It allows for dynamic aerial motions to be produced i n a short time by a novice user. A variety of motions and variations can be created as demonstrated i n this chapter. Since we expose the key parameters of each action i n a readily accessible fashion, this interface can work i n different environments w i t h no modification. For example, the v i r t u a l buttons for 5 m platform diving can also be used to produce 10m platform diving without any changes to the animation palette. T h e m a i n weakness of this system lies i n the balance controllers, especially for motions w i t h twist and landing actions. More robust and adaptive control strategies are required to make the interface more tractable for creating successful examples of these types of motions.  47  HI •  Figure 5.18: Half-pipe snowboarding: back 360.  /  m Figure 5.19: Half-pipe snowboarding: crash landing for back-grab.  49  Chapter 6  Conclusions and Future Work We have presented an interface for prototyping dynamic aerial motions. T h i s technique demonstrates the future feasibility of designing sports games based upon fully dynamic character simulations. It allows a user to exploit his knowledge and i n tuition to design a variety of motions.  O u r interface can also help the user to  understand and learn these acrobatic stunts. There are several directions which require further research to make the i n terface easier to use and the resulting motions more realistic.  6.1  Improved Dynamic Controller Actions  We plan to investigate how controllers specific to the execution of twists and landing actions can be constructed. A d d i t i o n a l work on "automatic landing" controllers and user control is required i n order to make the required user skill more manageable for use i n a game scenario. O u r current automatic optimization tool uses a simple metric and optimization technique. We wish to explore the use of other metrics that allow for more abstract specifications of a desired motion, as well as an analysis of  50  the timing requirements of the various stages of the motion.  6.2  Natural M o t i o n  We wish to seek feedback from coaches and athletes w i t h regard to using this type of tool. In order to become an accurate prototyping tool, better strength models w i l l likely be required. It would also be interesting to use this system i n conjunction w i t h a vision-based motion tracking system. T h i s would support the asking of "what if" questions i n the context of exploring changes to a recently executed motion.  6.3  GamePad Interface  Another possible direction for future work is toward the using of gamepad as the input device.  One of the potential applications of our research is sports genre  video games. These are most commonly played on video game consoles, which are equipped w i t h a gamepad rather than a mouse. A l t h o u g h a gamepad has a large number of inputs, namely dual thumb sticks and about ten buttons, it is difficult to map our parameterized action button interface onto such a device. We need to find other methods to map the gamepad inputs to the control parameters.  51  Bibliography [1] Nick Alexander. E n d o r p h i n , h t t p : / / w w w . n a t u r a l m o t i o n . c o m / . [2] L y n n e Shapiro B r o t m a n and A r u n N . Netravali. M o t i o n interpolation by opt i m a l control. In  SIGGRAPH 88, Computer Graphics Proceedings, pages 309-  315. A C M Press, 1988.  Inspired 3D Character Animation. Premier Press, 2002.  [3] K y l e Clark.  [4] Michael F . Cohen. Interactive spacetime control for animation. In SIGGRAPH  92, Computer Graphics Proceedings, pages 293-302. A C M Press, 1992. [5] M i r a Dontcheva, G a r y Yngve, and Zoran Popovic. Layered acting for character animation.  ACM Trans. Graph., 22(3):409-416, 2003.  Composable Controllers for Physics-Based Character Animation. P h D thesis, Department of Computer Science, University of Toronto,  [6] Petros Faloutsos. 2002.  [7] Petros Faloutsos, Michiel van de Panne, and Demetri Terzopoulos. Composable controllers for physics-based character animation. In  SIGGRAPH 2001, Com-  puter Graphics Proceedings, pages 251-260. A C M Press / A C M S I G G R A P H , 2001. [8] A n t h o n y C . Fang and N a n c y S. Pollard. Efficient synthesis of physically valid human motion. [9] Frank Gille.  ACM Trans. Graph., 22(3):417-426, 2003.  Snowboarding: make a perfect start. Meyer & Meyer Sports, 2002.  [10] Jessica K . Hodgins, P a u l a K . Sweeney, and D a v i d G . Lawrence. natural-looking motion for computer animation. In  Generating  Proceedings of the confer-  ence on Graphics interface '92, pages 265-272. M o r g a n K a u f m a n n Publishers Inc., 1992.  52  [11] Jessica K . Hodgins, Wayne L . Wooten, D a v i d C . Brogan, and James F . O ' B r i e n . A n i m a t i n g human athletics. Proceedings of SIGGRAPH  95, pages 71-78, A u -  gust 1995. I S B N 0-201-84776-0. Held i n Los Angeles, California. [12] Michael G . Hollars, D a n E . Rosenthal, and Michael A . Sherman. Sd/fast, 1991. [13] Joseph Laszlo, Michiel van de Panne, and Eugene Fiume. Interactive control for physically-based animation. In K u r t Akeley, editor,  SIGGRAPH 2000, Com-  puter Graphics Proceedings, pages 201-208. A C M Press / A C M S I G G R A P H / A d d i s o n Wesley Longman, 2000. [14] Joseph F . Laszlo, Michiel van de Panne, and Eugene F i u m e . L i m i t cycle control and its application to the animation of balancing and walking. Proceedings of SIGGRAPH  96, pages 155-162, August 1996.  [15] Jehee Lee, Jinxiang C h a i , P a u l S. A . Reitsma, Jessica K . Hodgins, and N a n c y S. Pollard. Interactive control of avatars animated w i t h human motion data. In  SIGGRAPH 2002, Computer Graphics Proceedings, pages 491-500. A C M Press, 2002. [16] Zicheng L i u , Steven J . Gortler, and Michael F . Cohen. Hierarchical spacetime control. In SIGGRAPH  94, Computer Graphics Proceedings, pages 35-42. A C M  Press, 1994. [17] Michael M c K e n n a and D a v i d Zeltzer.  D y n a m i c simulation of autonomous  legged locomotion. In SIGGRAPH 90, Computer Graphics Proceedings, pages 29-38. A C M Press, 1990.  Understanding Motion Capture for Computer Animation and Video Games. M o r g a n Kaufmann, 1999.  [18] A l b e r t o Menache.  [19] G a v i n S. P. M i l l e r . T h e motion dynamics of snakes and worms. In SIGGRAPH  88, Computer Graphics Proceedings, pages 169-173. A C M Press, 1988. [20] R o n a l d F . O ' B r i e n .  Springboard & Platform Diving: a complete guided for  divers and coaches. H u m a n Kinetics, 2003. [21] S. Oore, D . Terzopoulos, and G . Hinton. A desktop input device and interface for interactive 3d character animation.  In  Proceedings of Graphics Interface  2002, pages 133-140, 2002. [22] S. Oore, D . Terzopoulos, and G . Hinton. L o c a l physical models for interactive character animation.  Computer Graphics Forum, 21(3):337-346, 2002. I S S N  1067-7055. 53  [23] Jovan Popovic, Steven M . Seitz, Michael E r d m a n n , Zoran Popovic, and A n d r e w Witkin.  Interactive manipulation of rigid b o d y simulations. I n  SIGGRAPH  2000, Computer Graphics Proceedings, pages 209-217. A C M P r e s s / A d d i s o n Wesley P u b l i s h i n g C o . , 2000. [24] H y u n J o o n Shin, Jehee Lee, Sung Y o n g Shin, and Michael Gleicher. Computer puppetry: A n importance-based approach.  A CM Trans. Graph., 20(2):67-94,  2001. [25] Pat S m i t h . Canadian freestyle ski association, [26] Russell S m i t h . O p e n dynamics engine,  [27] A . James Stewart and James F . Cremer. Beyond keyframing: an algorithmic approach to animation. In  Proceedings of the conference on Graphics interface  '92, pages 273-281. M o r g a n K a u f m a n n Publishers Inc., 1992. [28] M a t t h e w E . Thorne. M o t i o n doodles: A sketch-based interface for character animation.  Master's thesis, Department of Computer Science, University of  B r i t i s h C o l u m b i a , 2003. [29] J . Troy.  Dynamic Balance and Walking Control of Biped Mechanisms. P h D  thesis, Department of Mechanical Engineering, Iowa State University, 1995. [30] J . Troy and M . Vanderploeg. Interactive simulation and control of planar biped walking devices. In  Workshop on Simulation and Interaction in Virtual Envi-  ronments, pages 220-224, J u l y 1995. [31] Michael van de Panne, R y a n K i m , and Eugene F i u m e . V i r t u a l wind-up toys for animation. In  Proceedings of Graphics Interface '94, pages 208-215, Banff,  A l b e r t a , Canada, 1994.  [32] Michiel van de Panne. Sensor-actuator networks. In SIGGRAPH 93, Computer  Graphics Proceedings, pages 335-342. A C M Press, 1993. [33] Michiel van de Panne, Eugene Fiume, and Zvonko Vranesic. Reusable motion  synthesis using state-space controllers. In SIGGRAPH  90, Computer Graphics  Proceedings, pages 225-234. A C M Press, 1990. [34] D a v i d A . Winter, Aftab E . P a t l a , Francois Prince, M i l a d Ishac, and K r y s t y n a Gielo-Perczak. Stiffness control of balance i n quiet standing.  rophysiology, 80:1211-1221, 1998.  54  Journal of Neu-  [35] A n d r e w W i t k i n and Michael Kass. Spacetime constraints.  Computer Graphics,  22(4):159-168, 1988. [36] Wayne L . Wooten and Jessica K . Hodgins. A n i m a t i o n of human diving.  Com-  puter Graphics Forum, 15(1):3-14, 1996. ISSN 0167-7055. [37] K a n g K a n g Y i n and Dinesh K . P a i .  Footsee:  an interactive animation sys-  tem. In Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, pages 329-338. Eurographics Association, 2003.  55  Appendix A  Dynamic Model Details Below are the details of three dynamic models shown i n Figure 5.1: diver, skier and snowboarder. For each model, the C O M of h i p is placed at the origin, w i t h the character facing the positive z-axis. We present only the information of left arm, hand, leg and foot; the properties of corresponding right parts are symmetrical. For some joints, the strength constants depend on whether the character is i n  stance,  takeoff,flightor landing state. In these tables we use's', 't', ' f and '1' to represent them.  link  mass (kg) 16.61 8.35 4.16 1.34 29.27  hip thigh shin foot  center of mass  moment of inertia  (x,y,z m) 0.000 0.000 0.000 0.086 -0.237 0.025 0.086 -0.663 0.025 0.086 -0.887 0.075  (x,y,z kgm ) 2  0.1147 0.1654 0.0522 0.0076  0.1147 0.0176 0.0069 0.0084  0.1445 0.1662 0.0522 0.0020  0.000 0.000  0.335 0.025 0.611 0.025  0.5282 0.1645 0.5829  1.00  head upper arm  5.89  0.000  0.792 0.025  2.79  lower arm  1.21 0.55  0.300 0.568  0.498 0.025 0.498 0.025  0.0457 0.0261 0.0417 0.0047 0.0229 0.0229  0.732  0.498 0.025  chest neck  hand  0.0021 0.0021  0.0009 0.0061 0.0062 0.0004 0.0018 0.0015  Table A . l : Physical parameters of diver model.  56  0.0021  name  location (x,y,z  axis  k  X  1275 200 1275 1275 80 1275 120 1275 1275 800 100 20 200  60 10 60 60 5 60 12 60 120 40 10 2 10  hip  0.086  knee  0.086 -0.475 0.025;  100 100 20 100  5 10 1 5  y z  0.000 0.025  X  z x (s)  0.086 -0.850 0.025  ankle  p  k  d  m)  X (t, f) X  waist  0.000  0.114 0.025  neck  0.000  0.555 0.025  z y z y X  shoulder  0.152  0.498 0.025  elbow  0.449  0.498 0.025  y z X  y  Table A . 2 : Joint strength of diver model.  link  mass (kg)  hip thigh  16.61 8.35  shin foot  4.16 2.34 1.80  ski  center of mass  moment of inertia  (x,y,z m) 0.000 0.000 0.000 0.086 -0.237 0.025 0.086 -0.663 0.025  0.1034 0.1034 0.1445 0.1654 0.0176 0.1662 0.0522 0.0069 0.0522  0.086 -0.891 0.083  0.0141 0.0147 0.0044  0.086 -0.952 0.094 0.000 0.335 0.025  0.33.76 0.3394 0.0020  (x,y,z kgm?)  0.000  0.611 0.025  0.5282 0.1645 0.5829 0.0021 0.0021 0.0021  head upper arm  1.00 5.89 2.79  0.000 0.300  0.792 0.025 0.498 0.025  0.0457 0.0261 0.0417 0.0047 0.0229 0.0229  lower arm hand  1.21 0.55  0.568 0.732  0.498 0.025 0.498 0.025  0.0009 0.0061 0.0062 0.0004 0.0018 0.0015  29.27  chest neck  Table A . 3 : Physical parameters of skier model.  57  location  name  axis  k  p  k  d  (x,y,z m)  z 0.086  hip  y x (s)  0.000 0.025  X (t, f)  x(l) x (s) 0.086 -0.475 0.025  knee  X (t, f)  x(l) X  0.000  waist  0.114 0.025  z y (s, f, l) y(t)  0.000  neck  z y  0.555 0.025  X  shoulder  0.152  0.498 0.025  elbow  0.449  0.498 0.025  y z X  y  900 1275 4000 1275 400 4000 1275 400 2000 2000 2000 3000 100 20 200 100 100 20 100  30 60 60 60 60 60 60 60 100 100 100 100 10 2 20 5 10 1 5  Table A . 4 : Joint strength of skier model.  link  mass  center of mass  moment of inertia  hip thigh shin  (kg) 16.61 8.35 4.16  (x,y,z m) 0.000 0.000 0.000 0.127 -0.234 0.025  (x,y,z kgm ) 0.1147 0.1147 0.1445  0.201 -0.652 0.025 0.233 -0.887 0.075  0.0522 0.0069 0.0522 0.0141 0.0147 0.0044  0.000 -0.950 0.075  0.0390 0.6595 0.6209  0.000 0.000 0.000 0.300 0.568 0.732  0.5282 0.0021 0.0457 0.0047 0.0009 0.0004  foot snowboard chest neck head upper arm lower arm hand  2.34 3.80 29.27 1.00 5.89 2.79 1.21 0.55  0.335 0.611 0.792 0.498 0.498 0.498  0.025 0.025 0.025 0.025 0.025 0.025  2  0.1654 0.0176 0.1662  0.1645 0.0021 0.0261 0.0229 0.0061 0.0018  0.5829 0.0021 0.0417 0.0229 0.0062 0.0015  Table A . 5 : Physical parameters of snowboarder model.  58  axis  location  name  k  p  k  d  (x,y,z m)  hip  0.086  0.000 0.025  knee  0.168 -0.468 0.025  ankle  0.233 -0.837 0.025  waist  0.000  x (s, f) X (t) x(\) z(s) z (t, f, 1) x (s, f) X (t) x(l) X  0.114 0.025  y z z X  y (s, f, 1) y(t) X  neck  0.000  0.555 0.025  shoulder  0.152  0.498 0.025  elbow  0.449  0.498 0.025  z y y z X  y  1275 200 400 4000 900 1275 200 400 170 50 80 2000 2000 2000 4000 200 100 20  60 60 60 60 30 60 60 60 17 5 8 100 100 100 100 20 10 2  100 100  5 10  20 100  1 5  Table A . 6 : Joint strength of snowboarder model.  59  Appendix B  Description of Virtual Buttons axis  name  X  stand forward  y X  stand backward  y X  crouch arms-up  y  crouch arms-down takeoff forward takeoff backward pike open pike tuck twist lateral extend straight extend  X  y X  y X  y y X  y y X  y X  y y  definition  target c.o.m. position arm position target c.o.m. position arm position target c.o.m. position height of crouch target c.o.m. position height of crouch waist bend j u m p height waist bend j u m p height time to reach pose  note  stand facing water stand back to water crouch, raise arms for forward takeoff crouch, lower arms for backward takeoff extend hips, knees and ankles for j u m p extend hips and ankles swing arms back  target pike angle time to reach pose time to reach pose twist of waist time to reach pose  right hand to head, left hand to chest  waist bend time to reach pose waist bend time to reach pose  bring arms laterally to over head bring arms straight over head  Table B . l : Description of diving buttons.  60  axis  name  X  start big  y X  start small  y X  crouch arms-up  y  crouch arms-down  X  y X  takeoff forward  y X  takeoff backward  y X  takeoff twist fwd  y X  takeoff twist b w d  y y y  pike tuck  X  layout  y y  twist  X  landing  y X  finish  y  definition  note  start position angle of arm raise  start for the big kicker  start position angle of arm raise  start for the small kicker  hip bend knee bend hip bend knee bend waist bend strength of waist bend strength of waist twist strength of waist twist strength of  bring arms to front for forward takeoff  jump jump jump jump  time to reach time to reach waist bend time to reach time to reach hip bend knee bend arm position time to reach  swing arms down for backward takeoff extend hips, knees and ankles for j u m p extend hips and ankles for j u m p , swing arms back extend hips, knees, and ankles while twisting waist as a b o v e / b u t swing arms back and apply less knee extension  pose pose pose pose  pose  extend arms bring arms to b o d y alter stiffness of hips and knees for landing  -  stand up and raise arms  Table B . 2 : Description of buttons for aerial ski j u m p control.  axis  name crouch left crouch right grab front grab back takeoff landing  X  y X  y y. y X  y X  y  note  definition waist twist front/back balance waist twist front/back balance  crouch down facing left crouch down facing right  time to reach pose  grab front side of snowboard  time to reach pose waist bend time to reach pose waist bend lateral balance position  grab back side of snowboard  Table B . 3 : Description of buttons for snowboard control.  61  


Citation Scheme:


Citations by CSL (citeproc-js)

Usage Statistics



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"
                            async >
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:


Related Items