Hi everyone, I’m currently working on a game where i’m doing quite crazy
16-angle prerendered sprites, where I’ve made a system for layering armor on top of the base sprite, that consist of a background pass and a front pass where the base player sprite is cut out.
My problem is, part of my graphical workflow is rendering out at a higher resolution and despeckling, then resizing in Aseprite.
My issue arrises when I have to resize the sprites, because suddenly where the front pass used to fit perfectly with the base sprite, it now leaves a bunch of empty pixels in the cutout area:
I’d rather avoid having to manually fix every single frame for every animation (64 frames per animation due to the angles, it quickly ends up wasting a lot of time). Does anyone know if I could somehow get around this issue? My mind is really boggling trying to solve it.
In case you’re not doing it atm, couldn’t you export all frames/armor layers with the same resolution? Like, for the base character, headgear, chest armor, etc. use the same canvas size (e.g., 256x256).
Even if there’s a lot of empty unused space, that should get rid of any resizing issues since they would stack perfectly on top of each other and be resized by the same amount. Because it seems like the root of this issue is that some armor parts are cropped or something makes them smaller than the base sprite, so they would resize by a different factor.
Ah, that sounds weird then. It could be useful if you described the step by step process of importing the layers and how you resize them/the values you use.
A couple of things I’d check is making sure that all frames/layers are actually 990x990. Another thing you could check is see if the imported layers are nudged outside the canvas for some reason.
To do so, select the Move Tool (shortcut V) hold CTRL and go over the different sprite layers and see if any of the blue borders go outside the visible canvas (if you move the curser over the border it will show a resolution), like in pic related. I used Sprite->Sprite Size to resize it, and the stuff outside the canvas is still resized but not cropped (because that’s the cel’s image, which may have different bounds than the sprite).
In theory it should affect all sprites equally, right? So it doesn’t make a lot of sense. The only thing that stands out is that 990 is not divisible by 512, 1024 would be a better number, but again they should all be affected equally I should think. If you’re using Blender and an orthographic camera I could look up the formula I used to get the ortho camera size based on a desired resolution (which is not that hard to figure out iirc).
I think you’re onto something with the sprite outside of the border. I see they’re sticking out. Selecting “trim outside of canvas” seems to trim away all the invisible pixels as well which is a problem, but it’s a step in the right direction. I’ll experiment more later, thank you for your response!
And btw, I’m making a small extension whose main purpose is merging all open sprites into a single file, with an option to stack them. One of the settings allows you to import the layer structure from said files and you’d have the option to import a “merged flattened copy” from the files (which would effectively trim anything outside the canvas) and a more advanced cel to cel copy which would preserve the image even if part of it is outside the canvas. I hope to release a beta soon, so perhaps you might find it useful.