Animation Keyframe Inverse Kinematic Parametric Scripted Skeletal hierarchy Inverse Kinematic Parametric Scripted CS4995-1: Animation Page 1
Ref: http://www.cs.berkeley.edu/~laura/cs184/quat/quaternion.html Rotations Euler angles – rotations about canonical axes (or in planes) rx, ry, rz or az, el, ro Order of rotation is important singularities at 0o and 90o elevation interpolations are not always “great circle” Quaterions – rotations about a vector i i = -1 ( = j j = k k ) i j = k ; k i = j ; j k = i (non-commutative) conjugate: q = w + xi + yj + zk magnitude: ||q|| = sqrt(w2 + x2 + y2 + z2 ) interpolations follow “great circle” Conversion to and from Euler angles v Ref: http://www.cs.berkeley.edu/~laura/cs184/quat/quaternion.html CS4995-1: Animation Page 2
Dynamics Linear dynamics F = ma or a = F/m v Angular dynamics at = dv/dt = d2x/dt2 vt + at dt = vt+dt = dx/dt xt + vt dt + ½ at dt2 = xt+dt xt+dt = xt + vt dt + ½ Ft/m dt2 Angular dynamics = I or = /I t+dt = t + tdt + ½t/I dt2 I = moment of inertia = torque v CS4995-1: Animation Page 3
Conservation of Momentum Linear momentum p = m1v1 = m2v2 v2 = m1v1/m2 (elastic collision) Angular momentum L = I11 = I2 2 1 v1 2 v2 v -v CS4995-1: Animation Page 4
Numerical Integration dx/dt = (x, t) Euler – xi+1= xi + h(x, t) where h = dt Fast, but imprecise… error is O(h2) Multi-step methods: compute intermediate results Predictor-corrector – average slope of at t and t+1 xpi+1 = xi + h (x, t) xi+1 = xi + ½h ((xi, ti) + (xpi+1, ti+1)) Runge-Kutta – 4th-order solution d1= h (xi, ti) d2 = h (ti+ ½h, xi + ½ d1) d3 = h (ti+ ½h, xi + ½ d2) d4 = h (ti+ h, xi + d3) xi+1 = xi + 1/6 (d1 + 2d2 + 2d3 + d4) Then adapt next step size (h) based on error CS4995-1: Animation Page 5
Collision Detection Bounding volumes Sphere Axis aligned bounding box Oriented bounding box Bounding polygon Intersection testing…. Backing out Space partitioning Projection of position over time CS4995-1: Animation Page 6
Motion Capture Optical markers Point cloud Tracking Editing Marker identification Skeletal mapping Editing CS4995-1: Animation Page 7
Digital Puppetry Real-time performance Quick CS4995-1: Animation Page 8