Wednesday, November 7, 2007

Skeletal Animation Tools for Flash Games: A Prime Opportunity for Software Developers

The Opportunity

Like many who pay attention to such things, I've become convinced that web-based games centered around 2d, interactive vector graphics platforms like Flash and Silverlight are here to stay - at least for the next 5 years or so. Sites like Newgrounds and Kongregate are growing huge communities of both developers and players. You just can't deny it - Flash games are popular. It would therefore be easy to assume that there will continue to be growth in both the number of games and the complexity of games for these platforms. If the complexity of games continues to grow, you can be certain that there will be a growing need for 2d character animation tools. I think this represents a perfect opportunity for a startup agile software developer with a keen design sense to come in and disrupt the market.

The Context

In video games (as of right now, mostly 3d games), character animation is usually accomplished using a technique referred to as "skeletal animation." The idea is that game developers use a software tool, often developed by a third party, to create a skeleton and match up the character to that skeleton. This process of matching up the character to the skeleton is called "skinning." When it's done right, game developers can move the bones and bone helpers (collectively a "rig") of the skeleton and the character will follow. Because the character rig can be created to match the proportion and arrangement of skeletons found in living things, this technique can lead to very life-like animations.

When planned correctly, this process, although complicated, actually saves time compared to the sweatshop-like manual labor of traditional cel animation "perfected" by Disney in the 60s. In fact, this is one of the main reasons why CG animation is so popular these days - all the animation houses can save labor, and therefore money, by using skeletal animation.

The Current Choices

So then if Flash games are so popular, there must be a lot of good tools that can do this, right? Well, what was surprising to us is that there aren't a lot of tools that can do this. In fact, there are currently only two known tools that can do this: Animé Studio Pro and Toon Boom Digital Pro, retailing for $200 and $3000, respectively. After dropping a few grand on licenses for the Adobe Creative Suite, spending another $3000 per user isn't that appealing. For many Flash game developers, it's really Animé Studio Pro or nothing.

Now some could blame a lack of demand as a reason for this, which is a good guess. Many Flash games developers make games on a nickel-and-dime budget - like the cost of one license of Toon Boom Digital Pro! However, with the recent popularity of web-based MMOs, and the recent announcement of Kongregate's premium games program, I think this is going to change. Flash games will start making money and growing in complexity, necessitating character animation tools that offer skeletal animation. Even before that happens, there's plenty of room in the animation tools market for more competitors. And by that I mean more than two competitors.

The Solution

I challenge a struggling startup agile software developer to create a character animation tool that is targeted specifically to Flash/2d vector game developers. Here's a list of things to keep in mind:

  1. Include skeletal animation (preferrably support IK skeletal animation). For anything more than the really basic stuff, skeletal animation will save time and give a better result. It's kind of the whole point of this post anyways. IK skeletal animation can be a big help for speeding up the animation process, so it would be very good to have that.
  2. Look to established 3d software for inspiration. Skeletal animation for 3d characters has been 20+ years in the making. There's a lot to be learned from existing 3d software - including what not to do.
  3. Allow animators to edit their animation curves. Most animation can be expressed in software through curves and splines, referred to as "F-curves" by the animation community. The average walking animation will have the hand moving left and right in a cyclical fashion, which can be expressed with a sinusoidal wave. It's common sense to allow animators to edit this curve directly so they can express different behaviors in characters. Despite that, Animé Studio Pro does not support this.
  4. Keep the interface simple, stupid (KISS). Keep the interface simple and pleasant. Workflow is one of two main determining factors for how fast someone works, and making the software too complicated can ruin that. Painful to use not only means pain for the user, but also expense for the user's company.
  5. No drawing tools needed. Assume that a Flash game developer is going to use Adobe Flash, Adobe Illustrator, or a huge array of other well-established vector drawing tools, including several free ones. All you have to do is support importing vector files (and do it well). Anime Studio and Toon Boom can be painful in part because they have the burden of supporting drawing features.
  6. No scene management needed. Scene management will need to take place within the game itself. Focus on awesome character animation and management first. Anime Studio and Toon Boom can be painful in part because they have the burden of supporting scene management features.
  7. Export Flash-friendly SWFs. Ideally, the animation that is exported would include some Flash-friendly tweens, and wouldn't just be a long series of individual frames, which Flash would treat as a separate object per frame. This would be really hard for skinned characters, since the end result would have to be tweened shape hints. It would be nice to at least support moving and rotating objects around, though.
  8. Open part of the software up to the community. Animé Studio Pro, formerly known as Moho, is a perfect example of this. The community can write plugins for the software using the Lua scripting language. And the community seems more than willing to do so. Free development help is always a good thing. :)
Final Thoughts

Ironically, adding character animation tools to Adobe Flash itself would be one of the best solutions. The interface is already pretty friendly and well-designed, especially for those familiar with Adobe software, like most artists and designers in game development. Obviously, the output would be Flash-friendly, and the workflow would be simpler since there are less apps to juggle.

Still, it would be great for someone to make what would essentially be a Flash plug-in outside of Flash. And that way you could even support other vector platforms and allow community participation, too.

Taking it even farther, you could make the app in Flash itself, so that the character animation would be in-engine. In fact, someone's already doing that. His name is Jim Armstrong and he's working on some character rigging software as part of the Singularity library. It's just one small step for man, but his work could definitely lead to a giant leap for Flash game development. Please don't be mad at me for that one, I just had to...

1 comment:

paul said...

Express Animator has skeletal animation and is quite intuitive and outputs Flash (SWF) animations.