Saturday, March 14, 2009

Custom Avatar Editor Solutions

While its great that My Avatar Editor is open source and available for anyone to download, use, and/or modify at will, the solution it provides is primarily targeted towards recreating the Mii channel editor on the Nintendo Wii. The approach to the application's design and how it works with data makes it a little difficult to repurpose the editor for other situations. Before releasing My Avatar Editor, I did my best to make it easier to change that, but in the end, it didn't make too much difference.

Realizing this, I thought it would be a good idea to create a more generalized framework for developers that could be easily manipulated to match various requirements - this especially with the recent interest the My Avatar Editor source. And last week I started doing exactly that.


So far so good.

What I have, which is very limited, can produce some simple results on the avatar definition side of things, but sadly (I think), I may have made the process more difficult than it needed to be. In a way this is good because it means more features and flexibility, but it's also not very good in the fact that if people really want to use this thing, they're going to have to be able to understand it. I can say, however, that because I was using My Avatar Editor as a model, I'm pretty sure that this new framework could be used to easily and completely recreate My Avatar Editor from scratch. And hopefully its flexible enough to be extended to do much more.

A run-down of the features and what makes it so complicated (and, really, it's not that bad, I mean I've only been working on it in my spare time for a couple of days ;) includes:
  • Constraints for avatar features including position, scale, and rotation
  • Control over feature arrangement, including having one feature consist of multiple visual assets that can exist both above and below other features at the same time
  • Feature-specific color transformation groups
  • Everything defined in a flexible XML format
The last bullet point I think is the most important one, and really the others revolve around that. The importance here is that anyone can completely define avatar features in XML - not just the avatar itself (though it is also defined in XML) - but the actual features that are possible for the avatar to use and what they look like. These collections of features are known as a library, and you could potentially swap out libraries with each other to completely change an avatar visually without modifying its internal definition. And because they're all managed by XML, they can be easily changed outside of the context of the actual editor/avatar viewer applications.

Ok, ok, ok. You want to see where it's at right now? I wasn't going to show anything, but since I talked so much about it, you're probably curious. Ready? Here's an avatar it can show on the screen now:



WOWEE! I know you're floored. Maybe more interesting is the XML used to define this. You can find that here. Of course keep in mind that all of this is subject to change.

The idea is to hopefully release this along side My Avatar Editor as open source under MIT. I have a lot more work to do, and my day job has me busy at the moment, but I'll continue to post updates to the project on this blog. Also, as you might have guessed, the target platform is Adobe Flash Player, though I will not be targeting Flash Player 10 specifically as I did with My Avatar Editor. I'll be making this one also Flash Player 9 compatible.

No comments: