TECHNIQUES AND AESTHETICS OF HUMAN INVERSE KINEMATICS FOR FIGHTING SIMULATIONS

Size: px
Start display at page:

Download "TECHNIQUES AND AESTHETICS OF HUMAN INVERSE KINEMATICS FOR FIGHTING SIMULATIONS"

Transcription

1 TECHNIQUES AND AESTHETICS OF HUMAN INVERSE KINEMATICS FOR FIGHTING SIMULATIONS MASTER OF INTERACTIVE TECHNOLOGY THESIS PRESENTED BY RYAN A. MCCORD

2 TECHNIQUES AND AESTHETICS OF HUMAN INVERSE KINEMATICS FOR FIGHTING SIMULATIONS A Thesis Presented to the Graduate Faculty of The Guildhall Southern Methodist University In Partial Fulfillment of the Requirements For the degree of Master of Interactive Technology With a Specialization in Software Development By Ryan A. McCord B.S., Computer Science, Southern Methodist University ii P age

3 Techniques and Aesthetics of Human Inverse Kinematics for Fighting Simulations Supervisor: Anton Ephanov Advisor: Jani Kajala Reader: Brian Squirrel Eiserloh Traditional key frame animations are not adaptable enough to the environments in which they are used. They are costly in terms of memory usage and development resources. This project implements an inverse kinematics solution for a fighting simulation to reduce problems with traditional animation techniques. The goals of the project are to generate believable procedural animations in real-time that allow control over the motion and interact with the environment. The project specifically demonstrates inverse kinematics on a character in a fighting game where the character has limbs that can follow predefined splines that adapt to the world. The system is constrained, weighted, and can be controlled by an artist, making it a scalable solution for many types of skeletons. iii P age

4 TABLE OF CONTENTS Table of Contents... iv List of Figures... vi List Of Tables... vii Chapter 1: Introduction... 1 Background of the Study... 1 Problem and Purpose Statement... 3 Research or Project Question... 4 Significance of the Study... 4 Overview of Methodology and Limitations... 5 Definitions... 6 Chapter 2: Literature and Field Review... 8 Literature Review... 8 Field Review Summary Chapter 3: Methodology Product and Development Process Data Collection and Procedures iv P age

5 Test Setting Data Analysis Summary Chapter 4: Results Performance Control and Adaptability Scalability Summary Chapter 5: Conclusion Artifact Limits Words of Wisdom Future Improvements and Further Research Summary References v P age

6 LIST OF FIGURES Figure 1: Frames of Traditional Animation... 2 Figure 2: UDK Inverse Kinematics for Foot Placement... 6 Figure 3: Iterative model adopted for the Jacobian transposition method... 9 Figure 4: Cyclic Coordinate Descent method may require multiple iterations Figure 5: Spore Inverse Kinematics Figure 6: Spore Complex Skeleton Figure 7: UFC 2009 Undisputed Full Body IK Targeting Figure 8: Multiple IK Solutions Figure 9: Unconstrained Inverse Kinematics Figure 10: Constrained Inverse Kinematics Figure 11: Shorter Constrained IK Chain Reaches the Goal vi P age

7 LIST OF TABLES Table 1: Avg. Time to Run IK Solution Table 2: Avg. Time to Run IK Solution with Maximum Bounds vii P age

8 CHAPTER 1: INTRODUCTION Animation in 3D graphics provides viewers with a satisfying experience by making characters and environments more life-like. Having believable, articulated figures is essential to video games and generating them has always been a timely undertaking. The underlying solution has been to transition bones from one frame to another. The system, in this case, is completely unaware of the overall perceived motion. It instead gives animators complete control and relies on their ability to create realistic movements. The traditional way of creating animations is by generating key frame poses throughout a motion. When blended over time, these frames represent a complete animation. Transposed bones are predetermined prior to runtime, and not generated on the fly, thus making animations very rigid when used. To appear more realistic and modular, 3D games use blending to transition from one animation to the next. Even then, animations do not satisfy the needs of the many environments in which they are used. A more reliable and adaptable solution is needed. BACKGROUND OF THE STUDY Traditional key frame animations are the forward kinematics solution that is an industry wide standard for creating animations in 3D games. Key frame animations require a lot of data and memory to manage. Translation, rotation, and scaling 1 P age

9 information for every bone are required for every frame. This can become expensive quickly for high-resolution animations, especially if uncompressed. To achieve the best quality, every bone requires precise placement within each frame. When transitioning between frames, the system blends keys between one another to smooth motion. Blending is not necessary if the resolution of the animation is higher than the frame-rate of the system. An infinite number of motions can be represented by key frame animations in 3D simulations. Most of these animations require precise placement. For example, a character that must press a button needs to be directly in front of it, because the animation does not work in any other situation. In this case, the model must be transposed to the initial position before playing in order for it to appear correct. Figure 1: Frames of Traditional Animation A solution to make character animation more adaptable to environments is inverse kinematics. Using this method, when a model is ready to play an animation where the skeleton is within the bounds of its initial state, the animation can play without requiring a dramatic transposition. Inverse kinematics comes primarily from research in robotics 2 Page

10 and later adapted to 3D graphics. Most robotic uses only involve a single arm or inverse kinematics chain, whereas many 3D simulations require a full body skeletal solution. Their use in 3D games today is somewhat limited. Inverse Kinematics has been used to develop character animations faster in 3D modeling software and to aid simple in-game tasks. New techniques are always in development, and different methods of achieving them have both positive and negative effects. PROBLEM AND PURPOSE STATEMENT Animations, although completely controlled, often require transposition to the initial state before playing. This linear movement can look unrealistic in 3D games and takes away the appeal of the animation. Humanlike motions are much more adaptable to their environments and require more modularity than traditional animations offer. The goal of an inverse kinematic solution is to maintain control, preferably by artists, while providing an adaptable, procedural animation to interact with the environment. Animations can be very expensive to generate. The degrees of freedom for an articulated figure grow with each bone in a chain. As the movement space expands, it becomes more difficult to animate a figure at each frame. This also requires more data to store for a single animation. Every frame stores the transposition data of each bone, and compressing this data is another industry wide problem in itself. With inverse kinematics, there can be metadata associated with an animation prior to runtime, but it usually does not scale with the length of the animation. The performance problems with inverse kinematics are directed towards processing power, and algorithmic complexity. This of course grows with the number of IK-enhanced limbs in a skeleton. 3 Page

11 Inverse kinematics implementations tend to focus on one limb at a time and are often tailored to individual animations. It is more difficult to create a generalized system that can scale well with any application. This is dependent on the implementation specifics and performance implications of the solution. The purpose of this study is to implement an animation solution in a fighting simulation using inverse kinematics that can scale easily, and allows control over the movement while maintaining humanlike and believable aesthetics. Research or Project Question Is the inverse kinematics system scalable? Can the inverse kinematics system be easily commercialized? What are the performance costs of an inverse kinematic solution? In what ways can inverse kinematics solutions be adapted and controlled? SIGNIFICANCE OF THE STUDY Animations are an extremely important part of 3D games. However, the traditional key/frame approach is not adaptable enough to fit complex simulations. In many cases, the mesh translates to the correct position before the animation plays. The animation will always be the same, even in situations where the mesh translation is obvious and clunky, or the animation does not fit the surrounding environment. Inverse kinematics helps motion adapt to the environment by rotating individual bones to achieve a more realistic and believable animation, as opposed to traditional key framed motions. With more powerful processors, inverse kinematics is possible in real-time, and can 4 P age

12 alleviate memory management costs of animations. Of course, the biggest benefit is that fewer key/frames, if any, will drastically cut down animation generation time and remove heavy development burdens from artists. OVERVIEW OF METHODOLOGY AND LIMITATIONS After researching current techniques for solving human inverse kinematics, this study implements the most feasible, appropriate technique, and applies it to a common human motion. This motion compares to similar key framed animations in performance costs, adaptability, and determines the scalability of such a system. This study measures performance in terms of memory usage and processing burdens required to support traditional animations versus IK supported animations. Adaptability refers to if and how an animation can react to different situations. Scalability is measured by how general the system can be made, and how it would be useful in commercial engines. 5 P age

