Types of Animation.

Slides:



Advertisements
Similar presentations
Animation Marco Gillies. Computer Animation Making things move A key aspect of computer graphics Non-realtime for films Realtime for virtual worlds and.
Advertisements

Arc-length computation and arc-length parameterization
Splines I – Curves and Properties
Lecture Notes #11 Curves and Surfaces II
Lecture 10 Curves and Surfaces I
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
MATH 685/ CSI 700/ OR 682 Lecture Notes
Trajectory Generation
Dr. S.M. Malaek Assistant: M. Younesi
1Notes  Assignment 0 marks should be ready by tonight (hand back in class on Monday)
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
1 7M836 Animation & Rendering Animation Jakob Beetz Joran Jessurun
3D orientation.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
Computer Animation In its simplest form, computer animation simply mean: using a standard renderer to produce consecutive frames wherein the animation.
Introduction to ROBOTICS
Computer-Based Animation. ● To animate something – to bring it to life ● Animation covers all changes that have visual effects – Positon (motion dynamic)
Lecture Fall 2001 Computer Animation Fundamentals Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics.
05/09/02(c) 2002 University of Wisconsin Last Time Global illumination algorithms Grades so far.
Lecture 10Slide Fall 2003 Animation. Lecture 10Slide Fall 2003 Conventional Animation Draw each frame of the animation great control tedious.
1 7M836 Animation & Rendering Animation Jakob Beetz Joran Jessurun
Splines III – Bézier Curves
Chapter 5.2 Character Animation. CS Overview Fundamental Concepts Animation Storage Playing Animations Blending Animations Motion Extraction Mesh.
CS 376 Introduction to Computer Graphics 04 / 23 / 2007 Instructor: Michael Eckmann.
CSC418 Computer Graphics n Animation Principles n Keyframe Animation.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Interpolating Values.
Animation & 3D Animation
110/27/ :47 Graphics II Animation Introduction and Motion Control Session 6.
12/09/04© University of Wisconsin, CS559 Fall 2004 Last Time B-splines –Uniform cubic –Rational –In an exam situation, I’ll give you the equations if they.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Splines I – Curves and Properties based on: Michael Gleicher Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
CS 551/651 Advanced Graphics Technical Background.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
Lecture 5: 11/5/1435 Computer Animation Lecturer/ Kawther Abas CS- 375 Graphics and Human Computer Interaction.
Animation Animation is about bringing things to life Technically: –Generate a sequence of images that, when played one after the other, make things move.
Introduction to Parametric Curve and Surface Modeling.
CSCI480/582 Lecture 9 Chap.2.2 Cubic Splines – Hermit and Bezier Feb, 11, 2009.
Computer Graphics.
Trajectory Generation
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves
Scientific Visualization V106.04
CS 445 / 645 Introduction to Computer Graphics
Chapter 10-2: Curves.
3D Transformations Source & Courtesy: University of Wisconsin,
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves
Reading Assignments Principles of Traditional Animation Applied to 3D Computer Animation, by J. Lasseter, Proc. of ACM SIGGRAPH 1987 Computer Animation:
Mobile Robot Kinematics
© University of Wisconsin, CS559 Fall 2004
Rotation representation and Interpolation
© University of Wisconsin, CS559 Spring 2004
Animation Lecture 10 Slide 1.
CSC4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University Transformations.
Computer Animation and Visualisation Lecture 4. Skinning
Prepared by: Engr . Syed Atir Iftikhar
Interpolation and Basic Techniques
UMBC Graphics for Games
CSCE 441: Keyframe Animation/Smooth Curves (Cont.)
(c) 2002 University of Wisconsin
Computer Animation Displaying animation sequences raster animation
What is Animation? 'To animate' literally means to give life to. Animating is moving something that cannot move on it's own. Animation adds to graphics.
CSCE441: Computer Graphics 2D/3D Transformations
VIRTUAL ENVIRONMENT.
Computer Graphics Lecture 15.
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Types of Animation

Animation Animation is about bringing things to life Technically: Generate a sequence of images that, when played one after the other, make things move One image is called a frame 24 frames per second for film, resolution approx 1600x1200 30 frames per second for NTSC video, resolution less than 640x480 60+ frames per second for “twitch” computer games, 640x480 or higher resolution Interlacing: Display every second row for one frame, every other row for the next. Used in NTSC TV and older monitors

Computer Animation In its simplest form, computer animation means: using a standard renderer to produce consecutive frames wherein the animation consists of relative movement between rigid bodies and possibly movement of the view point or virtual camera This is completely analogous to model animation where scale models are photographed by special cameras

