Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics/inverse kinematics Keyframing in 2D • Skilled animator draws frames • Less skilled draws inbetweens Keyframing in 3D • Skilled animator draws important keyframes • Computer generates in-betweens using interpolation • Rigid body motion not enough… Keyframing • We can move points in 3D translation, rotation • We can set keyframes (= parameter to interpolate): – – – – – – position, orientation, deformation, lights, camera, opacity? Speed control • We want a constant velocity interpolation from A to B • Then we can control our own velocities • Interpolation methods linear, cubic, polynomial Keyframing? • Arc length parametrization -> Speed curves -> control of movement • Problem: uniform steps in parameter don’t correspond to uniform path distances • Solution: parametrization by arclength Overview • Keyframing – Parametrizing by arclength – Rotations – Quaternion interpolation • Kinematics/inverse kinematics Transformations • Every 3D transformation is a composition of – Rotation – Scaling – Translation • We can compose transformations • P – point of the model P’ – point after transformation Homogenous coordinates • Use homogenous coordinates in graphics • Use 4 by 4 matrix to represent: scaling, translation, rotation Gimbal lock • Gimbal = device used for holding a gyroscope • Illustrates problem with interpolating Euler angles • Gimbal lock is a basic problem with representing 3D rotations using Euler angles Axis Angle • Eulers rotation theorem Any orientation can be represented by a 4-tuple angle, vector(x,y,z) where angle – amount to rotate vector – axis of rotation We can interpolate angle and axis seperately Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics/inverse kinematics Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics – Articulated figures – Forward kinematics – Inverted kinematics Kinematics • Study of movement without regards to the forces that cause it Kinematics • Inbetweening – Inverse kinematics or dynamics • Articulated figure – Structure of rigid liks connected at joints • Degrees of freedom (D0F) – number of independent position variables • End effector – End of chain of links Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics – Articulated figures – Forward kinematics – Inverted kinematics Articulated figures • Suitable for humanoid figures • Want the structure of the body to be maintained • Horrible approximation Articulated figures • Inbetweening – Compute joint angles between computer frames DH notation • Represents state of articulated structure • Attach coordinate frame to each link • Transformation matrix between consecutive coordinate frames Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics – Articulated figures – Forward kinematics – Inverted kinematics Forward kinematics • Joint motion can be specified by spline curves Forward kinematics Example • Walk cycle • Hip joint orientation Example • Walk cycle • Ankle joint orientation Overview • Keyframing – Parametrizing by arclength – General kinematics – Rotations – Quaternion interpolation • Kinematics – Articulated figures – Forward kinematics – Inverse kinematics Inverse kinematics • What if animation knows position at the end? • Pick up object from plate, put object in place Inverse kinematics • End effector positions can be specified by spline curves Inverse kinematics • Solution for more complex structures – Find best solution (ie. Minimize energy in motion) – Non linear optimization What makes IK hard? • Ill conditioned near singularities – High state velocities for low cartesian velocities • Redundancies – Add constraints to reduce redundancies • Find “closest” solution: – Minimize time – Minimize energy – Natural looking motion IK and the Jacobian •Use inverse Jacobian •Jacobian maps velocities in state space to velocities in cartesian space •Iteratively step all the joint angles toward the goal Computing IK • Computational problems – Singularities – change rank – Jacobian only valid for given configuration • Non linear optimization – Nummerical programming: Method for finding (local) minimum of function Summary of kinematics • Forward kinematics – Specify conditions (joint angles) – Compute positions and end-effectors • Reverse kinematics – “Goal directed” motion – Specify goal positions of end effectors – Compute conditions required to achieve goals • For many tasks inverse kinematics provides easier specification, but is more computationally difficult