13 Figure 2: UDK Inverse Kinematics for Foot Placement The study is limited in the number of inverse kinematic techniques used. There are many solutions available and this study only implements the most appropriate and feasible one. As for comparing traditional animations to inverse kinematic supported animation, control, adaptation, and scalability are difficult to measure. Control and adaptation are determined by how different parts of the algorithm affect animation. This analysis coupled with performance results helps tell how scalable the system is. DEFINITIONS Kinematics the science of motion, without regard to the forces that cause it 6 P age

14 Inverse Kinematics a solution of determining the angles of joints in a skeletal mesh from position constraints IK the acronym for inverse kinematics Forward kinematics traditional key frame animation Animation a series of frames that represent a motion for a 3D model End-effector the device at the end of a bone chain designed to interact with the environment Goal an aim or purpose IK Chain A limb on a skeleton with one or more bones that the IK solver iterates over Constraint a limitation or restriction 7 P age

15 CHAPTER 2: LITERATURE AND FIELD REVIEW Compelling and exciting experiences drive modern video games. Unsatisfied players are very difficult to win back, and without anything new or appealing, an entire franchise can be devastated. Animations are important to delivering a unique experience. Inverse kinematics can make animations more believable for their environment and allows them to adapt to situations for which animators did not expect during development. This chapter will discuss the methods used in the industry to solve inverse kinematics and adapt animations. The methods explored here are techniques used in the industry to augment animations with inverse kinematics. Here, we will outline various algorithms, systems, and implementations of IK and describe their benefits and limitations. We will then explore applications that use Inverse Kinematics to achieve realistic animation, and determine their analysis of best practices. LITERATURE REVIEW There are many ways of implementing an IK solution. The most popular are the Jacobian Transpose and Cyclic Coordinate Descent methods. We explore their implementation and discuss their limitations and benefits. IK solvers can be very unstable for 3D simulations because most skeletons have natural constraints that are not restricted in a simple IK solver. For example, the human knee cannot bend above 180 degrees of 8 P age

16 motion. In an unconstrained IK solver, when moving an end-effector foot forward, the system needs to restrict the degrees of freedom of the knee, and constrain motion for aesthetic purposes. Here, we analyze how geometric constraints are added to an IK system and how they attempt to optimize the system. Wolovich and Elliot introduced the Jacobian Transpose method in It involves computing a force applied to the end-effector, the Jacobian matrix for the current configuration, and the resulting velocities for each joint. These joint velocities can be used to create a smooth tracking motion from the end-effector to its goal. Figure 3: Iterative model adopted for the Jacobian transposition method The Cyclic Coordinate Descent method is a heuristic search technique originally proposed by Wang and Chen. It minimizes position and orientation errors by manipulating one joint at a time, starting with the most distant joint and ending with the manipulator base. This reduces the n-dimensional optimization problem to a onedimensional problem at each joint. The algorithm simply determines at each joint, how much the end effector is off by (rotation or translation depending on the joint type), then updates and clamps the current joint to a new orientation or translation. The end effector updates its position, and the heuristic continues to evaluate the next joint. This process may require multiple iterations for the end effector to reach its goal. 9 Page

17 Figure 4: Cyclic Coordinate Descent method may require multiple iterations Chris Welman compares the Jacobian transpose to the Cyclic Coordinate Descent method [Welman]. This project seeks to implement the simpler Cyclic Coordinate Descent methods over the Jacobian transpose for several reasons. Welman explains that the Jacobian is not immune to kinematic singularities, which can cause oscillations if the joint velocities are high. He also shows that the Jacobian Transpose by itself does not work in the general case, and must consider the scale of the world and choice of scale for joint variables. Solving for scaling considerations introduces another matrix multiplication into the equation, and further increases the complexity, especially if that matrix is time variant. He points out that using the Jacobian, the end-effector takes much longer to reach its goal, as it gets closer than the CCD method. Despite the more aesthetically pleasing results of the Jacobian, Wellman explains that both can be constrained and joints can be weighted to achieve better results. In essence, we choose the CCD method here for scalability, stability, and performance reasons. With regard to 3D simulations, skeletons require constrained joints to keep from becoming unstable and to maintain aesthetic quality. In a Cyclic Coordinate Descent based solution, it is easy to clamp joints at each iteration of the algorithm to their 10 P age

18 boundary conditions. This is enough to keep knees from bending more than 180 degrees, and limbs from going through bodies. Wilhelms and Van Gelder outline another method of constraining the joint limits on the system using reach cones. Imagine a sphere centered on the root of the bone whose radius is the length of the bone. A set of points on the sphere can form a polygon window of space for within the bone may move freely. The maximum reach would encompass the entire sphere, meaning the bone is unconstrained. The algorithm would determine if the IK solution lies outside of the reach cone, and then force it to the closest point on the outer rim. Figure 5: A Reach Cone Joint Limit Welman also describes a different set of constraints that are necessary to skeletal motion. Take for instance, two end-effector hands that are reaching for opposing goals. The system must decide which goal the torso will lean toward. By applying weights to different constraints, the minimization of error at each iteration of the heuristic becomes a summation of error over all the sub-trees for a given joint [Welman]. This attempts to produce a blending effect between constraints and gives the system the ability to choose between them. 11 Page

19 The Cyclic Coordinate Descent method is used in this project because of its realtime implications over the Jacobian. While the Jacobian may look better, it is less stable, more complex, and takes longer for an end-effector to reach its goal. The CCD algorithm makes constraining skeletons much simpler, and provides enough control to generate motion with respect to 3D interactive simulations. FIELD REVIEW Video games and 3D simulations rarely use Inverse Kinematics for animation exclusively. However, several games use IK solvers to achieve a level of environment interaction and believable motion more than others. The titles presented here are Spore and UFC 2009 Undisputed. Spore uses Inverse Kinematics to give life to content that is created at runtime (after development). The creatures in Spore have an endless number of possibilities with regard to their skeletal makeup, which demonstrates the flexibility of the Spore animation system. 12 P age

20 Figure 6: Spore Inverse Kinematics The system outlined by the Spore team is very flexible, intricate, and robust. It is forced to take everything about skeletons and animation into account including the number of bones, joints, constraints, and the type of limb. Since content is created at runtime, the skeletal makeup is undefined, and therefore animations are difficult to create. 13 P age

21 Figure 7: Spore Complex Skeleton This system creates IK chains for different parts of bodies, such as spines or different limbs of arms. By defining the basic motions that each is required to perform, rules can be generated, authored by animators, and applied to skeletons of virtually any shape and size. This level of flexibility is invaluable when developing commercial inverse kinematic systems to use in more than one game or simulation, and is what this project aims to achieve. In UFC 2009 Undisputed, instead of segmenting the character into different limbs to perform IK on, the animation itself is broken into various parts that are retargeted. The game uses full body IK targeting to detect hits on opponents accurately, use fewer animations more efficiently, and move the character realistically. A single punch is broken up into the following motions: Movement translating the character to the correct position Twist rotating the character so that a forward punch will hit an opponent 14 Page

22 Lean tilting the torso so that the arm can extend far enough Punch Direction the direction at which the punch must move Arm Extension extending the arm forward Foot Locking keeping the feet locked as the character punches Figure 8: UFC 2009 Undisputed Full Body IK Targeting Most 3D games and simulations use simple blending between animations. However, real-time IK solutions are possible and used to augment a single chain at a time instead of a whole skeleton. This, combined with blending, can allow a character to perform an action and yet interact with the environment. 15 Page

23 Another engine that offers inverse kinematics support is Unreal Engine 3. It uses skeletal control nodes within its AnimTree system to decide which bones are augmented with IK. These nodes can be referenced in code and controlled by modifying blend strength between traditional animation and IK. This system contains many different control nodes that are either general or specific. General nodes may allow for an IK-chain of any length to be augmented, while specific nodes could be used only for head control or foot placement. One important takeaway from this system is that users can specify how limbs will bend by choosing a joint and placing an end goal for it. This simple step saves development time from providing a long list of constraints for each bone in the chain. SUMMARY The Cyclic Coordinate Descent algorithm is a very simple but adaptable IK solution. It is fast, robust, and stable. It can be constrained, weighted, and controlled with parameters that reflect the skeleton to which it is applied. This way, we can keep maintain control over animations and allow them to believably interact with the environment. By blending with a rest pose, individual IK chains in this project can act independently as limbs that attempt to meet their own goals. These methods provide us with the means make more believable fighting simulations and continue to solve the procedural animation issues of today s industry. 16 P age

