How hard would it it be make a sekeletal system for aseprite?

As the title says I want to know if it’s possible to implement a system where images are parented to bones and I’m guessing it’s hard. I wouldn’t mind waiting how ever long it takes, guessing this would be end game kinda stuff. I’ve tried to use spine for rotating pixel limbs before and that was just pain, it’d have transparent artficats. I know there is one other program that lets you rig sprite on itch.io, but yeah that isn’t really user friendly imo. Thank you for your time and have a great day.

Hi smeargletail.

I’m not part of the Aseprite development in anyway but I’m a long time game developer and a coder so I can open up the topic a little bit for you.

When you think the skeleton animation it’s not really possible on a pixel art scale or at least I have never seen a solution which would not end up rendering something in high resolution and then scaling it down to be pixel art. For how the Aseprite works and how it was first created and implemented it would not be worth it to try implement a 2D-skeleton based animation framework to Aseprite… At least in the form you have probably seen them.

As in all solutions you have one full complete picture (Like an arm or a leg) and then you transform that specific part by rotating and scaling it. This would mean that for Aseprite a whole new rendering scenery would need to be implemented which would be a massive work and wouldn’t also work great with pixel art… This is a drawing software for pixel art after all.

However I wouldn’t see it impossible to create tool that would allow you to manipulate a skeleton to form the movements and let the aseprite try to transform the images from the rotations and positions of those skeleton parts to kind of emulate the movement that the skeleton animation is going to make. Done with a different frame counts we can determine the FPS of the animation.

As you may not be familiar with the technicalities, the files produced from skeleton based tools are usually a set of different insctructions for the program and the game engine to create the animation. You wouldn’t usually render the frames for example when using Unity but you export the animations itself in there to preserve the smooth animations with the full resolution images. This also takes the least amount of GPU power and memory as we can create as many frames as needed for the animations and also manipulate them.

If you try to do a bone based animation with pixel art graphics and then lower or keep the resolution in the game… the end result just does not fit in and you need to fix too much stuff manually, so artists prefer to draw all the frames one by one. This is only my opinion but you need to prerender the frames in order to get it look right for example in Game Maker which is 2D pixel based engine. Unless you go with a higher resolution, which would mean they are not pixels anymore… This is how it’s usually done in the modern games.

For this implementation at least one file format would be needed and a crapload of UI code which would be the doom of this project. Not to mention that you would be the pioneer in making this kind of software for niche audience.

Apparently the transform tool would support this kind of tool as it applies the pivot point and rotation around it. (You need to rotate the transform first) First we would need a tweening tool to create prerendered frames with the tweening done from frame A to frame B. This would allow you already to use Aseprite as a skeletal system. Also the transform tool itself allows you to do that too but with a slower and more tedious workflow. That’s how I’m making animations sometimes when trying to figure out the movement.

That said we might see a simple solution like this or something like… “transforms that can remember their pivot points”. But as a bone based animation tool, there are much better solutions already out there and at the end of the day pixel art just isn’t suited for that kind of workflow. After all the work with the bones you would need to once more redraw every single frame to make it look good. (In the standards of the pixel art)

To answer you question: Would it be possible? Yes. Anything is possible when coding your software. Would it be worth doing at this point of the program’s cycle? No, there are too much to do. But considering there are already transform tools with a pivot points in Aseprite we might get something helpful pushing us toward puppet-like workflow, but having a rigged mouse controlled puppet would mean programming another new program and I don’t think it would be reasonable to try to fit it in Aseprite.

EDIT: I actually found the rodemap saying that the tweening will be designed and implemented on 1.4 and we are at the 1.3b right now. Also the needed time depends on the complexity of the tweening and the actual concept of the tweening implemented. I have a simple improvement which does not really need tweening to be implemented yet. The developers might know about it. I’ll start a new post which I will link here.

2 Likes

Thanks for the reply, hopefully can do something like it. I’ve seen some wacky stuff done with aseprite like people making scripts that make use of polygons.