Keyframe animation
• Process of keyframing � • Keyframe interpolation � • Hermite and Bezier curves � • Splines � • Speed control
Oldest keyframe animation • Two conditions to make moving images in 19th century � • at least 10 frames per second � • a period of blackness between images
2D animation • Highly skilled animators draw the keyframes � • Less skilled (lower paid) animators draw the in-between frames � • Time consuming process � • Difficult to create physically realistic animation
3D animation • Animators specify important keyframes in 3D � • Computers generates the in-between frames � • Some dynamic motion can be done by computers (hair, clothes, etc) � • Still time consuming
General pipeline • Story board � • Keyframes � • Inbetweens � • Painting
Storyboards • The film in outline form � • specify the key scenes � • specify the camera moves and edits � • specify character gross motion � • Typically paper and pencil sketches on individual sheets taped on a wall
“A bug’s life”
The process of keyframing • Specify the keyframes � • Specify the type of interpolation � • linear, cubic, parametric curves � • Specify the speed profile of the interpolation � • constant velocity, ease-in-ease-out, etc � • Computer generates the in-between frames
A keyframe • In 2D animation, a keyframe is usually a single image � • In 3D animation, each keyframe is defined by a set of parameters
Keyframe parameters • What are the parameters? � • position and orientation � • body deformation � • facial features � • hair and clothing � • lights and cameras
• Process of keyframing � • Keyframe interpolation � • Hermite and Bezier curves � • Splines � • Speed control
In-between frames • Linear interpolation � • Cubic curve interpolation
Linear interpolation Linearly interpolate the parameters between keyframes t = 5 t = 10 t = 0 t = 15 end key start key x = x 0 + t − t 0 ( x 1 − x 0 ) t 1 − t 0 end time start time
Cubic curve interpolation We can use three cubic functions to represent a 3D curve Each function is defined with the range 0 ≤ t ≤ 1 bold: a vector or a matrix � Q ( t ) = [ x ( t ) y ( t ) z ( t )] italic: a scalar or vectors Q x ( t ) = a x t 3 + b x t 2 + c x t + d x a · b : inner product a × b : cross product Q y ( t ) = a y t 3 + b y t 2 + c y t + d y matrices Q z ( t ) = a z t 3 + b z t 2 + c z t + d z multiplication A · B : multiplication AB :
Compact representation Q ( t ) = [ Q x ( t ) Q y ( t ) Q z ( t )] Q x ( t ) = a x t 3 + b x t 2 + c x t + d x Q y ( t ) = a y t 3 + b y t 2 + c y t + d y Q z ( t ) = a z t 3 + b z t 2 + c z t + d z a x a y a z b x b y b z � t 3 t 2 � C = T = 1 t c x c y c z d x d y d z
Quiz Q ( t ) = [ Q x ( t ) Q y ( t ) Q z ( t )] a x a y a z b x b y b z Q x ( t ) = a x t 3 + b x t 2 + c x t + d x C = c x c y c z d x d y d z Q y ( t ) = a y t 3 + b y t 2 + c y t + d y Q z ( t ) = a z t 3 + b z t 2 + c z t + d z � t 3 t 2 � T = 1 t Which of the following is correct? 1. Q = C + T 2. Q = CT 3. Q = TC
Compact representation ⎡ ⎤ a x a y a z b x b y b z ⎢ ⎥ � t 3 t 2 � 1 Q ( t ) = ⎦ = TC t ⎢ ⎥ c x c y c z ⎣ d x d y d z d ˙ � � 3 t 2 2 t 1 0 dt Q ( t ) = C Q =
Determine coefficients How many constraints do we need to determine a cubic curve? 4 Two constraints come from end points, what about other two constraints? desired shape of the curve
Constraints on the cubics Redefine C as a product of the basis matrix M and the geometry matrix G C = M · G ⎡ ⎤ ⎡ ⎤ m 11 m 12 m 13 m 14 G 1 x G 1 y G 1 z � t 3 m 21 m 22 m 23 m 24 G 2 x G 2 y G 2 z 1 � ⎢ ⎥ ⎢ ⎥ t 2 Q ( t ) = t ⎢ ⎥ ⎢ ⎥ m 31 m 32 m 33 m 34 G 3 x G 3 y G 3 z ⎣ ⎦ ⎣ ⎦ m 41 m 42 m 43 m 44 G 4 x G 4 y G 4 z = T · M · G
• Process of keyframing � • Keyframe interpolation � • Hermite and Bezier curves � • Splines � • Speed control
Hermite curves • A Hermite curve is determined by � P 4 R 4 • endpoints P 1 and P 4 � • tangent vectors R 1 and R 4 at the P 1 R 1 endpoints � • Use these elements to construct geometry matrix P 1 x P 1 y P 1 z P 4 x P 4 y P 4 z G h = R 1 x R 1 y R 1 z R 4 x R 4 y R 4 z
Hermite basis matrix Given desired constraints: 1. endpoints meet P 1 and P 4 � � 0 0 0 1 Q (0) = · M h · G h = P 1 � � 1 1 1 1 Q (1) = · M h · G h = P 4 2. tangent vectors meet R 1 and R 4 ˙ � � 0 0 1 0 Q (0) = · M h · G h = R 1 ˙ � � 3 2 1 0 Q (1) = · M h · G h = R 4
Hermite basis matrix We can solve for basis matrix M h P 1 0 0 0 1 P 4 1 1 1 1 = G h = · M h · G h R 1 0 0 1 0 R 4 3 2 1 0 − 1 0 0 0 1 2 − 2 1 1 1 1 1 1 − 3 3 − 2 − 1 M h = = 0 0 1 0 0 0 1 0 3 2 1 0 1 0 0 0
Hermite Blending functions Let’s define B as a product of T and M ⎡ ⎤ 2 − 2 1 1 − 3 3 − 2 − 1 ⎢ ⎥ � t 3 t 2 � B h ( t ) = 1 t ⎢ ⎥ 0 0 1 0 ⎣ ⎦ 1 0 0 0 B h ( t ) indicates the weight of each element in G h B h ( t ) P 1 P 4 P 1 P 4 Q ( t ) = B h ( t ) · R 1 R 4 R 1 t R 4
Bézier curves Indirectly specify tangent vectors by specifying two intermediate points R 1 P 3 R 1 = 3( P 2 − P 1 ) P 4 P 2 R 4 = 3( P 4 − P 3 ) P 1 R 4 P 1 P 2 G b = P 3 P 4
Bézier basis matrix Establish the relation between Hermite and Bezier geometry vectors P 1 P 1 1 0 0 0 P 4 0 0 0 1 P 2 G h = = M hb · G b = R 1 − 3 3 0 0 P 3 R 4 P 4 0 0 − 3 3
Bézier basis matrix Q ( t ) = T · M h · G h = T · M h · ( M hb · G b ) = T · ( M h · M hb ) · G b = T · M b · G b − 1 3 − 3 1 3 − 6 3 0 M b = M h M hb = − 3 3 0 0 1 0 0 0 http://www.math.ucla.edu/~baker/java/hoefer/Bezier.htm
Bézier blending functions Bezier blending functions are also called Bernstein polynomials ⎡ ⎤ − 1 3 − 3 1 3 − 6 3 0 ⎢ ⎥ � t 3 t 2 � B b ( t ) = 1 t ⎢ ⎥ − 3 3 0 0 ⎣ ⎦ 1 0 0 0 B b ( t ) P 1 P 1 P 4 P 2 Q ( t ) = B b ( t ) · P 2 P 3 P 3 P 4 t
Complex curves What if we want to model a curve that passes through these points? Problem with higher order polynomials: Wiggly curves No local control
• Process of keyframing � • Keyframe interpolation � • Hermite and Bezier curves � • Splines � • Speed control
Splines • A piecewise polynomial that has locally very simple form, yet be globally flexible and smooth � • There are three nice properties of splines we’d like to have � • Continuity � • Local control � • Interpolation
Continuity • Cubic curves are continuous and differentiable � • We only need to worry about the derivatives at the endpoints when two curves meet
Continuity C 0 : points coincide, velocities don’t C 1 : points and velocities coincide What’s C 2 ? points, velocities and accelerations coincide
Local control • We’d like to have each control point on the spline only affect some well-defined neighborhood around that point � • Bezier and Hermite curves don’t have local control; moving a single control point affects the whole curve
Interpolation • We’d like to have a spline interpolating the control points so that the spline always passes through every control points � • Bezier curves do not necessarily pass through all the control points
B-splines • We can join multiple Bezier curves to create B- splines � • Ensure C 2 continuity when two curves meet
Continuity in B-splines Suppose we want to join two Bezier curves ( V 0 , V 1 , V 2 , V 3 ) and ( W 0 , W 1 , W 2 , W 3 ) so that C 2 continuity is met at the joint V 1 W 1 V 2 W 2 V 0 W 3 V 3 W 0 Q v (1) = Q w (0) V 3 = W 0 Q v (1) = ˙ ˙ Q w (0) V 3 − V 2 = W 1 − W 0 Q v (1) = ¨ ¨ Q w (0) V 1 − 2 V 2 + V 3 = W 0 − 2 W 1 + W 2 W 2 = V 1 + 4 V 3 − 4 V 2
Continuity in B-splines What does this derived equation mean geometrically? W 2 = V 1 + 4 V 3 − 4 V 2 What is the relationship between a, b and c, if a = 2b - c? W 0 = V 3 V 1 V 2 B 1 W 1 = 2 V 3 − V 2 V 3 = W 0 V 0 W 2 = V 1 + 4 V 3 − 4 V 2 W 1 = 2(2 V 3 − V 2 ) − (2 V 2 − V 1 ) W 2 = 2 W 1 − B 1 W 3 What is B 2 ? B 2
de Boor points Instead of specifying the Bezier control points, let’s specify the corners of the frames that form a B-spline These points are called de Boor points and the frames are called A-frames
Recommend
More recommend