Animation Issues When evaluating an animation technique or application, the following things should be considered: How fast can the images be generated? How easy is it to control the appearance of the animation? How much human expertise is required to generate the animation? Can the animation be generated interactively? Application driven: Different applications have different requirements: Feature film animation is different from interactive gaming animation

Computer Animation An animation system may be high-level, low-level, or somewhere in between High-level animation systems allow the animator to specify the motion in abstract general terms Low-level systems requires the animator to specify individual moving parameters High-level commands describe behavior implicitly in terms of events and relationships

Basic Animation Techniques Keyframe animation Animator specifies important positions throughout the animation – the keyframes Someone or something fills in the intermediate frames – inbetweening, or just ’tweening Motion capture System captures motion data from a real enactment of the animation The data then drives a virtual character Procedural animation A set of equations or rules are evaluated to determine how the animation behaves (c) 2002 University of Wisconsin 05/09/02

Keyframing Keyframe systems take their name from the traditional hierarchical production system first developed by Walt Disney Skilled animators would design or choreograph a particular sequence by drawing frames that established the animation - the so-called keyframes The production of the complete sequence was then passed on to less skilled artists who used the keyframes to produce ‘in-between’ frames

Keyframe animation Keyframe is a drawing of a key moment in an animated sequence, where the motion is at its extreme. Inbetweens fill the gaps between keyframes. Every motion is created by animators.

Keyframing ACM © 1987 “Principles of traditional animation applied to 3D computer animation” Describe motion of objects as a function of time from a set of key object positions. In short, compute the inbetween frames.

Keyframing The original way to animate, and still the most common form for feature animation Process has shifted to computers, but basic approach is the same Underlying technique is interpolation The in-between frames are interpolated from the keyframes Originally done by armies of underpaid animators Now done with computers Which of the techniques that we have learned about is used extensively for keyframe animation?

Keyframing The emulation of this system by the computer, whereby interpolation replaces the inbetween artist, was one of the first computer animation tools to be developed. This technique was quickly generalized to allow for the interpolation of any parameter affecting the motion Care must be taken when parameterizing the system, since interpolating naive, semantically inappropriate parameters can yield inferior motion

Keyframe animation To produce 3D keyframe animation, the animator builds the behavior of a 3D model by keying parameter values in key frames where the values are at their extremes.

Interpolation Interpolating splines are smooth curves that interpolate their control points Perfect for keyframe animation Typically, time is directly associated with the parameter value, controlling speed 2 3 1 Keyframes Animation

Interpolating Positions Given positions: find curve such that

Linear Interpolation Simple problem: linear interpolation between first two points assuming : The x-coordinate for the complete curve in the figure:

Polynomial Interpolation An n-degree polynomial can interpolate any n+1 points. The Lagrange formula gives the n+1 coefficients of an n-degree polynomial that interpolates n+1 points. The resulting interpolating polynomials are called Lagrange polynomials. parabola

More Interpolation Anything can be keyframed and interpolated Position, Orientation, Scale, Deformation, Patch Control Points (facial animation), Color, Surface normals… Special interpolation schemes for things like rotations Use quaternions to represent rotation and interpolate between quaternions Control of parameterization controls speed of animation

Spline Interpolation 8-degree polynomial spline spline vs. polynomial Lagrange polynomials of small degree are fine but high degree polynomials are too wiggly. How many n-degree polynomials interpolate n+1 points? 8-degree polynomial spline spline vs. polynomial Slide 18

Spline Interpolation 8-degree polynomial spline spline vs. polynomial Lagrange polynomials of small degree are fine but high degree polynomials are too wiggly. Spline (piecewise cubic polynomial) interpolation produces nicer interpolation. 8-degree polynomial spline spline vs. polynomial Slide 19

Spline Interpolation A cubic polynomial between each pair of points: Four parameters (degrees of freedom) for each spline segment. Number of parameters: n+1 points  n cubic polynomials  4n degrees of freedom Number of constraints: interpolation constraints n+1 points  2 + 2 (n-1) = 2n interpolation constraints “endpoints” + “each side of an internal point” rest by requiring smooth velocity, acceleration, etc. Slide 20 Lecture 10

Hermite Splines We want to support general constraints: not just smooth velocity and acceleration. For example, a bouncing ball does not always have continuous velocity: Solution: specify position AND velocity at each point Derivation?

Spline-Driven Animation Spline-driven animation means the explicit specification of the motion characteristic of an object by using cubic splines Cubic B-splines are composite curves made up of several curve segments The curve possesses second order continuity These cubes are commonly used in computer graphics.

