Friday, November 06, 2009

Dragon Age Animation

I've done the snarky bit, let's talk a bit more about what went right with Dragon Age.

One of the things I really liked about Dragon Age was the body language. They almost completely avoided the Oblivion dead-man's-stare, especially during cutscenes. This was done partly with generic body language, but also partly with camera tricks. Most people overlook that even if NPCs have realistic body language, if your screen is constantly focused on their face, then the PC has unrealistic body language. Like your avatar is staring with an Oblivion dead-man's-stare.

However, you can't make the camera swing around. That would be very disorienting. Dragon Age instead uses a variety of cuts to give you a more movie-like feel, which I think was a good idea. The two methods combined - camera tricks and body language - combine to make the characters feel a lot more realistic and immersive than previous games, graphically speaking.

There is still a lot of room for improvement, and I think we can expect to see improvement in the next generation of triple-A titles.

One spot that stuck out egregiously was the head turn animation. Probably the most common social animation aside from "generic hand waves 1 and 2", it was the worst animation in the entire game. It revolves the head like it's on a platter, with a constant speed and a sharp-edge start and stop. You can hear the greasy robot blood in the character's veins.

I presume that this animation is the way it is because the "rotate head" function takes an arbitrary angle to rotate to. The engine then either performs a simple rotation or, more likely given the way these engines tend to work, animates a fragment of a larger, linear head rotation animation.

This is a shortcut they should not have taken. The only time an actor rotates their head like this in a movie is when they want to be clear that the character is unnatural and insane. So, no, not a good choice for a major animation nested into every character.

While the engine may have technical limitations that prevent it from running on-the-fly or layered animations, it is still possible to create a selection of rotation animations and either place the targets in the spots where the animations make sense, or slightly rotate the body beneath the head to make it all line up nicely.

Head animations were a big opportunity to distinguish the personalities of the various characters. A normal person, when they turn their head, ducks their chin a bit and blinks. And definitely doesn't have a flat speed with a sharp start and stop. But you can throw in variations to distinguish both characters and moods.

For example, the grumpy witch might not "come out of" the duck-turn, leaving her chin down, glowering askance at you. The insane zealot girl might lead with the top of her head, giving her more of a cuckoolander feel instead of a robotic, "I keeel you in you sleeeep" feel.

Add in some more general head posture animations, and you can give the characters a lot of personality without needing to fully mocap and tweak every scene. In the game as it stands, the difference between mocapped and generic scenes is both striking and distracting.

Now, the head turn isn't the only thing that could use added juice. Right now the body language is still very restricted and limited, with the body itself standing rigidly. Presumably this is to keep the number of required animations down: if everyone can use the same twenty animations, you don't need to make twenty animations for each character. In order to keep them generic, you have to keep the body language from being too communicative.

It's obvious that what we'll need for the next generation of body language is an engine that can synthesize animations on the fly, augmenting the "gross" animations with layered and amped sub-animations to give them more personality.

This would also be useful in fixing of the worst animation remaining: the walk animation.

The walk animation is so bad it is the sole reason I have to play in first person mode. This isn't really a rant against Dragon Age: everyone's walk animations are hideously bad.

First, they're not even vaguely unique. Usually there's only three: woman, man, and big huge dude. Second, they're animated without taking anything else into account.

Sure, it would be nice to have walk animations where the characters actually looked at things, actually stomped when they're angry, actually turn to the person they're talking to. But easier than that, please put in a turning animation.

When I turn left, my walk animation doesn't change even slightly: I revolve seamlessly. When the rest of your game is super-realistic, does that make sense?

I've said it before, and I'll say it again: I would prefer to lose half the graphical quality to double the way it's integrated into the game world. When one aspect of your assets so far outstrips the others, maybe you should stop spending on the excellent asset and shore up the crappy ones.

Unfortunately, to really do it right, we need to have a next-generation engine that allows for arbitrary, layered, on-the-fly animations.

What do you think?


DmL said...

As an animator, I can agree that animation in media sucks. Mo-cap isn't good, not even in movies, for getting past the uncanny valley. Zelda 64 did turning right, so I don't think it's an issue with what generation you're in, and more of the designer caring about more than the textures. GTA IV did procedural animation pretty well (esp. for a first try) and Assasin's Creed had interesting notions about how characters move and talk to each other. Thanks for giving me one more reason not to check out DA. : )

Craig Perko said...

Yeah, the seeds of these things exist. That's why I think we might see them come together in the next four or so years.