For my final project, I originally decided to create a short using skinned animation and a ballerina object that I have modeled in Maya. However, with the time and experience that I had, I ended up creating a scene with the ballerina object and animating her using translations and rotations with respect to time instead. On the other hand, I was able to create the same short that I wanted to create initially using animation in Maya. A video is included for your viewing.
What is Skinned Animation?
Skinned animation is the process of creating movement within a character and its environment using the character's mesh and skeleton. (Note: A character's mesh/skin is made up of vertices while a character's skeleton is made up of bones.)
A character's mesh/skin and skeleton are manipulated to create this type of animation. Basically, each vertex of the mesh/skin is assigned a certain number of bones, which are then assigned specific weights, depending on how it affects that vertex. As you can see in the image below, not every bone has a value greater than 0, because not every bone has an effect on every vertex.
To access this type of textfile, a modeling program like Maya or Blender can be used. These programs allow one to export an OBJ file of the model one has created and animated. (Note: there are models with this data available online for use)
Once you have that data, you can create a parsing tool that goes through each line and stores them to specific arrays and matrices. Then, use the equation below to create the animation itself.
Other Features
Although I was not able to complete a successful skinned animation short, I was able to construct a scene with that following features that mock an animation:
Hierarchical Modeling
Found in the snowmen in the background waving "Hi"
Lighting
Directional lighting, creating shadows on the objects as if there was a sun somewhere up in the background
Camera Control
Can move the scene with a mouse click and drag or keys on the keyboard
Rigid Body Animation
Ballerina is animated via translation and rotations on her matrices with respect to time
Snow Effect
An attempt to for more effects, where "snow" continuosly falls down from the sky
Controls
To zoom in and out of the scene: 'w' & 's'
To move left and right of the scene: 'a' & 'd'
To pitch and yaw camera: use mouse click and drag
Screenshots
Lessons Learned
Exporting a model from Maya to an OBJ file doesn't guarantee that your model will look exactly how you created it.
It depends also on the way you've constructed your model, if you used polygons or nurbs and you connected/combined them to each other.
So, it's necessary to be careful and thoughtful of when modeling an object.
Parsing is important
It is a difficult task, especially dealing with a lot of numbers in one text file. It is very important to understand what each numbers mean, what they represent, and how to manipulate them.
A good parsing tool will help a person working with skinned animation a long way but this again, begins with understanding the values of each text file.
Skinned animation looks good when done right.
Even though it takes a bit of time to understand the concept and make a useful parsing tool that can read and represent the numbers the way they are supposed to be, it is worth it.
The beauty of this type of animation can make your short, game, scene, etc. completely different and even more realistic and just simply beautiful.
Take your time and research.
There is a lot of information regarding this type of animation out there. It just takes a lot of time to find and go through the most useful ones.
There are also tutorials available online, although not updated with the current program versions, that can be useful and informative.