270 likes | 674 Views
Procedural Animation. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004. Project 4. Goal. Do something cool It should relate to computer animation Suggestions: Fancy particle system Cloth simulation Inverse kinematics (Jacobian or CCD)
E N D
Procedural Animation CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004
Goal • Do something cool • It should relate to computer animation • Suggestions: • Fancy particle system • Cloth simulation • Inverse kinematics (Jacobian or CCD) • Locomotion (simple IK & some gaits) • Rigid body physics
Fancy Particle System • Make a particle system that demonstrates several cool features, such as: • Dynamic creation & destruction • Gravity • Aerodynamic drag • Collisions with static objects (triangles) • Elasticity & Friction • Dynamic properties (color, rotation, size…) • Fireworks effects (recursive creation…) • We’ll talk about particles on Tuesday
Cloth Simulation • Cloth is basically a particle system, with some different emphasis • The cloth simulation could include features such as: • Elasticity & damping • Collisions with ground plane (y=0) • Aerodynamic interaction (Bernoulli) • If you are really ambitious, try: • Triangular elements • Tearing, damage • Implicit integration • Self collisions • We’ll talk about this the week after next
Inverse Kinematics • Implement the basic Jacobian transpose IK scheme with a 3-DOF end effector • If you’re feeling lucky, try to add one or more of the following: • Multiple goals & tree structures • 6-DOF goals (orientation) • Cyclic Coordinate Descent (alternate method) • Pseudo-Inverse
Locomotion • Implement a locomotion demo that works with N-legged creatures • It can be similar to the demo I showed in class • You can use the simple analytical 3-DOF IK scheme I showed • Support various biped, quadruped, and other gaits
Rigid Body Physics • Get a simple rigid body demo running that has multiple rigid objects colliding • It can use simple dynamic collisions and doesn’t need to support any sophisticated static contact modes • We’ll talk about rigid bodies the week after next
Choose your own Subject • Choose your own subject! • It should be related to computer animation, but could be a topic outside of what we go over in class • Please talk to me before next Friday to get approval • Feel free to ask me for help in choosing a topic, and I can also point you to some good references and give some pointers • Some ideas: • Flock of birds, school of fish… • Snake simulation • Deformable terrain • Rippling water • Vehicle simulation
Procedural Animation • Although it’s a strange term, procedural animation refers to generation of motion based on some sort of procedure (rather than being pre-recorded) • Of course, that’s a pretty vague description, but usually it refers more to something that could be better described as motion synthesis • All together, it’s a pretty huge subject and contains many different techniques • In some ways, procedural animation is a bag of tricks, and one must mix and match techniques to solve individual problems • I think of procedural animation as involving more than just keyframing, motion capture, and animation blending
Kinematics • Forward and inverse kinematics are standard tools for character animation • Advanced systems allow complex skeleton layouts, multiple arbitrary constraints, kinematic loops… • Many approaches to procedural animation can be constructed on top of an underlying kinematics system
Dynamics • Dynamics refers to the use of physics to generate motion • Forward dynamics computes the simulation of objects responding to internal forces, external forces, and user applied forces • In other words, it computes motion resulting from forces • Advanced forward dynamic systems can simulate particles, rigid bodies, deformable bodies, fracture, fluids, and more • Inverse dynamics refers to the opposite problem of computing forces required to generate a desired motion. This is useful in robotics and in animation methods where we want to control an forward dynamic system
Motion Capture • Motion capture is a very powerful tool for recording real human motion and the motion of some (cooperative) animals • Motion capture technology was very primitive only 10 years ago, but has become quite evolved and is used extensively in the computer animation and video game industries • Earlier research on motion capture focused on design of accurate & cost effective hardware, plus algorithms for optical calibration and tracking of many 3D points with several cameras • Modern research focuses on dynamic adaptation and manipulation of recorded animations
Motion Capture • Most high end motion capture systems use some form of optical technology (cameras or scanners) • Popular commercial systems may have as many as 20 high resolution cameras arranged around a large room. They can track numerous (100’s) of small reflective styrofoam balls that can be attached to actors • Each camera has a resolution in the 1000x1000 range and can capture at 120 frames per second • These systems tend to start at $100,000
Motion Capture • Cheaper systems or systems requiring realtime capture or better portability can use magnetic technology • These systems are pretty good but have some issues with accuracy • Motion capture is also used to capture hand and face movement
Motion Retargeting • An important subject in animation that has developed over the last 10 years is that of motion retargeting • The idea is to take an animation clip designed for one particular character and adapt it to play on a different character • Characters may differ: • Proportionally (same skeleton layout but with different offsets) • Topologically (different skeleton topology and different offsets) • This is a difficult subject because there isn’t always a ‘correct’ solution, and so heuristics must be used
Motion Warping & Blending • Related to retargeting is the subject of motion warping or blending. This takes the blending we talked about in lecture 8 a lot further • Modern approaches to blending do more sophisticated analysis of the motion to identify important similarities and differences
Locomotion • As we saw in the last lecture, locomotion is an important part of character animation • Legged locomotion is very important to many common animals (including humans, of course), but other forms of locomotion have been studied and used in computer animation • Climbing, brachiation • Swimming • Gliding, flying • Slithering, snakes, worms… • Some modern locomotion systems use motion warping and motion analysis techniques to allow one to input some motion capture of a person walking and then automatically adapt their style to different gaits
Sequencing & Scripting • State machines and scripting languages are popular methods for controlling the behaviors of characters over longer periods of time • Some modern state machine approaches can take a bunch of uncorrelated motion captured clips and automatically construct an appropriate state machine • For example, one can motion capture a bunch of generic moves: walk, run, turn, walk & turn, climb steps, walk backward, hop up, hop down… • The system then determines which moves could connect up based on various metrics • The actual motion can then be refined with sophisticated warping & blending schemes
Genetic Algorithms • Several researchers have experimented with genetic algorithms to train characters to behave in certain ways or to optimize some motion • Using this approach, synthetic characters have been trained to walk, swim, ride horses, and more • There are even some off-the-shelf tools that use this technology, and some of it was used in the Lord of the Rings movies
Artificial Intelligence • AI is used more and more for complex animation control • It is often used to control large numbers of background characters • Obviously, there are numerous AI techniques, and it is an entire subject itself
Related Subjects • Anatomy • Biomechanics • Robotics • Physics • Traditional animation • Paleontology, entomology • Psychology, perception, linguistics • Acting • Dance, choreography • Kinesiology, ergonomics