24 CHAPTER 3: METHODOLOGY Inverse kinematics offers a solution to animations that seem repetitive and lacks environmental interaction. Key frame animations are costly in terms of development schedule and memory. Robotic limbs introduced the need for inverse kinematics and 3D graphics later expanded systems to full body skeletons. There are many ways of implementing an IK solution, but a fast, reliable algorithm is necessary for real time simulations. The Cyclic Coordinate Descent method provides speed and stability, with an aesthetic quality that satisfies the needs of the video game industry. This project implements the CCD algorithm in a fighting simulation to demonstrate the use of inverse kinematics and to explore the implications of control and adaptation, performance, and scalability of such a system. This is an experimental project, where the data gathered comes from the simulation after implementation. The final product is a software application where a character, augmented by Inverse Kinematics, performs a procedural animation. The data is be collected at development time and runtime, and analyzed thereafter. PRODUCT AND DEVELOPMENT PROCESS The final product is a 3D simulation that displays an interactive character augmented by inverse kinematics and driven by either input or artificial intelligence. The 17 P age

25 system will be developed using C++ in Visual Studio 2010, and accompanied by a 3ds Max 2011 exporter also written in C++. Animations and character models will come from an artist or free, online libraries. The details of the inverse kinematics implementation are the most important parts of the system. The solution uses the Cyclic Coordinate Descent method outlined in Chapter 2 to drive the limbs of the character. An idle animation or pose will normalize the character after an action is played. The actions the character can perform are as follows: Stand in an idle position with feet grounded, regardless of the character s center of gravity Punch, using either arm, a location in space The inverse kinematics components are limb based, and in an effort to tweak the system, as an artist would generate animations, constraints and weights are used provide control over the motions generated. Constraints keep the character s limbs from rotating to unrealistic orientations, and weights allow control over how much each bone orients during each iteration of the algorithm. DATA COLLECTION AND PROCEDURES This is an experimental project. The data collected comes straight from the project and implementation specifics. Performance data is an analysis of the final algorithm s complexity and the burdens on memory (bytes of storage) and processing usage (frames per second). Control and Adaptation describes the number of variables that can be tweaked to modify the motion s behavior and an analysis of how the algorithm drives the animation. Scalability refers to how the system, based on performance, control, and 18 P age

26 adaptation, can be commercialized and used in a 3D engine on numerous skeletal makeups. Test Setting The setting takes place on an Alienware M17x personal computer wherever the simulation is run. It is an experimental project. Data Analysis System Specifications: CPU: Intel Core i5 M520 (4-core 2.4GHz) RAM: 4 Gigabytes Video: ATI Mobility Radeon HD 5800 Series Platform: Windows 7 Ultimate 64-bit Graphics API: DirectX 11 The three critical characteristics of the system to be reviewed are performance, control/adaptation, and scalability. Performance will be the easiest to measure. It will consist of a record on the frames per second and bytes of memory used by the system. This will show us how much of a burden inverse kinematics is on a normal 3D simulation. Control refers to the number of independent variables that an artist can change in an effort to tweak the procedural animation, and adaptation further describes how the algorithm drives the aesthetics of motion itself. This is a very difficult area to study, but it is the most important for inverse kinematic solutions when compared to traditional animation. Finally, scalability is an evaluation of the performance, and control/adaptation of the system itself. This evaluation will involve an examination of different parts of the implementation in an effort to determine its commercial possibilities and limitations if applied to characters of a larger or varied skeletal makeup. 19 P age

27 Specific data collected and analyzed: Performance o Process for generating an IK animation o Time (milliseconds) to calculate IK solution for one punch o Frames per Second of a system using traditional animations o Frames per Second of a system using IK enhanced animations o Bytes in memory to store IK enhanced animations Control o Visual differences in animations when various properties are manipulated o Control variables for artists versus programmers Scalability o Time (milliseconds) to generate animations for limbs of varying bone quantities o Number of tweakable properties per bone/animation available to an artist SUMMARY The final product of this project is a 3D simulation in which a character, augmented by inverse kinematics, performs a common fighting animation that is procedurally generated. This is an experimental project, and is used to analyze the performance, control and adaptability, and scalability of an inverse kinematic solution within 3D fighting games. Performance is measured in terms of memory and processing burdens. Control and adaptability refer to the variables and components of the algorithm that drive and modify the animation. Finally, scalability is the determination of how inverse kinematics will fit in a full 3D engine and on varying skeletons, based on the performance and control/adaptability implications. 20 P age

28 CHAPTER 4: RESULTS Simple key-frame animations often require characters to be in a particular state for the animation to play as intended. They use large amounts of data storage and development time. Inverse Kinematics solutions run in real-time and are used to fix-up animations in the industry. The question is whether they can be further used to drive animations entirely. The results presented in this chapter outline the performance, control/adaptability, and scalability of a small IK-driven animation system. Performance is measured through the system s burden on the processor, time it takes to generate an animation, etc. Control and adaptability explore all the ways that programmers and artists can manipulate procedural animations to produce a desirable outcome. This includes listing all the possible variables available and what happens when each one is tweaked. Scalability takes the performance and control statistics to determine the feasibility of a commercial procedural animation system with regard to different skeletons and limb structures. PERFORMANCE To measure any sort of performance of a system or algorithm, the steps in the algorithm should first be examined. Steps during skeleton segmentation (before runtime): 1. Skeleton limbs initialized 2. Skeleton bones added to limbs 21 P age

29 3. Degrees of freedom given to each bone 4. Animation spline defined Steps during IK animation generation (runtime): 1. For each animation spline a. Animation spline fixed up to environmental object(s) b. Spline evaluated at time (t) and sent to IK system with desired limb info c. IK system gets current bone orientations and stores them d. For each iteration desired i. For each current bone in the limb 1. Get the orientation from the current bone to the end effector 2. Get the orientation from the current bone to the goal 3. Compute the difference (quaternion multiply by the inverse) 4. Apply difference to current bone 5. Clamp each bone within its allowed Degrees of Freedom on the final iteration The steps before the animation is generated happen only once per character/animation and occur before the game is running. This happens in development time, which means we aren t really concerned about its performance. These steps are much more important later when we discuss the control and adaptability of the system. The steps that occur during animation generation can become very complex depending on the desired effect, IK implementation, and numbers of limbs and bones running at once. During the animation generation, we can see the driving loops of the system come from each animation spline (n) and each bone in the limb (m). Therefore the complexity of the system becomes O(n * m). We could have three separate splines to blend for one limb or 3 separate limbs. We could have one or more iterations in our IK loop, but that number will most likely remain constant based on the number of bones in the limb. There can also be any number of bones in a single IK chain. Games that use the system will 22 P age

30 most likely only run the algorithm on one to two limbs at a time with a few bones in each limb. It s time to look at actual numbers. There are a few ways to evaluate the performance of the system. The most important ways are looking at the burdens that the previously mentioned loops put on the game. Avg. Time (milliseconds) to Run IK Solution # Bones in IK Chain IK Iterations Table 1: Avg. Time to Run IK Solution Table 1 shows how the time to run the IK solution increases linearly based on the number of iterations and number of bones in the solution. However, it would be redundant to run multiple iterations on an IK chain that had only one bone. The system has an upper bound on the number of iterations equal to the number of bones in the IK chain. So one bone would have a maximum of one iteration, two iterations for two bones, etc, turning the chart into something more like Table 2. Avg. Time (milliseconds) to Run IK Solution # Bones IK Iterations Table 2: Avg. Time to Run IK Solution with Maximum Bounds 23 P age

31 The CCD solution runs quickly, but there are certainly ways the current implementation could be sped up. See chapter six for more about future improvements. The data required to simply store an IK enhanced animation is significantly different than traditional animations. Traditional animations, as explained in the Background section of Chapter One, store separate key frames within the animation and blend between them (or not if the resolution of the key frames is higher than the game s frame-rate). However, with this system, the key frames of the end effector are the only ones that need to be stored. This is further simplified by generating a spline that follows the key frames, rather than storing whole transformations at a time. A cubic spline is based on how many curves it contains. Each curve requires two end-points in 3D space, and two control points for Bezier curves, or two velocities for Hermite curves. That is a minimum of 4 points in space, and scales linearly by the number of curves. The reason to use splines instead of key frames for the end effector is not only to reduce memory footprint, but fixing up the end-point of the spline to fit the environment is much easier than fixing up every single key frame transformation. One Point in 3D space = 3 * size of float = 12 bytes One Curve = Four points in 3D space = 4 * 12 bytes = 48 bytes per curve vs. One Transformation = One translation in 3D space + a quaternion = 3 * size of float + 4 * size of float = 28 bytes Almost every animation requires more than 2 frames >= 56 bytes 24 P age

