1 / 21

Character Animation

Character Animation. CGDD 4003. The Skeletal Hierarchy (aka the “rig”). Based on the concept of bones Each bone has exactly one parent Each bone has a transform Not necessarily a matrix (later) How it differs from its parent If its transform is identity matrix Same translation

cara-jacobs
Télécharger la présentation

Character Animation

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. Character Animation CGDD 4003

  2. The Skeletal Hierarchy(aka the “rig”) • Based on the concept of bones • Each bone has exactly one parent • Each bone has a transform • Not necessarily a matrix (later) • How it differs from its parent • If its transform is identity matrix • Same translation • Same rotation (orientation) • The root bone has no parent (e.g. pelvis) • Rotations/translations are relative to local coordinates • There are also synthetic root bones (ground shadows)

  3. Kinematics • Forward kinematics • Moving a parent bone moves the children • Easy to program, hard to animate • Inverse kinematics (IKs) • Moving child bones affects parent bone • Easier for animators • Solve iteratively • Need to draw this on the board…

  4. Euler Angles(pronounced “Oi-luh”) • 3 angles to describe orientation around 3 axes • Order of rotations is important! • Two rotations can result in the sameorientation • Usually stored in a 3x3 matrix. • Two similar rotations have similar values in matrices • Linear blending will be ok • Size is large

  5. Enter the Quaternion • Another way to represent rotations • Great for interpolation (thus, common) • Uses 4 components (x, y, z, w) • In general, (x, y, z) is the axis of rotation • Length of (x, y, z) is sine of half the rotation angle • w is the cosine of half the rotation angle (20° vs. 340°)

  6. Animation vs. Deformation • Animation • Changing poses to the skeleton over time • No sense of the vertices that surrounds it • Deformation • Applying the skeleton to the mesh • No sense of animation (time) • Animation Controls • Need to be able to start, stop, determine time, change speed • Have a control for each animation for each instance of object

  7. Animation Storage • How big? • Store 4x3 matrix for each bone, for each frame • 30 fps, 50 bones • 5 major characters, 100 animations each • 15 minor characters, 20 animations each • Animation lasts 4 seconds • Xbox 360 has 512MB and Wii has 88MB • The animation system takes up nearly ¼ of all memory? • Can we do better?

  8. Animation Storage • Eliminate unnecessary data • Most bones don’t need shear, scaling • Some don’t need translation (hips, knees, elbows) • Some characters hardly move! • Space • Scaling, Shearing, Translation = 3 • Rotation (quaternions) = 4 T.K. Baha from Borderlands

  9. Animation Storage • Assume: • 10% of bones shear • 20% of bones scale • 50% have translation • 90% have orientation • One bone / frame is now: vs. the 48 bytes previously • However, we have to reconstruct the 4x3 matrix for each bone now! Note: We’re now at 110MB, still 5 times bigger than budget for Wii. Can we do better?

  10. Animation Storage • Obvious candidate: don’t use 30 fps! • Keyframing: set important poses and then interpolate (old animation technique) • On “average”, 10 keyframes per second • 1/3 the space = 37MB! • OK for Xbox (64MB), bad for Wii (22MB) • Keyframing problems: • Loses data Note: we’re at 37MB. Can we do better?

  11. Animation Storage • Linear interpolation between frames • is time and and are frames • Higher Order Interpolation • Use Bezier (pronounced “Beh-zee-ay”) • Cubic function, with continuity (C0, C1, C2…) • Define controls at endpoints (and ) • Can drop the memory usage by ¼

  12. Continuity Image from Autodesk.com

  13. Playing Animations • Local time • is in reference to the animation • E.g. 0.0 – 5.0 for a 5 second animation • Can also normalize from 0.0-1.0 and have playback speed • Global time is the elapsed time • May not match the local time • Can pause

  14. Blending Animations • Playback of multiple animations together • Linear Interpolation (aka “lerp”) • For quaternions • Normalizing lerp (nlerp) – each component is linearly blended and then renormalized • Spherical lerp (slerp) – the most common • Log-quaternion lerp – complex

  15. Blending Animations • Bone masks: • Imagine waving and walking at the same time • 0.0 = don’t use this bone when blending • 1.0 = completely include that bone • 0.5 = fractional blend

  16. Motion Extraction • Things get hard when the character moves • Animator may/not model at (0,0,0) • What happens during walking? Sliding feet? • What about climbing a ledge? • Must match world/physics engine! • Motion Extraction: “process of taking an animation and deriving the overall movement of a character” – from your text!

  17. Motion Extraction • What if the model doesn’t stay at the origin? • Linear Motion Extraction • Take position of root bone at first/last frame • Divide by duration • Works great for straight lines • Not so great for running in circles • Composite Motion Extraction • Takes into account the rotation • Variable Delta Extraction – just ask the root bone how much it moved since the last frame

  18. Example

  19. Mesh Deformation • Transform each bone into World Space • Start at the root of the skeleton • Multiply it’s transform by the instance’s transform (you now know where the root bone is in the world) • Take the transform of each child bone and multiply it by the root bone’s world transform • Use recursion all the way down

  20. Mesh Deformation • Find the delta from the rest pose • Must “undo” the rest pose using the inverse transform • Multiply world transform by the inverse • Deform the vertices • Each vertex is affected by several bones (4 max) • Influential bones stored as a list of bytes • Deform the vertex normals

  21. Other Considerations

More Related