Skip to main content
GameDev.net gamedev.net
🔒 Locked

Multi-Sprite character animation

Started by OrangyTang Nov 3, 2004 at 1:06 PM 2 replies 1.2k views
Original Post
OrangyTang
OrangyTang
Way back in the SNES and MegaDrive era this was a popular method for big boss characters but it seems to have gone out of fashion recently (probably 'cos we've got bags of memory for whacking great big sprites now). Has anyone tried something similar or has everyone gone to proper 3d for complex 2d characters? I was thinking of basically doing a 2d skeleton and placing sprites at the joints, although restricting it to 2d should make the actual animation easier. Then each bone would just need an angle and length each keyframe. Suggestions?
superpig
superpig
I've done this before. It can be very useful because it allows completely arbitrary setups of your sprite - instead of using one of four arm positions, you use whatever you want.

However, you may well find that when you're done, what you've got is very similar to full skeletal mapping - you're just fixing all rotation axis to be parallel to Z, and each bone is covered by a single quad (instead of full geometry). Particularly when it comes to blending - if my character's arm is going to rotate, I don't want the part of the sprite at the shoulder to rotate like I'm turning a wheel. You begin to have to add things like blend weights to quad vertices (or even to tesselate quads into smaller pieces for finer weight control).

Hmm... though I wonder if it being in 2D would allow a more elegant solution, like 'weight maps.' *ponders*
Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse
OrangyTang
OrangyTang
Quote:
Original post by superpig
However, you may well find that when you're done, what you've got is very similar to full skeletal mapping - you're just fixing all rotation axis to be parallel to Z, and each bone is covered by a single quad (instead of full geometry).

Yeah, thats the main thing I'm worried about. Last time I tried 'proper' 3d boned animation I could never get the math for the matrices to work out right. If I stick to 2d I should be able to simplify it enough for my feeble human brain. ;)

I'm not totally sure whether I'll need any kind of weighting - I'm intending to use it for big mechanical things (tanks, spaceships, big mech robots, etc.). Because of this I was going to just put sprites at the ends of bones rather than along their length. Now that I think about it that might leave the sprites somewhat unconnected - maybe some kind of textured bone underneath would be a way to stitch them together.

The only other thing that I'm unsure about is depth sorting. I'm toying with having depth priorities per keyframe so that limbs can properly move around each other while moving.
chevluh
chevluh
I haven't ever tried to implement something like that myself, but I thought I'd mention a relatively recent arcade fighting game, "The Rumblefish", uses a similar method. Each basic pose is decomposed in multiple sprites organized in a hierarchy, and the characters animate by rotating or swapping the sprites.

It keeps a Guilty Gear-like 2D look while allowing very fluid animations (since the sprite positions can be interpolated). Additionally, they used it to change individual parts of a character (to adds scars or tear their clothes in reaction to attacks) without redrawing the whole pose.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.