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