February 1, 2009

Attack Animations: Part 2

Have you ever heard the phrase "Sculpting Time"? Well Cory Barlog uttered that gem during an interview while he was still an animator, we all gave him shit about this quote because it sounds so ridiculously high brow. The truth is animators are doing exactly that, sculpting a chunk of time into an amazing animation based on some design. Design has to think of time as a material such as marble or stone because if the artist has too much material to begin with the sculpture may be too big and take far longer to complete than originally anticipated. Herein lies my first piece of advice, ALWAYS give the animators a frame range.

Frame range can be as general as the total amount of frames or can be as detailed as to break the animation up into four pieces; the anticipation, connection, follow through, and recovery. Design should have a good idea of what frame ranges will work best but if there is any doubt do some testing. Generally three test animations (fast, medium, slow) can determine the speed that seems acceptable for the character. The attack hitting is really important because more than anything else it will determine how fast the game plays, so spend a lot of time testing all sorts of hit ranges. Typically in 3D fighting games the jab hits around 8-10 and if I remember correctly the first strike of Kratos's Square combo hits around frame 12.

If you have no idea what sort of frame ranges may work best for the game you are working on then I suggest buying some of the top notch fighting games and doing some research. Find some moves in the game you like then seek out the frame data to remove a lot of the guess work from the process. If no frame data is available you can always video capture the move and dissect it frame by frame. Heck you can even go old school Jordan Mechner! A few frame data links below...

Street Fighter:
SF2:WW - SF2:ST
SF3:3S
SF4

Tekken:
Tekken Tag
Tekken 4
Tekken 5

Once we have the frame ranges down its time to move onto the translation of our attack animations. The translation of an attack animation serves two purposes: 1.) It makes the player feel like they are mobile and 2.) it closes ground on the enemy to increase the chance of a successful hit. Many games completely fail when it comes to creating good translation for attacks, hell some games have none at all... these games tend to score very poorly on the Metacritic so get down with the translation!

So how do we create good translation, well it comes down to the acceleration and deceleration curves. If the curve is too smooth if feels boring, if it has too harsh of a fall off it feels stilted so again we need to test a lot of motion to determine what kind of curves will work best for the game. Another question is should we translate pre-hit, on hit, or post-hit??? Again this is different for all kinds of attacks, but asking the question ahead of time means you are considering it instead of guessing in the dark. Below are a few types of translations commonly used for attack animations...

Plant - a simple foot planting walk from one attack to another, usually covers short distances and is considered high in fidelity but unresponsive and bland in terms of player feeling.

Slide - hit a pose and slide forward propelled by some amazing force, usually covers long distances and feels really good if the accel/decel curves are on the money.

Shuffle - sort of an split between slide and walk, move the feet but slide along, usually covers medium distances and halts upon connection pose transferring all the translation into the hit.

Other notable variations: Hop, Leap, Dash, Sprint, etc...

The translation of an attack animation is very important because not only does it serve to make the player feel mobile when attacking but it also plays a huge role in determining the size of the combat spaces. Honestly a lot of testing and metric work will be required to figure out what sizes work best with the attack translations. I tend to start with a small space being half the distance of the combo length and the large space being four times the combo length... just get with the level designer and TEST!

Well now we have an animation in the ballpark for timing and translation, check back soon for Part 3!

8 comments:

s said...

What general distance measurements do you use for translations? Feet, Units, Character Width etc...

eric williams said...

For the most part we talk in meters but the measurement really depends on the engine. Unreal has its own unit measurement but you can always convert it back to meters.

Barry said...

Hey dude...great stuff as usual.

When talking about the frame counts above, are those for 30fps? or 60fps?

whiskeypail said...

@barry
60fps.

XSPR said...

Maybe I missed something but what do you consider the difference between what you call the "follow through" and recovery?

eric williams said...

Sorry about the confusion with Follow Through and Recovery.

Follow Through is the time after the hit but kind of hits a pose where blending to the next move in the combo occurs.

Recovery is the time after the follow through where the animation is returning to the base pose. Typically during the recovery the player can cancel this with navigation or defense in a single player game which resets all the other states where buttons can be pressed.

Hope that clears things up a bit, my 4 part system is a little different compared to 1 on 1 fighting game systems where there is start up, hit, and recovery.

The reason for this is that the animation fidelity in a single player action game counts a lot more than the snapping to the next animation found in 1 on 1 games so this extra Follow Through window helps to increase the animation fidelity by having a set place where most blending should occur.

XSPR said...

Thanks! I look forward to your next write-up on this. Hey I don't know if this would be helpful at all, for you or anyone else interested but a few years back I made a simple free program called "Wrectangles" that lets you open a movie file to play, grab frames from it, and then go through each one of those grabbed frames and draw some rectangles in different colors and sizes over them. The intended use was for fighting games and illustrating our best guesses at where the hitboxes are, but maybe it could help this effort you're writing about here too. So in conjunction with using Youtube, or stopmo videos of art puppets, Wrectangles could be used to draw rectangles over those vids, one color for Anticipation, another color for Connection, etc. You can convey and understand/determine where one stage stops and another begins right down to the frame.

Anonymous said...

Thanks for the great posts!

On the topic of translation how do you approach rotational control of the translation? I notice on GoW that if tap square but hold the control stick to either side that Kratos will rotate slightly at the end of the maneuver. Over the course of a combo chain the player can rotate kratos around in circles.

Is this directional input blending on top of the translation in animation? How is the blending controlled?