What do we need for animated avatars?
- a renderer which puts pixels on the screen
- an animated avatar in whatever format
- a decoder, that decodes the avatar data
What is an animation format? An avatar can perform multiple actions. It can stand, walk, wave, etc. Therefore, we need not just one, but a set of animations for a single avatar. An animator component will then decode one animation sequence of the set and display frame after frame. If the avatar is supposed to wave, then the decoder will play the "wave" animation. Usually it will just play the "stand" animation. And when the avatar moves, then it should play a "walk" animation. So, the avatar format must provide multiple animations.
Lets review our options for an animation format
- 3D animation formats, e.g. Collada, Doom 3, Quake, blender (?)
- Custom formats like config.xml with animated GIFs or PNGs
Real 3D models would be cool, but I am not really a 3D expert. So, we will start by investigating the "config.xml" option.
This means: we need an XML parser (already in the Apollo framework) and a GIF decoder, which is capable of animations. Typical graphics libraries are candidates for the job. We are currently checking which library is capable of loading animated GIFs from memory and from file and be integrated into the project. Getting to know a code library takes some time. So, this will take a while. We are checking:
- OpenCV (no GIF?)
- CImg (no GIF?)
- GraphicsMagick (very complex, GIF loader not found)
- DevIL (GIF only from file, but we need decoding also from memory)
- GIL (GIL from Adobe does not support GIF)
- CxImage (GIF works)
- Imlib2 (could not find a Windows MSVC build)
- ...others?
Only CxImage survived the test. This is not an optimal solution, because CxImage is Windows based. It must be replaced for a Mac/Linux port. Replacing CxImage should not be too difficult, because there are only few lines of code in the application code. Basically loading an image file and iterating through the frames.
We do not want to spend too much time on this. So, we will now continue with the latest CxImage version.
3 comments:
Proposals:
Xaml (supports storyboards)
Flash (practically timebased)
KML (http://code.google.com/intl/de-DE/apis/kml/documentation/time.html#animating)
WebGL
Tut sich hier noch irgendwas oder wurde das Projekt aufgegeben?
Es lebt noch. Es geht langsam. Weil wir arbeiten zum Leben und nur in der Freizeit daran arbeiten können.
Post a Comment