Spline-Driven Animation Consider a single segment of the curve defined over the interval 0≤u≤1 The curve is a cubic polynomial which can be specified interactively by defining four control points The particular curve that passes through these points is constrained by the need for second order continuity at the end points of the curve segments Adjacent curve segments share three control points

Spline-Driven Animation Suppose we have interactively specified a spline Q(u) (by giving four control points) that we wish to use as the path for the motion of an object To generate an animation sequence, we need to find the position of the object along the path at equal intervals in time

Spline-Driven Animation In order to do this, we need to reparameterize the curve in terms of arclength Without the arclength parameter, it is not possible to have an object move with uniform speed along a spline Once this has been done, an object positioned on a curve Q(u) can be driven by a velocity curve V(u) = (t(u), s(u)) that plots the arclength s, or distance traveled, against time

Keyframing Given keyframes find curves such that What are parameters ? position, orientation, size, visibility, … Interpolate each curve separately

Spline-Driven Animation Using this information we can derive mathematically the exact form of each of the curve segments as follows: Qi(u) = sum from k=0 to 3 pi+kBk(u) where the pi’s are the control points, and the Bi’s are defined as follows: B0(u) = (1+u)3/6 B1(u) = (3u3-6u2+4)/6 B2(u) = (-3u3+3u2+3u+1)/6 B3(u) = u3/6

Spline-Driven Animation Then the curve is reparameterized in terms of a global variable U If the ends of the curve segments occur at equal intervals with respect to the curve parameter, the curve is known as a uniform B-spline

Ease-in, ease-out velocity curve with space curve

Spline-Driven Animation The velocity curve can be generalized to drive any motion parameter The term ‘motion parameter’ then encompasses anything that moves in the animation sequence apart from the usual kinetic variables such as position and orientation Movement could also include color and transparency, for example This methodology is known as general kinetic control

Interpolating Angles Given angles find curve such that Angle interpolation is ambiguous. Different angle measurements will produce different motion: ?

Interpolating Orientations in 3-D Rotation matrices Given rotation matrices Mi and time ti, find M(t) such that M(ti)=Mi.

3x3 Matrix Rotation Easy to use Moderately intuitive Large memory size - 9 values Animation systems always low on memory Interpolation is hard Introduces scales and shears Need to re-orthonormalize matrices after

Flawed Solution Linearly interpolate each entry independently Example: M0 is identity and M1 is 90-deg rotation around x-axis Is the result a rotation matrix? The result R is not a rotation matrix. For example, check that RRT does not equal identity. In short, this interpolation does not preserve the rigidity (angles and lengths) of the transformation.

Quaternions Represents a rotation around an axis Four values <x,y,z,w> <x,y,z> is axis vector times sin(angle/2) w is cos(angle/2) No singularities But has dual coverage: Q same rotation as –Q This is useful in some cases! Interpolation is fast

Euler Angles Three rotations about three axes Intuitive meaning of values But… “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

Euler Angles An euler angle is a rotation about a single axis. Any orientation can be described composing three rotation around each coordinate axis. We can visualize the action of the Euler angles: each loop is a rotation around one coordinate axis.

Interpolating Euler Angles Natural orientation representation: three angles for three degrees of freedom Unnatural interpolation: A rotation of 90-degrees first around the z-axis and then around the y-axis has the effect of a 120-degree rotation around the axis (1, 1, 1). But rotation of 30-degrees around the z- and y-axis does not have the effect of a 40-degree rotation around the axis (1, 1, 1). Gimbal lock: two or more axis align resulting in a loss of rotation degrees of freedom. For example, if the green loop in previous slide aligns with the red loop then both the rotation around the blue loop and the rotation around the red loop produces identical rotation.

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

The Bézier Curve T2 t=1.0 T1 F2 t=0.25 F1 t=0.0 (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

The Bézier Curve 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

Bézier Variants Store 2F2-T2 instead of T2 Equals next segment T1 for smooth curves Store F1-T1 and T2-F2 vectors instead Same trick as above – reduces data stored Called a “Hermite” curve Catmull-Rom curve Passes through all control points

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

Interpolating Key Frames Interpolation is not fool proof. The splines may undershoot and cause interpenetration. The animator must also keep an eye out for these types of side-effects.

Animating Articulated Structures Older animation systems keyframe based Newer animation systems use forward kinematics and inverse kinematics to specify and control motion The characters themselves are constructed out of skeletons which resemble the articulated structures found in robotics

Traditional Animation Principles The in-betweening, was once a job for apprentice animators. We described the automatic interpolation techniques that accomplish these tasks automatically. However, the animator still has to draw the key frames. This is an art form and precisely why the experienced animators were spared the in-betweening work even before automatic techniques.