1 / 74

CSCE 552 Spring 2010

CSCE 552 Spring 2010. Animation. By Jijun Tang. 2D Example of Transforming. θ. Homogeneous coordinates. Four-dimensional space Combines 3  3 matrix and translation into one 4  4 matrix. What is Physics Simulation?. The Cycle of Motion: Force, F ( t ) , causes acceleration

Download Presentation

CSCE 552 Spring 2010

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCE 552 Spring 2010 Animation By Jijun Tang

  2. 2D Example of Transforming θ

  3. Homogeneous coordinates • Four-dimensional space • Combines 3  3 matrix and translation into one 4  4 matrix

  4. What is Physics Simulation? • The Cycle of Motion: • Force, F(t), causes acceleration • Acceleration, a(t), causes a change in velocity • Velocity, V(t) causes a change in position • Physics Simulation:Solving variations of the above equations over time to emulate the cycle of motion

  5. Concrete Example: Target Practice Projectile Launch Position, pinit Target

  6. Errors Exact Euler

  7. Overlap Testing Results • Useful results of detected collision • Pairs of objects will have collision • Time of collision to take place • Collision normal vector • Collision time calculated by moving object back in time • until right before collision • Bisection is an effective technique

  8. Bisect Testing: Iteration V Time right before the collision

  9. Overlap Testing: Limitations Fails with objects that move too fast • Thin glass vs. bulltes • Unlikely to catch time slice during overlap

  10. Intersection Testing:Swept Geometry • Extrude geometry in direction of movement • Swept sphere turns into a “capsule” shape

  11. Simplified Geometry Approximate complex objects with simpler geometry, like this ellipsoid or bounding boxes

  12. Minkowski Sum

  13. Using Minkowski Sum

  14. Reduce Number of Detections O(n) Time Complexity can be achieved. One solution is to partition space

  15. Animation Overview • Fundamental Concepts • Animation Storage • Playing Animations • Blending Animations • Motion Extraction • Mesh Deformation • Inverse Kinematics • Attachments & Collision Detection • Conclusions

  16. Animation Roles • Programmer – loads information created by the animator and translates it into on screen action. • Animator – Sets up the artwork. Provides motion information to the artwork.

  17. Different types of animation • Particle effects (fire, smoke, etc) • Procedural / Physics • “Hard” object animation (door, robot) • “Soft” object animation (tree swaying in the wind, flag flapping the wind) • Character animation

  18. 2D Versus 3D Animation • Borrow from traditional 2D animation • Understand the limitations of what can be done for real-time games • Designing 3D motions to be viewed from more than one camera angle • Pace motion to match game genre

  19. Animation terms • frame – an image that is displayed on the screen, usually as part of a sequence. • pose – an orientation of an objects or a hierarchy of objects that defines extreme or important motion. • keyframe – a special frame that contains a pose. • tween – the process of going “between” keyframes. • secondary motion – an object motion that is the result of its connection or relationship with another object.

  20. Fundamental Problems • Volume of data, processor limitations • Mathematical complexity, especially for rotations. • Translation of motion

  21. Fundamental Concepts • Skeletal Hierarchy • The Transform • Euler Angles • The 3x3 Matrix • Quaternions • Animation vs Deformation • Models and Instances • Animation Controls

  22. Skeletal Hierarchy • The Skeleton is a tree of bones • Modelling characters • Often flattened to an array in practice • Each bone has a transform, stored relative to its parent’s transform • Top bone in tree is the “root bone” • Normally the hip • May have multiple trees, so multiple roots • Transforms are animated over time • Tree structure is often called a “rig”

  23. Example

  24. The Transform • “Transform” is the term for combined: • Translation • Rotation • Scale • Shear • Can be represented as 4x3 or 4x4 matrix • But usually store as components • Non-identity scale and shear are rare

  25. Examples

  26. Three rotations about three axes Intuitive meaning of values Euler Angles

  27. Euler Angles • This means that we can represent an orientation with 3 numbers • A sequence of rotations around principle axes is called an Euler Angle Sequence • Assuming we limit ourselves to 3 rotations without successive rotations about the same axis, we could use any of the following 12 sequences: XYZ XZY XYX XZX YXZ YZX YXY YZY ZXY ZYX ZXZ ZYZ

  28. Using Euler Angles • To use Euler angles, one must choose which of the 12 representations they want • There may be some practical differences between them and the best sequence may depend on what exactly you are trying to accomplish

  29. Interpolating Euler Angles • One can simply interpolate between the three values independently • This will result in the interpolation following a different path depending on which of the 12 schemes you choose • This may or may not be a problem, depending on your situation • Note: when interpolating angles, remember to check for crossing the +180/-180 degree boundaries

  30. Problems • Euler Angles Are Evil • No standard choice or order of axes • Singularity “poles” with infinite number of representations • Interpolation of two rotations is hard • Slow to turn into matrices • Use matrix rotation

  31. Rotation Matrix

  32. 3x3 Matrix Rotation • Easy to use • Moderately intuitive • Large memory size - 9 values • Interpolation is hard • Introduces scales and shears • Need to re-orthonormalize matrices after

  33. Quaternions • Quaternions are an interesting mathematical concept with a deep relationship with the foundations of algebra and number theory • Invented by W.R.Hamilton in 1843 • In practice, they are most useful to use as a means of representing orientations • A quaternion has 4 components

  34. Quaternions on Rotation • Represents a rotation around an axis • Four values <x,y,z,w> • <x,y,z> is axis vector times sin(θ /2) • w is cos(θ/2) • Interpolation is fast

  35. Illustration

  36. Quaternions (Imaginary Space) • Quaternions are actually an extension to complex numbers • Of the 4 components, one is a ‘real’ scalar number, and the other 3 form a vector in imaginary ijk space!

  37. Quaternions (Scalar/Vector) • Sometimes, they are written as the combination of a scalar value s and a vector value v where

  38. Unit Quaternions • For convenience, we will use only unit length quaternions, as they will be sufficient for our purposes and make things a little easier • These correspond to the set of vectors that form the ‘surface’ of a 4D hypersphere of radius 1 • The ‘surface’ is actually a 3D volume in 4D space, but it can sometimes be visualized as an extension to the concept of a 2D surface on a 3D sphere

  39. Quaternions as Rotations • A quaternion can represent a rotation by an angle θ around a unit axis a: • If a is unit length, then q will be also

  40. Quaternions as Rotations

  41. Quaternion to Matrix • To convert a quaternion to a rotation matrix:

  42. Matrix to Quaternion • Matrix to quaternion is doable • It involves a few ‘if’ statements, a square root, three divisions, and some other stuff • Search online if interested

  43. Animation vs. Deformation • Skeleton + bone transforms = “pose” • Animation changes pose over time • Knows nothing about vertices and meshes • Done by “animation” system on CPU • Deformation takes a pose, distorts the mesh for rendering • Knows nothing about change over time • Done by “rendering” system, often on GPU

  44. Pose

  45. Model • Describes a single type of object • Skeleton + rig • One per object type • Referenced by instances in a scene • Usually also includes rendering data • Mesh, textures, materials, etc • Physics collision hulls, gameplay data, etc

  46. Instance • A single entity in the game world • References a model • Holds current states: • Position & orientation • Game play state – health, ammo, etc • Has animations playing on it • Stores a list of animation controls • Need to be interpolated

  47. Animation Control • Links an animation and an instance • 1 control = 1 anim playing on 1 instance • Holds current data of animation • Current time • Speed • Weight • Masks • Looping state

  48. Animation Storage • The Problem • Decomposition • Keyframes and Linear Interpolation • Higher-Order Interpolation • The Bezier Curve • Non-Uniform Curves • Looping

  49. Storage – The Problem • 4x3 matrices, 60 per second is huge • 200 bone character = 0.5Mb/sec • Consoles have around 256-512Mb • Animation system gets maybe 25% • PC has more memory, but also higher quality requirements

  50. Decomposition • Decompose 4x3 into components • Translation (3 values) • Rotation (4 values - quaternion) • Scale (3 values) • Skew (3 values) • Most bones never scale & shear • Many only have constant translation • But human characters may have higher requirement • Muscle move, smiling, etc. • Cloth under winds • Don’t store constant values every frame, use index instead

More Related