Archive for the ‘Animation’ Category

Mixamo: quick animations for indie developers

Wednesday, July 29th, 2009

Every once in a while a site emerges from the primordial Internet ooze that changes the way I think about things. Pandora changed my notion of Internet radio. YouTube has changed video forever. Facebook made me believe I could stay connected to old friends without the stress of writing periodic in-depth e-mails (which I never did).

Thanks to a mention in the recent Unity newsletter, I think I may have discovered another game-changing site, at least as far as indie game development is concerned. The site is Mixamo, which offers nothing less than the ability to create “production-quality 3D character animations in a fraction of the time that traditional mo-cap and keyframing requires.” Oh, and you can use your own skeleton. Crazy, right?

Mixamo is a Web-based application that allows you to upload a skeleton, choose from a growing library of animations, apply them to your skeleton, customize them quickly using a series of sliders, save them to a shopping cart, and buy them on an a la carte basis. Animations cost anywhere from $25 to $119.

For an indie developer with limited resources and animation skills, this is potentially a game changer. Animation is a seriously specialized skill, and paying $50 for a ready-made animation to play with is much more appealing that hiring a freelance animator who is sure to charge hundreds of dollars at least.

Certainly Mixamo has some limitations, including the fact that it only supports biped animations. No animals, monsters, or hybrids here, as far as I can tell, though I don’t know how the system would handle a non-standard skeleton (with, say, an extra leg joint — for a minotaur or something).

Let’s face it, animating human characters is hard. Hiring people to do the work is expensive. Now, thanks to some seemingly brilliant programmers, a great idea, and the wonder of the Internet, another barrier to video game development appears to be crumbling away. Very exciting indeed.

Fun with blended animation

Tuesday, September 4th, 2007

In this post I’m going to dig into a particular topic a little bit: animation. First, a little setup.

When I switched to Unity from Torque, I also decided to change the nature of my battle system. I had been working toward a time-based battle system in Torque, which meant that each character or enemy in the battle had a timer that would reset after each move and then refill over a period of time. When the timer filled, that character/enemy would enter its desired move into a queue that would execute one move at a time.

One big advantage of this system is that it’s easier to input moves for multiple characters (since only one character/enemy is doing anything at any given time). Unfortunately, it’s also a bit dated (think Final Fantasy VII) and works best with a separate battle screen.

So, in Unity I’m working on a more “real-time” system like World of Warcraft or Final Fantasy XII where enemies are visible all the time, have an aggro range, etc. This type of system is much more realistic and helps maintain the illusion of the game world, which is something I want to do as much as possible.

So what about animations?
Time-based systems make animations a little easier to handle, since each animation occurs in sequence and involves the entire skeleton. A basic move might go something like this.

  1. “Idle” animation playing before the move.
  2. Play a “run” animation and move toward the target.
  3. Once the character reaches the target, transition to an action animation (like swinging a sword).
  4. Play a “run back” animation and move back to the starting location.
  5. Transition back to the “idle” animation.

A real-time battle system isn’t quite so neat. At any time, your characters can be running in any direction while attacking, being attacked, casting a spell, etc. So your animation setup needs to be pretty flexible. This kind of thing is usually handled through the concept of animation blending. Here’s Unity’s discussion of the subject. To use blended animations, it’s often a good idea to create separate upper and lower body animations that are combined at runtime. So your animation setup might look something like this:

  • Full body
    • Standing
    • Walking
    • Running
    • Strafing
    • Walking/running backwards
  • Upper body only
    • Swinging weapon
    • Spell casting
    • Blocking an attack
    • Taking damage

With a blended animation system, you can give the upper body animations control over the affected joints in the skeleton when necessary, without interrupting whatever is happening in the lower body. This way you swing a weapon while standing, running, or whatever. Also, with a layering system like Unity’s you can blend multiple upper body animations at once. This means you can run, swing a weapon, and take damage all at the same time.

Learning to animate
Animation is a very complex subject and an art in itself. I don’t claim to be very good at it, but there are a lot of good basic tutorials out there. I’m particularly fond of this one, which explains the process of animating a run cycle.