Computer Animation CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004
CSE169 (was 190B) Computer Animation Programming Instructor: Steve Rotenberg TA: Nick Gebbie Lecture: Center Hall 222 (TTh 6:30-7:50pm) Office: AP&M 3349A (TTh 5-6pm) Lab: AP&M 2444 Web page:
Prerequisites CSE167 or equivalent introduction to computer graphics Familiarity with: Vectors (dot products, cross products…) Matrices (4x4 homogeneous transformations) Polygon rendering Basic lighting (normals, Gouraud, Phong…) OpenGL, Direct3D, Java3D, or equivalent C++ or Java Object oriented programming Basic physics
Undergraduate Computer Graphics at UCSD CSE 167: Introduction to Computer Graphics CSE 168: Rendering Algorithms CSE 169: Computer Animation
Reading Papers Chapters Suggested books 3D Computer Graphics: A Mathematical Introduction with OpenGL (Buss) Advanced Animation and Rendering Techniques (Watt & Watt)
Angel Studios Movies: The Lawnmower Man Enertopia (stereoscopic IMAX) Videos: Peter Gabriel’s “Kiss That Frog” Games: Midnight Club 1 & 2 (PS2, XBox) Transworld Surf (PS2, XBox, GameCube) Smuggler’s Run 1 & 2 (PS2, XBox, GameCube) Midtown Madness 1 & 2 (PC) Savage Quest (Arcade) Test Drive Offroad: Wide Open (PS2) N64 version of Resident Evil 2 (N64) Ken Griffey Jr.’s Slugfest (N64) Major League Baseball Featuring Ken Griffey Jr. (N64) Sold to Take Two Interactive (Rockstar) in November, 2002
Angel Games
Programming Projects Project 1: Due Beginning of Week 3 Skeleton Hierarchy: Load a.skel file and display a 3D pose-able skeleton Project 2: Due Beginning of Week 5 Skin: Load.skin file and attach to the skeleton Project 3: Due Beginning of Week 7 Animation: Load.anim file and play back a key-framed animation on the skeleton Project 4: Due Beginning of Week 10 (Choose one of the following) Cloth: Implement a simple cloth simulation Fancy Particles: Implement a particle system with collision detection and some fancy forces Locomotion & Inverse Kinematics: Implement an IK algorithm and use it to achieve a walking character Rigid Bodies: Implement a simple rigid body system with collisions Choose your own project (but talk to me first)
Grading 15% Project 1 15% Project 2 15% Project 3 20% Project 4 15% Midterm 20% Final
Course Outline 1. Introduction 2. Skeletons 3. Skinning 4. Keyframes 5. Facial Animation 6. Advanced Skinning & Facial Animation 7. Inverse Kinematics 1 8. Inverse Kinematics 2 9. Animation State Machines & Blending 10. Locomotion Locomotion Particle Systems 13. Collision Detection 14. Clothing & Hair Simulation 15. Rigid Bodies 16. Character Dynamics 17. Deformable Bodies & Advanced Physical Simulation 18. Behavioral Animation & Artificial Intelligence 19. Motion Capture 20. Demonstrations
Computer Animation Overview
Applications Special Effects (Movies, TV) Video Games Virtual Reality Simulation, Training, Military Medical Robotics, Animatronics Visualization Communication
Computer Animation Physics (a.k.a. dynamics, simulation, mechanics) Character animation Artificial intelligence
Physics Simulation Particles Rigid bodies Collisions, contact, stacking, rolling, sliding Articulated bodies Hinges, constraints Deformable bodies (solid mechanics) Elasticity, plasticity, viscosity Fracture Cloth Fluid dynamics Fluid flow (liquids & gasses) Combustion (fire, smoke, explosions…) Phase changes (melting, freezing, boiling…) Vehicle dynamics Cars, boats, airplanes, helicopters, motorcycles… Character dynamics Body motion, skin & muscle, hair, clothing
Character Animation Animation Motion playback Keyframing Blending, sequencing Motion synthesis Locomotion (walking, flying, swimming, slithering…) Inverse kinematics Procedural animation Warping & retargetting Physics (inverse dynamics, optimization…) Motion input Motion capture (& other motion input techniques) Vision based capture Rigging Skeletons Skin, face, & deformations Visual properties (materials, lighting…) Secondary motion (clothing, hair, fur…)
Artificial Intelligence Behavioral animation Background characters (flocks, herds, armies, crowds…) Video game animation
Rigging Rigging refers to the construction and setup of an animatable character, similar to the idea of building a puppet A ‘rig’ has numerous degrees of freedom (DOFs) that can be used to control various properties DOFs can represent things like the rotation of the elbow joint, the percentage that an eyelid is open, or any other ‘animatable’ property The animation system specifies values for these DOFs over time, thus animating the rig The rig can also have built in secondary animation such as hair and clothing The difference between rigging & animation makes a nice conceptual separation, and is often reflected in the software architecture The rigging system can encapsulate other systems such as the skeleton, skinning, facial expressions, clothing, and hair The animation system can encapsulate systems such as playback, inverse kinematics, dynamics, locomotion, and motion synthesis
Animation Process while (not finished) { MoveEverything(); DrawEverything(); } Interactive vs. Non-Interactive Real Time vs. Non-Real Time
Frame Rates Film24 fps Imax48 fps NTSC TV30 fps (interlaced) PAL TV25 fps (interlaced) HDTV60 fps Computer~60 fps
Frame Rate Issues Strobing, temporal aliasing Motion blur Interlacing Double buffering (& tearing)
Animation Tools Maya 3D Studio Lightwave Filmbox Blender Many more…
Animation Production Conceptual Design Production Design Modeling Materials & Shaders Rigging Blocking Animation Lighting Effects Rendering Post-Production
Principles of Animation Squash and Stretch Timing Anticipation Staging / Presentation Follow Through / Overlapping Actions Straight Ahead vs. Pose-to-Pose Slow In and Out Arcs Exaggeration Secondary Motion Appeal