Hi,
I have a web based animation editor. I create the sprites manually. So for a walk cycle, I create about 10 frames. As time has gone by, the number of characters have increased. I am now wondering if it may be worth it to introduce skeletons. So, I create the 10 frames for the skeleton walk cycle and develop code to create the character animations based on these skeletons. So if I introduce 20 characters, I just rig the skeleton properly in the character and run the code to create animations for the 20 characters.
Anyone have experience with this? Questions I have:
Are there existing open source libraries that can do this?
If not, how do I handle the movements of the limbs? Currently they are all in svg. Say the elbow bends with a certain arc, in the movement how would I modify this arc?
Anything else I need to pay attention to?
Hopefully, what I wrote is clear. If not, please let me know.
Replies
Not open source, but Spine is pretty good for skeletal animation that you can export to other game engines: http://esotericsoftware.com/
Dragon's Crown is another example of a game using this technique. We had tried something similar using Spine, and it turned out to be a very long and painful process. Doing simple animations like old school flash style animations is easy though, and getting the 3d effects is real cool!
The big issue was that a character needed to house all the bones and sprites for all their animations/poses, which meant a lot of planning, iteration, and trying to get the art right the first time around. For example, some attack animation that needs three major poses for the body, legs, and arms and we use the joints for all the tweening. The art/joints/meshes need to be set up so when we move to the next art frame there's no bad skipping or gnarly deformations. So if something wasn't working and we needed to redo the art, joint placement, weights or even the whole mesh, and eventually get back to fixing the animations, it cost a lot of time.
Just some food for thought, our situation was a bit more complex I think.
I can't speak much for creating a custom implementation, though the concept is basic with meshes, joints and weights. You'll want to create some kind of control rig for animating, at the very least, some way to reset joints to their rest positions.