32 You can see that splines can describe the animation for a single bone much easier than a transformation. This is great for an end effector because the IK will handle the transformations for the other bones in the chain while the end effector simply follows the spline. As far as performance is concerned, Inverse Kinematics can greatly reduce the memory footprint on animations and runs quickly depending on the number of bones in each IK chain and the number of animations at one time. Of course, if an underlying animation is being played underneath, then at least we can say is that the IK system will not greatly hurt the performance of the game. CONTROL AND ADAPTABILITY The problem with Inverse Kinematics over traditional animations is the loss of control over the character. We simulate control by using splines to animate limbs of the character. However, not all bones lie in a given chain, some chains share bones, etc. The bones left over are inherently simulated or unaltered. Here we discuss the level of control that the system offers and see how the animation can adapt to the environment. The following properties represent variables that artists and/or programmers have control over when manipulating and defining how the system works in a given situation. Underlying animation Number of IK chains in a skeleton Which bones go in a chain (may skip intermediate bones) Spline Definition o Points on a spline o Which points transform relative to the skeleton o Which points transform relative to the target o Time to traverse the spline o Filter function for manipulating time step 25 P age

33 Weights of bones to IK chains Constraints on bones within a skeleton How the spline interacts with the environment Let us talk about the steps that are done before the game is run. These artistdriven steps can have very deep features programmed into them. For instance, defining an animation spline can be as simple as picking points in space for a single punch. Start and end are the easiest. However, when a character needs to punch another character, it is important to say which points in space are actually moved relative to the target character, and which remain constant in model space of the current character. The starting point of a punch is transformed relative to the character who is punching. They start the punch from the same position no matter what in space they intend to hit. The end-point, however, is moved to that location in space. The artist can decide how fast the spline should be evaluated, apply filter functions to the time interval, and more. The biggest problem at this stage is the lack of control over the animation. Artists cannot see exactly how the animation will play out, unless they have a tool that can run the same situation in which the system will be used. Given a viewer, artists may be able to determine if the solution will fail or succeed when constrained. But that doesn t necessarily give them any sort of control over the system. They would have to tweak the spline of the end effector in a way that would generate the desired look and feel. This lack of control over each bone in the chain means that a character can t reliably do things like elbow an enemy in the face, unless the elbow becomes the end effector. This is because there are multiple solutions from an IK solver (Figure 7). One solution to controlling the elbow is to have it linked to a constraint point, where it always 26 Page

34 attempts to bend in the direction of the constraint. This is what most 3D game engines do, such as Unreal Engine 3 and the CryEngine. Figure 9: Multiple IK Solutions Let us talk about the steps that happen during runtime. When controlling the system while the IK solver is running, we try to constrain the motion to its desired range. Human motion is very specific about its motion, and so the limits are clearly defined. As mentioned before, the system clamps Euler angles down to their min and max ranges for what each bone is capable. 27 P age

35 Figure 10: Unconstrained Inverse Kinematics You can see in Figure 8, that the end effector reaches its goal, but the unconstrained motion causes the character to look unnatural. Constraining the system is an important step in the IK solver. The system requires less iteration to reach its goal when unconstrained because the constraints tend to snap the end effector back away from the goal position. 28 P age

36 Figure 11: Constrained Inverse Kinematics Constraints actually cause the performance to go up much further because of the clamping and increase in IK solver iterations. More so, the constraints can hurt the solver even though they make sure the character stays within their limits of motion. In Figure 9, the chain on the right arm includes all the bones from the middle spine up to the hand end effector. The end effector fails to reach its goal because the system is relying on the spine to bend the character forward (Figure 8). However, if we shrink the chain to omit the spine and only use the arm bones, the end effector reaches its goal even though it is being constrained (Figure 10). Therefore, it is important to decide what the constraints are for the system and to know which bones are part of the IK chain. 29 P age

37 Figure 12: Shorter Constrained IK Chain Reaches the Goal There are probably better ways of constraining the system, which are mentioned in chapter five. The problem with clamping Euler angles is that when converting between a quaternion and Euler angles, it is difficult to know which angle is doing what. There are many ways of expressing a quaternion as a set of Euler angles because the order in which the rotations are applied matters. For example, you can express a quaternion as an XYZ rotation or a ZYX rotation. Both have the same result, but the values for each axis are quite different. This is what makes clamping Euler angles quite unpredictable and burdening. Instead, the quaternion itself needs to be constrained. When looking at the overall control of the system, we can effectively say that the desired goal for the end effector is easily controlled, but that the desired orientation of the bones within the chain is somewhat uncontrollable. There are small things like giving 30 Page

38 individual joints their own targets to achieve, or constraining the system to basic human motion. However, the more control expressed on the system, the less room the IK solver has to meet its goal. SCALABILITY The scalability of the system is based on its combined performance and control. We examine how the performance would scale on skeletons of different makeup. We want to know how the system would perform on a skeleton that has many different limbs or many bones in each limb, like a tail. This steps outside of human motion, but is important when considering a system for commercial purposes and use in many games. Looking at the performance of the system, we can see that it linearly increases based on the number of bones a chain and the number of IK chains running at the same time. The average skeleton will not need more than four bones in a single chain. Human motion has been predefined, and has been the basis for testing this system. When you look at other species or even alien species such as in Spore, things get a bit more complicated. The IK for those creatures tends to be small, maybe 3 bones in a single chain. However, some creatures have many arms and legs all working together. The performance of a single creature with six legs and two bones in each leg is very different from a single human with two arms and legs. It would be important to have many predefined splines for each type of limb and use them on the chains within that skeleton. If different skeletons can use the same splines even though they have different chains, then the memory footprint can be reduced. The algorithm itself would work best with fewer bones in each chain than fewer chains (see Table 1). This is because fewer bones 31 Page

39 require less iteration. Therefore, performance scales well, especially if there are very few bones in each chain. The control and adaptability of the system is a different matter. Adaptability of the system starts with the base IK solver, and ends with the constrained motion. The control of the system is all about the constrained motion. Therefore, we look at how the constraints scale with the system. An unconstrained system scales very well. We can expect the end effector to reach its goal and follow the spline animation closely. Unfortunately, the system gets into trouble as more constrained bones are added to the chain (see Figures 8 through 10). It is possible that other forms of constraint would make the system scale better with the number of bones in each chain, but it will likely affect the performance in a negative way. As the system stands control does not scale well when constrained, and therefore the adaptability of the system does not scale well. SUMMARY The system presented here is very fast at solving the inverse kinematics problem. The memory footprint for storing animations is small, and the system will perform quickly on the skeletons used in games. The end effector reaches its goal nearly every time in an unconstrained system, however it is not very practical in animation. Artists require finesse over their characters and need to see how they will look during runtime. It is important that tools to author end effector splines and visualize the IK solution are necessary when developing animations with this system. The IK solver at runtime will need to constrain the motion to the context of what the character should be able to do. These constraints hurt the adaptability of the system and pull end effectors 32 Page

40 away from their goals. Even if they do, it is unlikely that the desired pose will be the solution. Other forms of constraining the system are necessary for it to be effective in games. In a constrained system, there is little or no control over the rest of the bones in the animation. A secondary constraint can be placed for intermediate joints such as elbows or knees to reach for. These changes would greatly help the way that limbs interact with their environment and could potentially give the system a stable level of control without harming the performance. The system scales very well with performance, but as the system scales with more bones in an IK chain, the control hurts the adaptability even more. In the next chapter, we will look deeper into the limits of the system, discuss our words of wisdom when working with inverse kinematics, and talk about the future improvements and ways this system could better be implemented. 33 P age

41 CHAPTER 5: CONCLUSION Inverse kinematics offers a glimpse at a different way of animating characters in 3D games. Fighting games require tons of animations and interaction between characters and environments. Traditional animation can often be very rigid and repetitive in games that require a lot of interaction. With inverse kinematics, animations can further extend themselves to be more adaptable and lively. The system described in this thesis implements an inverse kinematic solution where the goal position follows an authored, but adaptable spline for the end effector to achieve. IK chains can have any number of bones in them, and the solution can iterate any number of times over these bones. The system performs very well with a small memory footprint and fast average times. However, when attempting to control the animations using constraints, adaptability is compromised and the animation tends to look less desirable as the number of bones in each chain increases. In this chapter we discuss the limitations of the system and provide words of wisdom that require attention when implementing a similar system or dealing at all with inverse kinematics. Finally, future improvements and research are outlined in this chapter. 34 P age

