1 / 58

CSCE 552 Fall 2012

CSCE 552 Fall 2012. Animations. By Jijun Tang. 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.

onawa
Download Presentation

CSCE 552 Fall 2012

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 Fall 2012 Animations By Jijun Tang

  2. 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.

  3. 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”

  4. Example

  5. 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

  6. Examples

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

  8. Translation • Translation matrix • Translates the origin by the vector T

  9. Scale • Scale matrix • Scales coordinate axes by a, b, and c • If a = b = c, the scale is uniform

  10. Rotation (Z) • Rotation matrix • Rotates points about the z-axis through the angle q

  11. Rotations (X, Y) • Similar matrices for rotations about x, y

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

  13. 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

  14. 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

  15. 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

  16. 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

  17. Rotation Matrix

  18. 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

  19. 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

  20. 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

  21. Illustration

  22. 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!

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

  24. 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

  25. 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

  26. Quaternions as Rotations

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

  28. 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

  29. 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

  30. Pose

  31. 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

  32. 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

  33. 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

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

  35. 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

  36. 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

  37. Keyframes • Motion is usually smooth • Only store every nth frame (key frames) • Interpolate between keyframes • Linear Interpolate • Inbetweening or “tweening” • Different anims require different rates • Sleeping = low, running = high • Choose rate carefully

  38. Linear Interpolation

  39. Higher-Order Interpolation • Tweening uses linear interpolation • Natural motions are not very linear • Need lots of segments to approximate well • So lots of keyframes • Use a smooth curve to approximate • Fewer segments for good approximation • Fewer control points • Bézier curve is very simple curve

  40. Bézier Curves (2D & 3D) • Bézier curves can be thought of as a higher order extension of linear interpolation p1 p1 p2 p3 p1 p0 p0 p0 p2

  41. The Bézier Curve • (1-t)3F1+3t(1-t)2T1+3t2(1-t)T2+t3F2 T2 t=1.0 T1 F2 t=0.25 F1 t=0.0

  42. The Bézier Curve (2) • Quick to calculate • Precise control over end tangents • Smooth • C0 and C1 continuity are easy to achieve • C2 also possible, but not required here • Requires three control points per curve • (assume F2 is F1 of next segment) • Far fewer segments than linear

  43. C0/C1/C2 The curves meet the"speed" is the same before and after the tangents are shared

  44. Catmull-Rom Curve • Defined by 4 points. Curve passes through middle 2 points. • P = C3t3 + C2t2 + C1t + C0 • C3 = -0.5 * P0 + 1.5 * P1 - 1.5 * P2 + 0.5 * P3C2 = P0 - 2.5 * P1 + 2.0 * P2 - 0.5 * P3C1 = -0.5 * P0 + 0.5 * P2C0 = P1

  45. Non-Uniform Curves • Each segment stores a start time as well • Time + control value(s) = “knot” • Segments can be different durations • Knots can be placed only where needed • Allows perfect discontinuities • Fewer knots in smooth parts of animation • Add knots to guarantee curve values: Transition points between animations

  46. Looping and Continuity • Ensure C0 and C1 for smooth motion • At loop points • At transition points: walk cycle to run cycle • C1 requires both animations are playing at the same speed: reasonable requirement for anim system

  47. Playing Animations • “Global time” is game-time • Animation is stored in “local time” • Animation starts at local time zero • Speed is the ratio between the two • Make sure animation system can change speed without changing current local time • Usually stored in seconds • Or can be in “frames” - 12, 24, 30, 60 per second

  48. Scrubbing • Sample an animation at any local time • Important ability for games • Footstep planting • Motion prediction • AI action planning • Starting a synchronized animation • Walk to run transitions at any time • Avoid delta-compression storage methods • Very hard to scrub or play at variable speed

  49. Delta Compression • Delta compression is a way of storing or transmitting data in the form of differences between sequential data rather than complete files. • The differences are recorded in discrete files called deltas or diffs. • Because changes are often small (only 2% total size on average), it can greatly reduce data redundancy. • Collections of unique deltas are substantially more space-efficient than their non-encoded equivalents.

  50. Animation Blending • The animation blending system allows a model to play more than one animation sequence at a time, while seamlessly blending the sequences • Used to create sophisticated, life-like behavior • Walking and smiling • Running and shooting

More Related