Thursday, March 19, 2009

Avatar Core

I'm naming the new avatar framework Avatar Core. It will be (isn't yet) hosted on Google Code under MIT, just like My Avatar Editor. In fact it will essentially be under the My Avatar Editor umbrella, using as its home page - of sorts.

I've got a new, very simple Avatar Core demo online using a couple of the Mii character assets from My Avatar Editor. Like My Avatar Editor, it consists of two SWF files, the editor (seen in demo link), and the viewer. The editor loads the viewer, reads its definition (which it, in turn, loads from this XML file), and provides appropriate selections. Both the editor and the viewer were written in less than 100 lines of code each (not counting the Avatar Core framework). Because of the flexibility of this framework, you could potentially grab these SWFs now, put them on your server, and use your own XML definition and graphics to completely change the avatar and all of its features including what it displays and what it could potentially display as well as the options provided in the editor interface.

There have been a few changes in the XML since the last post. The most important are a couple of new features including default transforms and parent definitions. A transform represents how an avatar feature looks (position, scale, rotation). A default transform lets you specify a start transform when a feature is added to an avatar for the first time. Not a big deal, but helpful in terms of having these settings defined in the XML. Before, transform properties were only defined directly within avatar features. Now they exist within a separate transform object.

Parent definitions are definitions that another definition is attached to. Consider an earring on an ear. Both are separate features, but if an ear moves up and down the side of an avatar's head, that earring should follow it. By specifying the ear as being a parent to the earring definition, when the ear moves, so will the earring.

There have been some other naming changes and enhancements to reduce XML verbosity as well. I'm not sure if this will be the final format, but I think it's looking pretty good right now.

Moving forward I'll probably focus on more avatar/editor examples using more features (such as constraints and colors). This will hopefully also flush out any bugs if they exist.

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.

Tuesday, March 10, 2009

Minor Update: Version message and Character updates

I pushed a minor update to the editor, one which should gracefully fail character SWFs for Flash Players below 10, and which allows more frequent updates to the local shared object (flash "cookie") and URL links of avatars. This new version is I think I've updated all the files in their correct locations for downloads.

Are you using My Avatar Editor on your site?

Are you using My Avatar Editor on your site? If so, let me know. I plan to have a links section showing off how others are My Avatar Editor on their own sites. Post your link in the comments section below and I'll add it to to help spread the word.