42 ARTIFACT LIMITS The limits of the artifact do not necessarily affect the performance, control, or scalability of the system. However, they do require attention and solutions to these limitations will be described in this chapter. The artifact itself relies on exported 3ds Max models and their makeup. 3ds Max has a built-in human skeleton format it calls a biped. The biped contains a certain number of limbs and bones in each limb, along with particular naming conventions for each. The system uses this biped format when extracting information about the skeleton and different limbs. It cannot segment skeletons on its own, and must be told which bones are in which limb, etc. When invoking the IK solver, the system takes the current spline and samples into it, then sends the new goal position to the solver for a given limb. It does not operate on multiple limbs at a time or aggregate orientations and blend between them. This would be useful if the spine was being pulled by two arms attempting to reach different goals. It is not a difficult task to achieve, but requires refactoring the system so that instead of applying the new orientations immediately, they are stored and blended at the end of the solver. One of the biggest limitations of the system is the method of constraining the motion. Currently, the solver takes a pre-authored set of min and max Euler angles to clamp each bone. This clamping is extremely unstable because converting a quaternion to Euler angles is virtually impossible without context, because it is unknown how that quaternion is oriented (XYZ rotation versus ZYX, etc.) A better way of constraining the 35 P age

43 system is by using the bone as a sort of line in space, a polygon window, and fixing up the quaternion so that the bone is aligned inside of the polygon. In doing this, it is unknown how performance will be affected. Another limitation is goal orientation. Currently the end effector simply attempts to reach the goal, but without a desired orientation. There are an unlimited number of examples of why you would want to orient the end effector. Perhaps the end effector is a hand and needs to align perfectly to a handlebar. Maybe the end effector is a foot and must rest flat on the ground. This is not a difficult task to do because in most cases the end effector can simply orient however we want without compromising the adaptability of the IK solution, but it is difficult to author with our spline animation definition. The final orientation would have to be relative to some object (the spline curve, target object, or character). WORDS OF WISDOM Cyclic Coordinate Descent algorithm is fast and not terribly hard to implement. What is difficult is getting the most out of it. There are a lot of things to consider when working with CCD, because it can be unstable and unpredictable at times. Beyond constraining the system, there are many things to take into consideration when implementing a solution. CCD iterates over the bones in the chain, applying a rotation such that the end effector is brought closer to the goal. What happens when the goal is between the current bone and the end effector? The iteration is wasted and does nothing because it can t rotate that bone to be any more useful to the end effector. Something that might help is a little bit of chaos. By knocking the current bone to the side, it is possible 36 Page

44 that later bones will rotate smoothly toward the end effector, instead of becoming a singularity, where multiple solutions seem possible. Therefore, try applying random rotations to a given bone (preferably one at the start of the chain) and letting future iterations solve the problem. Another thing to consider is the order in which bones are oriented. Start from the end effector or from the other end of the chain? Almost every implementation iterates from the end effector down through the other bones, because other bones may overshoot the end effector early on. By rotating the end effector first, singularities are pre-empted in some cases. This also creates a sort of pulling feel to the end effector. The reverse would create a more compressed feeling. The reason for using CCD in this system was to ensure that the IK solution attempted to keep the end effector on the goal. A Jacobian implementation would converge much slower on the goal, but if it s possible to minimize the scaling error, then this method might be better. That s because Jacobian methods are good at moving from one point to another rather than just trying to find a solution that works like CCD. Quaternions are elegant structures, and Euler angles are very sloppy when it comes to animation. Quaternions reduce the memory footprint of orientations, and become very fast to combine or operate on. Converting between quaternions and Euler angles is a difficult challenge because you have to know which way rotations are being applied in the quaternion. Euler angles can be expressed in many combinations and one must be careful when converting and clamping them. When faced with a challenge to use Euler angles, seek alternate approaches before doing so. 37 P age

45 Always think about what possibilities the system will need to deal with. Underlying animations are important in an IK system because individual limbs are independent of one another. If during a punch, we want the character s foot to tilt off the ground, an underlying animation needs to be played on it. Likewise, if the character needs to catch an opponent s fist in the air, then the IK will run on the arm, and the hand will grip in mid-air as an overlay, but not affect the IK solver. It is always good to try new things and see what works and what fails. FUTURE IMPROVEMENTS AND FURTHER RESEARCH There are tons of future improvements and various research topics to explore from this system. They include different tools to use when authoring animations and constraints, new constraint methods, and different ways of blending animations together. Different tools would convert to the system into a more commercialized product. Tools are necessary for artists to author animations and constrain the character. The following are just a few tool features that would make the system much more useful: Spline building for the end effector, and allowing artists to author them Different spline points adapt to the environment in different ways o Transform relative to the character o Transform relative to the spline curvature o Transform relative to the target/goal object Constraint editor so artists could author constraints for each bone o Polygon-Windows instead of Euler angles o Minimum is a single point in space o Maximum is a sphere Visualizer with IK solver running in real time as constraints and splines are authored 38 P age

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 4204 Computer Graphics Computer Animation Adapted from notes by Yong Cao Virginia Tech 1 Outline Principles of Animation Keyframe Animation Additional challenges in animation 2 Classic animation Luxo

More information

Computer Animation. Lecture 2. Basics of Character Animation

Computer Animation. Lecture 2. Basics of Character Animation Computer Animation Lecture 2. Basics of Character Animation Taku Komura Overview Character Animation Posture representation Hierarchical structure of the body Joint types Translational, hinge, universal,

More information

Using Autodesk HumanIK Middleware to Enhance Character Animation for Games

Using Autodesk HumanIK Middleware to Enhance Character Animation for Games Autodesk HumanIK 4.5 Using Autodesk HumanIK Middleware to Enhance Character Animation for Games Unlock your potential for creating more believable characters and more engaging, innovative gameplay with

More information

animation animation shape specification as a function of time

animation animation shape specification as a function of time animation animation shape specification as a function of time animation representation many ways to represent changes with time intent artistic motion physically-plausible motion efficiency control typically

More information

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

This week. CENG 732 Computer Animation. Challenges in Human Modeling. Basic Arm Model CENG 732 Computer Animation Spring 2006-2007 Week 8 Modeling and Animating Articulated Figures: Modeling the Arm, Walking, Facial Animation This week Modeling the arm Different joint structures Walking

More information

Mocap in a 3D Pipeline

Mocap in a 3D Pipeline East Tennessee State University Digital Commons @ East Tennessee State University Undergraduate Honors Theses 5-2014 Mocap in a 3D Pipeline Logan T. Maides Follow this and additional works at: http://dc.etsu.edu/honors

More information

Kinematical Animation. lionel.reveret@inria.fr 2013-14

Kinematical Animation. lionel.reveret@inria.fr 2013-14 Kinematical Animation 2013-14 3D animation in CG Goal : capture visual attention Motion of characters Believable Expressive Realism? Controllability Limits of purely physical simulation : - little interactivity

More information

Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau

Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau 04/02 Introduction & projective rendering 11/02 Prodedural modeling, Interactive modeling with parametric surfaces 25/02 Introduction

More information

How to increase Bat Speed & Bat Quickness / Acceleration

How to increase Bat Speed & Bat Quickness / Acceleration How to increase Bat Speed & Bat Quickness / Acceleration What is Bat Speed? Bat Speed: Bat speed is measured in miles per hour (MPH) and considers only the highest speed of the bat head (peak velocity)

More information

Interactive Computer Graphics

Interactive Computer Graphics Interactive Computer Graphics Lecture 18 Kinematics and Animation Interactive Graphics Lecture 18: Slide 1 Animation of 3D models In the early days physical models were altered frame by frame to create

More information

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008. COMP60321 Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE M.Sc. in Advanced Computer Science Computer Animation Friday 18 th January 2008 Time: 09:45 11:45 Please answer any THREE Questions

More information

animation shape specification as a function of time

animation shape specification as a function of time animation 1 animation shape specification as a function of time 2 animation representation many ways to represent changes with time intent artistic motion physically-plausible motion efficiency typically

More information

Character Animation Tutorial

