Transcript Document
Computer Animation
CSE169: Computer Animation
Instructor: Steve Rotenberg
UCSD, Winter 2004
CSE169 (was 190B)
Computer Animation Programming
Instructor: Steve Rotenberg
[email protected]
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:
http://graphics.ucsd.edu/courses/cse169_w04/index.html
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:
Videos: Peter Gabriel’s “Kiss That Frog”
Games:
The Lawnmower Man
Enertopia (stereoscopic IMAX)
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
Project 2: Due Beginning of Week 5
Skin: Load .skin file and attach to the skeleton
Project 3: Due Beginning of Week 7
Skeleton Hierarchy: Load a .skel file and display a 3D pose-able
skeleton
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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Introduction
Skeletons
Skinning
Keyframes
Facial Animation
Advanced Skinning & Facial
Animation
Inverse Kinematics 1
Inverse Kinematics 2
Animation State Machines &
Blending
Locomotion 1
Locomotion 2
12.
13.
14.
15.
16.
17.
18.
19.
20.
Particle Systems
Collision Detection
Clothing & Hair Simulation
Rigid Bodies
Character Dynamics
Deformable Bodies & Advanced
Physical Simulation
Behavioral Animation & Artificial
Intelligence
Motion Capture
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
Hinges, constraints
Deformable bodies (solid
mechanics)
Fluid dynamics
Articulated bodies
Elasticity, plasticity, viscosity
Fracture
Cloth
Vehicle dynamics
Fluid flow (liquids & gasses)
Combustion (fire, smoke,
explosions…)
Phase changes (melting,
freezing, boiling…)
Cars, boats, airplanes,
helicopters, motorcycles…
Character dynamics
Body motion, skin & muscle,
hair, clothing
Character Animation
Rigging
Skeletons
Skin, face, & deformations
Visual properties
(materials, lighting…)
Secondary motion
(clothing, hair, fur…)
Animation
Motion playback
Motion synthesis
Keyframing
Blending, sequencing
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
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
Film
Imax
NTSC TV
PAL TV
HDTV
Computer
24 fps
48 fps
30 fps (interlaced)
25 fps (interlaced)
60 fps
~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