anifast


Free software tool for creating xml's from sprite positions





About...

While there are a lot of animation tools and some good animation support for example in The Gimp those tools seem all to expect that animations are using images with several layers. Unfortunately there are situations when it's more practical to have all sprites on a single page. In such a case it's rather tedious work to find out all the needed coordinates and offsets for smooth animations. I did this once by hand and thereafter decided to write this tool. You can select parts of images, put them together to form sprites and display those sprites on specified frames and positions thereby creating animations. The whole data can be saved using XML, which makes it easy to include it in any other applications.

Well an image tells more 'n thousand words, so here it is:

screenshot


Platforms and dependencies

It runs only on GNU/linux systems so far, but i used wxWidgets and no platform dependent stuff is included. Therefore a port to other systems like Windows or Mac should not be much of a deal. I might do that some day, but it's no high priority currently. If you'd like to port i would be very grateful and you could contact me for any help you'd need to do it.

Anifast depends on the following development libs to be installed:
- wxWidgets (>= 2.6)
That lib needs some more libs itself, but apt will help you (on non-debian distros it's usually also easy to find out).
Certainly it also needs the gcc (i'm using gcc 4.0.2 right now).

Installation

Extract with:
tar xvzf anifast-version.tar.gz

Do the usual stuff:
> ./configure
> make

Start with:
./src/anifast
Or you can install it on your system (as root) with:
make install

For more detailed instructions and some additional install parameters, please check the INSTALL file.

Licence

Anifast is using the GPL.
The application does also include tinyxml which is using the zlib licence.

Documentation

The GUI is still very much work in process, but i think you'll get used to it within a few minutes just by playing around.

Important is the pipeline needed to create an animation:
1. Open an image from file by File-Open File
2. Click "New Clipping" and select a part of the image which is needed for your sprite.
If you click directly on the image it will automatically select the smallest rectangular area which is surrounded by transparent pixels.
3. Click "New Sprite" to make a new sprite container.
4. Click "Add Clipping" to add the currently selected clipping to the currently selected sprite.
5. Click "New Animation" to make a new animation container.
6. Click "Add Sprite" to add the currently selected sprite to the currently selected animation (if it doesn't work you've probably selected a Spritepart instead of a sprite).
7. Now you can position the sprites, select on which frames they should be displayed, etc.

To delete something, select the item in the tree and press "delete".
You can move items in the trees up and down. The uppermost item will always be drawn first.
You can save and load the complete project in the "Project" menu.

Bugs and future plans

Bugs

* The animationtree behaves strange sometimes and doesn't highlight items when selecting them.
* Some UI Elements do overlap.
* Images of dependent elements are not always updated immediately.
* The selection does flicker when moving elements up/down.

Features planned

* Documentation.
* Rework GUI Behaviour (disable buttons, better feedback, better guessing of actions which users expect).
* Some more refactoring of the code.
* Rethink GUI-Layout, maybe there's no need to display always three images.
* Allow to move clippings around within an image.
* Allow to copy clippings (and maybe also sprites) to new images.
* Allow to save images.
* More clipping selection methods (p.E. allow to select a clipping by dragging the clippingframe by mouse).
* Display *all* clippings in an image.
* Save the current frameposition in the animations.
* Make it possible to save the image filenames without path (maybe by adding includepaths which will be searched).

Features which might be added when i find the time for it

* Support Drag 'n Drop.
* Display several Animations at once.
* Save animations in other formats like gif or some movie formats.
* Write another tool which will create j2me code for the xml-files (Yeah, i know you don't need that. That's just something for myself.)

Downloads

You can download the source releases from sourceforge:

anifast-0.03.tar.gz
anifast-0.02.tar.gz
anifast-0.01.tar.gz

Contact

Do not hesitate to contact me if you have any problems, feature request or if you just need some more information about this application. I'll try to put all known problems on this page, so if something does not work as expected and there's no information about it here, then it's probably because i don't know about it. By sending me bugreports and featurewishes you can help me and others and generally make this world a little bit better ;-)

Mail me: info@michaelzeilfelder.de

News

22. January 2006
Version 0.03 is out.
This version did not add any new features, but a lot of bugs where fixed, the speed is increased and i did some code refactoring (more to follow). Also the fileformat has changed somewhat and i used the chance to think of a system to guarantee backward compatibility. Old files can still be loaded but will be converted on loading and when you save them they will be in the new format.
Changelog:
* Added downward compatibility for old file-format (only on loading - files will be saved in the new format)
* UI: selection gets now updated when changing images
* Cut and paste with images does work now without losing the clippings
* UI: when deleting items the corresponding displayed images will now also be removed
* UI: when deleting items the itemtrees select now the item above the deleted one afterwards
* UI: more immediate feedback when using spincontrols for clippings and spriteparts
* UI: when selecting child-elements in the trees, now the corresponding parent elements are displayed
* Changed xml-format: attribute "display_name" is now called "name"
* Changed xml-format: clipping nodes are now part of media nodes
* Changed xml-format: Added versionnumbers for anifast-version and xml-version
* Bugfix: clippings can no longer be outside the image
* configure.ac reworked (cleanup and --enable-profile added)
* Speed increase
* Some code cleanup and class refactoring

16. November 2005
Version 0.02 is out.
The following things have been done:
* Switched from wxWidgets 2.4 to wxWidgets 2.6
* Compiles now with unicode
* Better names for wx_helper functions
* Changed layout to make better use of space
* Items can now be moved around in trees
* Support copy and paste
* Bugfix: last animationframe is now displayed

18. October 2005
Anifast is now available on https://sourceforge.net/projects/anifast/

17. October 2005
First version online