Character Animation Tutorial Character Animation Tutorial 1.Overview 2.Modelling 3.Texturing 5.Skeleton and IKs 4.Keys 5.Export the character and its animations 6.Load the character in Virtools 7.Material & texture tuning 8.Merge

More information

Metrics on SO(3) and Inverse Kinematics

Metrics on SO(3) and Inverse Kinematics Mathematical Foundations of Computer Graphics and Vision Metrics on SO(3) and Inverse Kinematics Luca Ballan Institute of Visual Computing Optimization on Manifolds Descent approach d is a ascent direction

More information

CS 4620 Practicum Programming Assignment 6 Animation

CS 4620 Practicum Programming Assignment 6 Animation CS 4620 Practicum Programming Assignment 6 Animation out: Friday 14th November 2014 due: : Monday 24th November 2014 1 Introduction In this assignment, we will explore a common topic in animation: key

More information

Pitching Drills. Our philosophies/goals

Pitching Drills. Our philosophies/goals Pitching Drills Each of these drills can be done at home, inside. None of these drills involve throwing a baseball. Instead, they focus on creating muscle memory. The towel drills can be done either with

More information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Principles of Traditional Animation How to create maximum impact page 1 How to create maximum impact Early animators worked from scratch to analyze and improve upon silence

More information

Linear Programming. March 14, 2014

Linear Programming. March 14, 2014 Linear Programming March 1, 01 Parts of this introduction to linear programming were adapted from Chapter 9 of Introduction to Algorithms, Second Edition, by Cormen, Leiserson, Rivest and Stein [1]. 1

More information

Intermediate Tutorials Modeling - Trees. 3d studio max. 3d studio max. Tree Modeling. 1.2206 2006 Matthew D'Onofrio Page 1 of 12

Intermediate Tutorials Modeling - Trees. 3d studio max. 3d studio max. Tree Modeling. 1.2206 2006 Matthew D'Onofrio Page 1 of 12 3d studio max Tree Modeling Techniques and Principles 1.2206 2006 Matthew D'Onofrio Page 1 of 12 Modeling Trees Tree Modeling Techniques and Principles The era of sprites and cylinders-for-trunks has passed

More information

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

Chapter 1. Introduction. 1.1 The Challenge of Computer Generated Postures Chapter 1 Introduction 1.1 The Challenge of Computer Generated Postures With advances in hardware technology, more powerful computers become available for the majority of users. A few years ago, computer

More information

The KaleidaGraph Guide to Curve Fitting

The KaleidaGraph Guide to Curve Fitting The KaleidaGraph Guide to Curve Fitting Contents Chapter 1 Curve Fitting Overview 1.1 Purpose of Curve Fitting... 5 1.2 Types of Curve Fits... 5 Least Squares Curve Fits... 5 Nonlinear Curve Fits... 6

More information

Animation. Persistence of vision: Visual closure:

Animation. Persistence of vision: Visual closure: Animation Persistence of vision: The visual system smoothes in time. This means that images presented to the eye are perceived by the visual system for a short time after they are presented. In turn, this

More information

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps Introduction Computer stuff Pixels Line Drawing Video Game World 2D 3D Puzzle Characters Camera Time steps Geometry Polygons Linear Algebra NURBS, Subdivision surfaces, etc Movement Collisions Fast Distances

More information

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model CHAPTER 4 CURVES 4.1 Introduction In order to understand the significance of curves, we should look into the types of model representations that are used in geometric modeling. Curves play a very significant

More information

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

The 3D rendering pipeline (our version for this class) The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in camera coordinates Pixels in image coordinates Scene graph Camera Rasterization

More information

Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM

Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM 1 Introduction Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM The technique of motion capture, or using the recorded movements of a live actor to drive a virtual character, has recently

More information

How To Understand General Relativity

How To Understand General Relativity Chapter S3 Spacetime and Gravity What are the major ideas of special relativity? Spacetime Special relativity showed that space and time are not absolute Instead they are inextricably linked in a four-dimensional

More information

Design Analysis of Everyday Thing: Nintendo Wii Remote

Design Analysis of Everyday Thing: Nintendo Wii Remote 1 Philip Stubbs Design Analysis of Everyday Thing: Nintendo Wii Remote I. Introduction: Ever since being released in November 2006, the Nintendo Wii gaming system has revolutionized the gaming experience

More information

The Swing Speed Report

The Swing Speed Report The Swing Speed Report Learning the Secrets of Longer Drives Table of Contents Learning the Secrets of Longer Drives... 2 1. Keep it Flowing... 4 2. Load the swing around the right leg... 5 4. Swing Faster

More information

Using Emergent Behavior to Improve AI in Video Games

Using Emergent Behavior to Improve AI in Video Games Noname manuscript No. (will be inserted by the editor) Using Emergent Behavior to Improve AI in Video Games Janne Parkkila Received: 21.01.2011 / Accepted: date Abstract Artificial Intelligence is becoming

More information

INTRODUCTION TO RENDERING TECHNIQUES

INTRODUCTION TO RENDERING TECHNIQUES INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature

More information

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

ART 269 3D Animation Fundamental Animation Principles and Procedures in Cinema 4D ART 269 3D Animation Fundamental Animation Principles and Procedures in Cinema 4D Components Tracks An animation track is a recording of a particular type of animation; for example, rotation. Some tracks

More information

The Taxman Game. Robert K. Moniot September 5, 2003

The Taxman Game. Robert K. Moniot September 5, 2003 The Taxman Game Robert K. Moniot September 5, 2003 1 Introduction Want to know how to beat the taxman? Legally, that is? Read on, and we will explore this cute little mathematical game. The taxman game

More information

About Hitting a Golf Ball

About Hitting a Golf Ball About Hitting a Golf Ball There are three key principles you need to understand about hitting a golf ball, before you can have success learning how to hit a golf ball: 1) Deliberate Hit ( A to B) - You

More information

Linear Programming. Solving LP Models Using MS Excel, 18

Linear Programming. Solving LP Models Using MS Excel, 18 SUPPLEMENT TO CHAPTER SIX Linear Programming SUPPLEMENT OUTLINE Introduction, 2 Linear Programming Models, 2 Model Formulation, 4 Graphical Linear Programming, 5 Outline of Graphical Procedure, 5 Plotting

More information

LEVEL I SKATING TECHNICAL. September 2007 Page 1

LEVEL I SKATING TECHNICAL. September 2007 Page 1 SKATING September 2007 Page 1 SKATING SKILLS The game of Ice Hockey is a fast-paced, complex, team sport, which demands quick thinking, fast reactions and special athletic skills. Skating is the most important

More information

Animation (-4, -2, 0 ) + (( 2, 6, -4 ) - (-4, -2, 0 ))*.75 = (-4, -2, 0 ) + ( 6, 8, -4)*.75 = (.5, 4, -3 ).

Animation (-4, -2, 0 ) + (( 2, 6, -4 ) - (-4, -2, 0 ))*.75 = (-4, -2, 0 ) + ( 6, 8, -4)*.75 = (.5, 4, -3 ). Animation A Series of Still Images We Call Animation Animation needs no explanation. We see it in movies and games. We grew up with it in cartoons. Some of the most popular, longest-running television

More information

BPM: Chess vs. Checkers

BPM: Chess vs. Checkers BPM: Chess vs. Checkers Jonathon Struthers Introducing the Games Business relies upon IT systems to perform many of its tasks. While many times systems don t really do what the business wants them to do,

More information

imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing

imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing www.imcfamos.com imc FAMOS at a glance Four editions to Optimize

More information

Linear Programming Problems

Linear Programming Problems Linear Programming Problems Linear programming problems come up in many applications. In a linear programming problem, we have a function, called the objective function, which depends linearly on a number

More information

Choosing a Computer for Running SLX, P3D, and P5

Choosing a Computer for Running SLX, P3D, and P5 Choosing a Computer for Running SLX, P3D, and P5 This paper is based on my experience purchasing a new laptop in January, 2010. I ll lead you through my selection criteria and point you to some on-line

More information

1. Abstract 2. Introduction 3. Algorithms and Techniques

1. Abstract 2. Introduction 3. Algorithms and Techniques MS PROJECT Virtual Surgery Piyush Soni under the guidance of Dr. Jarek Rossignac, Brian Whited Georgia Institute of Technology, Graphics, Visualization and Usability Center Atlanta, GA piyush_soni@gatech.edu,

More information

