Get Sheet Done

Generate grid-based spritesheets right inside Blender from images or when rendering an animation. Spritesheets are mostly used in popular game engines as an animation sheets.

You don't need any external software - just Blender and this addon - which means it's perfectly integrated with Blender and will run on any platform, with any render engine or image file Blender can use.

So if you need to combine sprites into a spritesheet or just merge couple images and would like to do that quickly and easily inside Blender - this addon is for you.

While this version is released solely to support frame step setting, I decided to add some development features to it, since they are already functional, even if not fully polished yet.

1.3.

Get Sheet Done update 1.3 new features:

- removing individual sprites,

- slicing image to new sprite sheet,

- more sprite filling directions (top to bottom or bottom to top; left to right or right to left).

Get Sheet Done version 1.1 bringsredesigned panels for new features.

Render strips - Get Sheet Done (Properties -> Render settings):

Which will let you setup your rendering order from multiple cameras and create single or multiple sprite sheets (Image Viewer):

Where you can add even more sprite sheets, to which you can add more images:

And just like before order sprites by rows x columns.

If you choose to only render - no spritesheets will be created and all render strips will save your files to output location (Properties -> Render settings -> Output) with Strip name.

Generated spritesheet is grid-based. It means it is organized in columns and rows and each tile (sprite) has same size as first loaded image, which becomes a reference for spritesheet's sprites.

If you want to combine images of different sizes, you can simply check Scale to first toggle, which will automatically scale loaded images to the reference size. Keep in mind though - all sprites will have same size ratio.

After loading files you can change column and row count. Spritesheet will automatically place all sprites in correct positions - from top left to bottom right. If you decide to reverse sprite order you can do that wih Flip order button. Initially sprites are ordered according to the loading order (internal Blender's file browser order) and then by appending images (Add more images button).

If you view other images you can quicly bring back spritesheet to front with Show spritesheet button.

If you decide to scale image after you load and place all sprites, you can do that from Extended options. Tile size there refers to reference sprite size in pixels. This is destructive operation (scaling to lower and back to higher resolution will result in quality loss), so it is advised to scale images just once before saving out to a file. You can however reset all scaling with Reload and update button, which reloads all sprites to original (reference) size.

To update, please remove old version, restart blender and install new version from zip file provided.

For more information please check FAQ section.

So... I can finally get my sheet together?

Yes, sheet got real.

Ok, it's cross platform right?

Exactly, there are many advantages of this approach:

- No additional software,

- Any image type Blender can handle (including those that might be introduced in future),

- Cross platform,

- Rendering animation directly to spritesheet,

And all that within familiar environment of Blender's Image Viewer.

There is one result of this approach that might be undesirable:

- All images must be loaded to Blender. It means they will be loaded as datablocks and accessible from within the Image Viewer. They are treated as an "empty users" - they won't be saved with the .blend file (unless of course you mark them to be saved as "fake users" or actually use them somewhere).

Can I use Blender internal/Cycles/other renderer?

You can - anything that produces rendered image inside Blender can be used to render animation directly to spritesheet. In any other case you can still use image files to create a spritesheet.

I appended an image to existing spritesheet, but some tiles are darker/brighter!

It might happen if you mix 8-bit/channel images with 10, 12, 16, 32-bit/channel images. This is current limitation to how Blender handles 8-bit images. There is working solution to the issue, but I decided to not include it (as a marginal case and couple downsides that come with it). It boils down to gamma curve color transformation and I'm not sure if this is a feature or a subject to future Blender API changes.

In any case - if you find your mixed sprites shifted in color - just convert images to similar bit-per-channel format before appending to the spritesheet.

I have no alpha channel in my spritesheet!

Just make sure you use render output format that has alpha channel even if you don't save any images yourself. The format you pick will be used to transport images to spritesheet.

I interrupted rendering, how can I resume without re-rendering existing frames?

Well, in any case it is advised to save render to image files even if you render out directly to spritesheet, however all frames are stored independently in Blender's temporary folder(see Blender'sUser Preferences -> File -> Temp). You can simply use images stored there.

What image type spritesheet is?

Whatever you save it to be - spritesheet is a native Blender image, just hit F3, pick your format and save.

What if I want to load images of diffrent sizes to one spritesheet?

There is an option to resize images on load to fit the reference image (first loaded image). Simply put: if you have reference image of size 64x64 and one or more images of different sizes - they will be resized to 64x64 to match the template and appended to spritesheet.

How is tile size calculated?

Tile size will be calculated from first loaded image, which is treated as a reference for all pending images - if other images fit the size of reference image, they will be loaded, if not - see next question.

How is spritesheet organized?

Spritesheet is grid-based (columns by rows) with constant tile size per sprite. It means that if you have for example four images of size 64x64, spritesheet will calculate its size to fit all of them in the best manner - in this case it would take shape of size 2x2 sprites (128x128 pixel size). Of course this is just starting point - you can change the number of columns and rows, append more images etc.

What image types can I use?

Anything Blender can handle - another advantage of using Blender's native functionality. If you can load an image to Blender - you can make a spritesheet out of it.

Do I need to install additional software?

All you need is Blender and this addon. It uses only Blender's native functions for image processing.

Item Rating

This item has an average rating of 5 from 2 ratings by the community.

100%

0%

0%

0%

0%

Aleksander Erstu
3 months ago

I've been using blender for years and so far, this is the only add-on i found worth purchasing. Very useful.