Technical Animation Spring'17

 1/25/17 Class 3

Techniques for Creating Animation 

One thing that caught my attention during the class was Motion Capture because I think it has the following advantages, 

1. Reduces the workload on Artists working to model, rig and animate 3D assets in maya or blender 

2. Provides more data points for interpolation and therefore the final animation is more realistic than keyframing

3. Probably has less computation requirements than physics based simulation (? not sure)

I was wondering what data structures are used to translate the data captured from optical

trackers to the constructed models. So, I looked up parsing of file formats ASF and AMC here -

http://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/ASF-AMC.html

The data structure that is used to store bone data in the viewing and working with  ASF/AMC file code in

http://mocap.cs.cmu.edu/tools.php happens to be something like a tree!

...

struct Bone 

{

  struct Bone *sibling; // Pointer to the sibling (branch bone) in the hierarchy tree 

  struct Bone *child; // Pointer to the child (outboard bone) in the hierarchy tree 

...

 Obviously, a skeleton hierarchy is defined as set of connected bones. This is definitely a logical way of  storing the data parsed

from the ASF file. Thinking about if there is an alternate way to efficiently organize the data...  

 2/1/17 Class 5

Inverse Kinematics

So i understood that I was intrigued by motion capture data organization last class because I did not know how they parse it. 

In this class, we learnt about how a typical ASF and AMC file look and challenges in parsing them. Nancy also mentioned a way to

avoid the complication. 

The problem in parsing the ASF and AMC files is Gimbal Lock clearly explained in this video ->https://www.youtube.com/watch?v=zc8b2Jo7mno

And the way to solve them is using Quaternions. So i read about how Quaternions avoid gimbal locks and here is how. 

Rotations are represented by unit quaternions as q = s + x i + y j + z k  where i,j,k are imaginary axis with i2=j2=k2=1

If s2 + x2 + y2 + z2 = 1, this equation represents a  Unit quaternion sphere (unit sphere in 4D). Any point on the sphere can be 

expressed in terms of combination of i,j and k. Since this covers the full space , all rotation angles are possible and therefore the

gimbal lock is avoided. 

Reference - > http://run.usc.edu/cs520-s12/quaternions/quaternions-cs520.pdf