Kinematics & Dynamics

Kinematics & Dynamics Overview Kinematics & Dynamics Adam Finkelstein Princeton University COS 46, Spring 005 Kinematics Considers only motion Determined by positions, velocities, accelerations Dynamics Considers underlying

More information

YMCA Basketball Games and Skill Drills for 3 5 Year Olds

YMCA Basketball Games and Skill Drills for 3 5 Year Olds YMCA Basketball Games and s for 3 5 Year Olds Tips ( s) Variations Page 2 Dribbling Game 10 Players will learn that they must be able to dribble to attack the basket (target) to score in basketball. The

More information

Example Chapter 08-Number 09: This example demonstrates some simple uses of common canned effects found in popular photo editors to stylize photos.

Example Chapter 08-Number 09: This example demonstrates some simple uses of common canned effects found in popular photo editors to stylize photos. 08 SPSE ch08 2/22/10 11:34 AM Page 156 156 Secrets of ProShow Experts: The Official Guide to Creating Your Best Slide Shows with ProShow Gold and Producer Figure 8.18 Using the same image washed out and

More information

IMD4003 3D Computer Animation

IMD4003 3D Computer Animation Contents IMD4003 3D Computer Animation Strange from MoCap G03 Correcting Animation in MotionBuilder Prof. Chris Joslin Overview This document covers how to correct animation (specifically rotations) in

More information

FREE FALL. Introduction. Reference Young and Freedman, University Physics, 12 th Edition: Chapter 2, section 2.5

FREE FALL. Introduction. Reference Young and Freedman, University Physics, 12 th Edition: Chapter 2, section 2.5 Physics 161 FREE FALL Introduction This experiment is designed to study the motion of an object that is accelerated by the force of gravity. It also serves as an introduction to the data analysis capabilities

More information

Pushes and Pulls. TCAPS Created June 2010 by J. McCain

Pushes and Pulls. TCAPS Created June 2010 by J. McCain Pushes and Pulls K i n d e r g a r t e n S c i e n c e TCAPS Created June 2010 by J. McCain Table of Contents Science GLCEs incorporated in this Unit............... 2-3 Materials List.......................................

More information

Copyright 2011 Casa Software Ltd. www.casaxps.com. Centre of Mass

Copyright 2011 Casa Software Ltd. www.casaxps.com. Centre of Mass Centre of Mass A central theme in mathematical modelling is that of reducing complex problems to simpler, and hopefully, equivalent problems for which mathematical analysis is possible. The concept of

More information

Moven Studio realtime. streaming

Moven Studio realtime. streaming Moven Studio realtime network streaming UDP protocol specification Document MV0305P Revision B, 19 December 2007 Xsens Technologies B.V. phone +31 88 XSENS 00 Pantheon 6a +31 88 97367 00 P.O. Box 559 fax

More information

THE SPEED PROGRAM THE following is A list Of POinTS THAT PRODucE RESulTS in SPEED improvement: CHANGE THE GAME

THE SPEED PROGRAM THE following is A list Of POinTS THAT PRODucE RESulTS in SPEED improvement: CHANGE THE GAME THE SPEED PROGRAM Remember, perfect technique is the #1 emphasis with the BFS Speed Program. Faster times will follow perfect technique. The Speed Program is as follows: 1. Start with a Sprint Learning

More information

Posture: Alive and kicking

Posture: Alive and kicking Posture: Alive and kicking Bring your swing to life; get out of your own way and your golf will be Alive and Kicking. You should be comfortable when you go for a walk in the park or when you lie in bed

More information

The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy

The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy BMI Paper The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy Faculty of Sciences VU University Amsterdam De Boelelaan 1081 1081 HV Amsterdam Netherlands Author: R.D.R.

More information

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

Graphics. Computer Animation 고려대학교 컴퓨터 그래픽스 연구실. kucg.korea.ac.kr 1 Graphics Computer Animation 고려대학교 컴퓨터 그래픽스 연구실 kucg.korea.ac.kr 1 Computer Animation What is Animation? Make objects change over time according to scripted actions What is Simulation? Predict how objects

More information

Elasticity. I. What is Elasticity?

Elasticity. I. What is Elasticity? Elasticity I. What is Elasticity? The purpose of this section is to develop some general rules about elasticity, which may them be applied to the four different specific types of elasticity discussed in

More information

Arrangements And Duality

Arrangements And Duality Arrangements And Duality 3.1 Introduction 3 Point configurations are tbe most basic structure we study in computational geometry. But what about configurations of more complicated shapes? For example,

More information

Decision Making under Uncertainty

Decision Making under Uncertainty 6.825 Techniques in Artificial Intelligence Decision Making under Uncertainty How to make one decision in the face of uncertainty Lecture 19 1 In the next two lectures, we ll look at the question of how

More information

Let s first see how precession works in quantitative detail. The system is illustrated below: ...

Let s first see how precession works in quantitative detail. The system is illustrated below: ... lecture 20 Topics: Precession of tops Nutation Vectors in the body frame The free symmetric top in the body frame Euler s equations The free symmetric top ala Euler s The tennis racket theorem As you know,

More information

PDF Primer PDF. White Paper

PDF Primer PDF. White Paper White Paper PDF Primer PDF What is PDF and what is it good for? How does PDF manage content? How is a PDF file structured? What are its capabilities? What are its limitations? Version: 1.0 Date: October

More information

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A

More information

(Refer Slide Time: 2:03)

(Refer Slide Time: 2:03) Control Engineering Prof. Madan Gopal Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 11 Models of Industrial Control Devices and Systems (Contd.) Last time we were

More information

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

INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users INSTRUCTOR WORKBOOK for MATLAB /Simulink Users Developed by: Amir Haddadi, Ph.D., Quanser Peter Martin, M.A.SC., Quanser Quanser educational solutions are powered by: CAPTIVATE. MOTIVATE. GRADUATE. PREFACE

More information

Standard Operating Procedure for Handling an Inanimate Load

Standard Operating Procedure for Handling an Inanimate Load Standard Operating Procedure for Handling an Inanimate Load Moving and handling an inanimate load/s is a key part of the working day for most employees. Moving inanimate loads can take place in many different

More information

Operating System Resource Management. Burton Smith Technical Fellow Microsoft Corporation

Operating System Resource Management. Burton Smith Technical Fellow Microsoft Corporation Operating System Resource Management Burton Smith Technical Fellow Microsoft Corporation Background Resource Management (RM) is a primary operating system responsibility It lets competing applications

More information

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

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build

More information

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

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool 1 CEIT 323 Lab Worksheet 1 MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool Classic Motion Tween Classic tweens are an older way of

More information

IF The customer should receive priority service THEN Call within 4 hours PCAI 16.4

IF The customer should receive priority service THEN Call within 4 hours PCAI 16.4 Back to Basics Backward Chaining: Expert System Fundamentals By Dustin Huntington Introduction Backward chaining is an incredibly powerful yet widely misunderstood concept, yet it is key to building many

More information

INTRUSION PREVENTION AND EXPERT SYSTEMS

INTRUSION PREVENTION AND EXPERT SYSTEMS INTRUSION PREVENTION AND EXPERT SYSTEMS By Avi Chesla avic@v-secure.com Introduction Over the past few years, the market has developed new expectations from the security industry, especially from the intrusion

More information

Motion Capture Technologies. Jessica Hodgins

Motion Capture Technologies. Jessica Hodgins Motion Capture Technologies Jessica Hodgins Motion Capture Animation Video Games Robot Control What games use motion capture? NBA live PGA tour NHL hockey Legends of Wrestling 2 Lords of Everquest Lord

More information

Movement Animset Pro v.1.5

Movement Animset Pro v.1.5 Movement Animset Pro v.1.5 Animations description and usage Idle TurnRt90_Loop TurnLt90_Loop TurnRt180 TurnLt180 WalkFwdLoop WalkFwdStart WalkFwdStart180_R WalkFwdStart180_L WalkFwdStart90_L WalkFwdStart90_R

More information

Robot Task-Level Programming Language and Simulation

Robot Task-Level Programming Language and Simulation Robot Task-Level Programming Language and Simulation M. Samaka Abstract This paper presents the development of a software application for Off-line robot task programming and simulation. Such application

More information

Scripted Operator Shoulder

Scripted Operator Shoulder Scripted Operator Shoulder by Josh Murtack, certified instructor from Vancouver Film School In this tutorial you will learn how to apply and edit scripted operators to create a shoulder rig that is both

More information

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

Tutorial: Biped Character in 3D Studio Max 7, Easy Animation Tutorial: Biped Character in 3D Studio Max 7, Easy Animation Written by: Ricardo Tangali 1. Introduction:... 3 2. Basic control in 3D Studio Max... 3 2.1. Navigating a scene:... 3 2.2. Hide and Unhide

More information

Adopting Agile Testing

Adopting Agile Testing Adopting Agile Testing A Borland Agile Testing White Paper August 2012 Executive Summary More and more companies are adopting Agile methods as a flexible way to introduce new software products. An important

More information

Maya 2014 Basic Animation & The Graph Editor

Maya 2014 Basic Animation & The Graph Editor Maya 2014 Basic Animation & The Graph Editor When you set a Keyframe (or Key), you assign a value to an object s attribute (for example, translate, rotate, scale, color) at a specific time. Most animation

More information

Constrained curve and surface fitting

Constrained curve and surface fitting Constrained curve and surface fitting Simon Flöry FSP-Meeting Strobl (June 20, 2006), floery@geoemtrie.tuwien.ac.at, Vienna University of Technology Overview Introduction Motivation, Overview, Problem

More information

Constraint satisfaction and global optimization in robotics

Constraint satisfaction and global optimization in robotics Constraint satisfaction and global optimization in robotics Arnold Neumaier Universität Wien and Jean-Pierre Merlet INRIA Sophia Antipolis 1 The design, validation, and use of robots poses a number of

More information

Wait-Time Analysis Method: New Best Practice for Performance Management

Wait-Time Analysis Method: New Best Practice for Performance Management WHITE PAPER Wait-Time Analysis Method: New Best Practice for Performance Management September 2006 Confio Software www.confio.com +1-303-938-8282 SUMMARY: Wait-Time analysis allows IT to ALWAYS find the

More information

Decimal Notations for Fractions Number and Operations Fractions /4.NF

Decimal Notations for Fractions Number and Operations Fractions /4.NF Decimal Notations for Fractions Number and Operations Fractions /4.NF Domain: Cluster: Standard: 4.NF Number and Operations Fractions Understand decimal notation for fractions, and compare decimal fractions.

More information

Intro to the Art of Computer Science

Intro to the Art of Computer Science 1 LESSON NAME: Intro to the Art of Computer Science Lesson time: 45 60 Minutes : Prep time: 15 Minutes Main Goal: Give the class a clear understanding of what computer science is and how it could be helpful

More information

LAB 6: GRAVITATIONAL AND PASSIVE FORCES

LAB 6: GRAVITATIONAL AND PASSIVE FORCES 55 Name Date Partners LAB 6: GRAVITATIONAL AND PASSIVE FORCES And thus Nature will be very conformable to herself and very simple, performing all the great Motions of the heavenly Bodies by the attraction

More information

1 Review of Least Squares Solutions to Overdetermined Systems

1 Review of Least Squares Solutions to Overdetermined Systems cs4: introduction to numerical analysis /9/0 Lecture 7: Rectangular Systems and Numerical Integration Instructor: Professor Amos Ron Scribes: Mark Cowlishaw, Nathanael Fillmore Review of Least Squares

More information

Grid Computing for Artificial Intelligence

Grid Computing for Artificial Intelligence Grid Computing for Artificial Intelligence J.M.P. van Waveren May 25th 2007 2007, Id Software, Inc. Abstract To show intelligent behavior in a First Person Shooter (FPS) game an Artificial Intelligence

More information

CMSC 425: Lecture 13 Animation for Games: Basics Tuesday, Mar 26, 2013

CMSC 425: Lecture 13 Animation for Games: Basics Tuesday, Mar 26, 2013 CMSC 425: Lecture 13 Animation for Games: Basics Tuesday, Mar 26, 2013 Reading: Chapt 11 of Gregory, Game Engine Architecture. Game Animation: Most computer games revolve around characters that move around

More information

Test Automation Architectures: Planning for Test Automation

Test Automation Architectures: Planning for Test Automation Test Automation Architectures: Planning for Test Automation Douglas Hoffman Software Quality Methods, LLC. 24646 Heather Heights Place Saratoga, California 95070-9710 Phone 408-741-4830 Fax 408-867-4550

More information

Classifying Manipulation Primitives from Visual Data

Classifying Manipulation Primitives from Visual Data Classifying Manipulation Primitives from Visual Data Sandy Huang and Dylan Hadfield-Menell Abstract One approach to learning from demonstrations in robotics is to make use of a classifier to predict if

More information

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

CATIA V5 Tutorials. Mechanism Design & Animation. Release 18. Nader G. Zamani. University of Windsor. Jonathan M. Weaver. University of Detroit Mercy CATIA V5 Tutorials Mechanism Design & Animation Release 18 Nader G. Zamani University of Windsor Jonathan M. Weaver University of Detroit Mercy SDC PUBLICATIONS Schroff Development Corporation www.schroff.com

More information

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

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu www.cs.ucr.edu/~vbz. Objectives CS130 - Intro to computer graphics Dr. Victor B. Zordan vbz@cs.ucr.edu www.cs.ucr.edu/~vbz Objectives Explore basics of computer graphics Survey application areas Today, brief introduction to graphics

More information

High Accuracy Articulated Robots with CNC Control Systems

High Accuracy Articulated Robots with CNC Control Systems Copyright 2012 SAE International 2013-01-2292 High Accuracy Articulated Robots with CNC Control Systems Bradley Saund, Russell DeVlieg Electroimpact Inc. ABSTRACT A robotic arm manipulator is often an

More information

Stirling Paatz of robot integrators Barr & Paatz describes the anatomy of an industrial robot.

Stirling Paatz of robot integrators Barr & Paatz describes the anatomy of an industrial robot. Ref BP128 Anatomy Of A Robot Stirling Paatz of robot integrators Barr & Paatz describes the anatomy of an industrial robot. The term robot stems from the Czech word robota, which translates roughly as

More information

The Fundamental Principles of Animation

The Fundamental Principles of Animation Tutorial #11 Prepared by Gustavo Carneiro This tutorial was based on the Notes by P. Coleman, on the web-page http://www.comet-cartoons.com/toons/3ddocs/charanim/, and on the paper Principles of Traditional

More information

CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM

CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM Now this lecture is in a way we can say an introduction

More information

recursion, O(n), linked lists 6/14

recursion, O(n), linked lists 6/14 recursion, O(n), linked lists 6/14 recursion reducing the amount of data to process and processing a smaller amount of data example: process one item in a list, recursively process the rest of the list

More information

Lab 11. Simulations. The Concept

Lab 11. Simulations. The Concept Lab 11 Simulations In this lab you ll learn how to create simulations to provide approximate answers to probability questions. We ll make use of a particular kind of structure, called a box model, that

More information

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

The Physics and Math of Ping-pong and How It Affects Game Play. By: Connor Thompson & Andrew Johnson

The Physics and Math of Ping-pong and How It Affects Game Play. By: Connor Thompson & Andrew Johnson The Physics and Math of Ping-pong and How It Affects Game Play 1 The Physics and Math of Ping-pong and How It Affects Game Play By: Connor Thompson & Andrew Johnson The Practical Applications of Advanced

More information

Lesson 26: Reflection & Mirror Diagrams

Lesson 26: Reflection & Mirror Diagrams Lesson 26: Reflection & Mirror Diagrams The Law of Reflection There is nothing really mysterious about reflection, but some people try to make it more difficult than it really is. All EMR will reflect

More information

Session 7 Bivariate Data and Analysis

Session 7 Bivariate Data and Analysis Session 7 Bivariate Data and Analysis Key Terms for This Session Previously Introduced mean standard deviation New in This Session association bivariate analysis contingency table co-variation least squares

More information

Self-Improving Supply Chains

Self-Improving Supply Chains Self-Improving Supply Chains Cyrus Hadavi Ph.D. Adexa, Inc. All Rights Reserved January 4, 2016 Self-Improving Supply Chains Imagine a world where supply chain planning systems can mold themselves into

More information

Time Series Forecasting Techniques

Time Series Forecasting Techniques 03-Mentzer (Sales).qxd 11/2/2004 11:33 AM Page 73 3 Time Series Forecasting Techniques Back in the 1970s, we were working with a company in the major home appliance industry. In an interview, the person

More information