Page MenuHome

Generate a sprite sheet from a completed animation render
Closed, InvalidPublicPATCH

Description

Project: Blender Extensions
Tracker: Py Scripts Upload
Blender: 2.63
Category: Render
Python: 3.2
Script name: Spritify
Wiki page: http://wiki.blender.org/index.php?title=Extensions:2.6/Py/Scripts/Render/Spritify
Dependencies: bpy, os, subprocess, ImageMagick
Author(s): Jason van Gumster (Fweeb)
Status: Open

This add-on was originally developed for the Ancient Beast project (www.ancientbeast.com).

The default behavior adds a function to the render_complete handler. When an animation is done rendering, this add-on generates a sprite sheet from the completed rendered frames.

The add-on is a simple subprocess call to the ImageMagick montage command with a set of basic configuration options in a panel of Render Properties. In the future it'd be nice to do this in pure Python rather than have the ImageMagick dependency.

Event Timeline

Whoa, I've been having to manually create these. Does this script work in the newest trunk svn?

It does! Feel free to give it a spin and let me know if you run into any issues.

TexturePacker has been great, without such a useful Addon as this. Thank you for creating & sharing! :-) Your vertex ID info script is also VERY useful!

Small update to allow users to toggle between row and column arrangements for their spritesheets. Rows is the default.

Script update to v0.4.0

A few updates:
* Added the ability to set X and Y offsets for spacing between tiles.
* Added the ability to generate an animated GIF with the same settings as the spritesheet.
* UI enhancements in the Spritify panel

I wonder if this script should be converted to a makeshift exporter since we can't add new image types to the Output panel...

I made some small changes to make it work with relative paths, render scale (percentage) and set min 0 for quality. You can apply it to official version if you like.

--- spritify.py 2012-07-23 00:14:12.153885885 +0200
+++ spritify.py 2012-07-23 00:13:10.316031319 +0200
@@ -45,6 +45,7 @@
name = "Quality",
description = "Quality setting for sprite sheet image",
subtype = 'PERCENTAGE',
+ min = 0,
max = 100,
default = 100)
is_rows = bpy.props.EnumProperty(
@@ -97,9 +98,9 @@

subprocess.call([
"montage",
- scene.render.filepath + "*", #XXX Assumes the files in the render path are only for the rendered animation
+ bpy.path.abspath(scene.render.filepath) + "*", #XXX Assumes the files in the render path are only for the rendered animation
"-tile", tile_setting,
- "-geometry", str(scene.render.resolution_x) + "x" + str(scene.render.resolution_y) \
+ "-geometry", str(round(scene.render.resolution_x*scene.render.resolution_percentage/100)) + "x" + str(round(scene.render.resolution_y*scene.render.resolution_percentage/100)) \
+ "+" + str(scene.spritesheet.offset_x) + "+" + str(scene.spritesheet.offset_y),
"-background", "rgba(" + \
str(scene.spritesheet.bg_color[0] * 100) + "%, " + \

This addon isnt working for me. I'm on revision 53290. It shows up in the addon preferences, but it wont enable when I click the checkbox.

Brendon Murphy (meta-androcto) changed the task status from Unknown Status to Unknown Status.Sep 8 2015, 11:05 AM

Closing as archived.
Jason van Gumster (thefallenweeble)
feel free to create a new task if your updating this addon

It *is* being kept up to date. Currently it's maintained on my GitHub account: https://github.com/Fweeb/blender_spritify

Hello Jason, Not sure if you are still supporting this plugin or not, but I'm have a problem with it in Blender 2.77a that is resulting in a complete systems crash when trying to render any image (even the simple cube from the default start up scene)

Rather than spell out the situation and the results from my testing again I've documented my experience on the BlenderArtists.org website in this topic.

http://blenderartists.org/forum/showthread.php?400878-Blender-2-77a-2016-05-05-18-12-Hash-abf6f08-Crashing-Computer-on-Render

As ImageMagick is required for the plugin, but the plugin is failing as result of ImageMagick being installed. I thought I'd bring the situation to your attention as Convert I believe is now considered a legacy utility (which causes Blender to crash when rendering anything if both legacy utilities and spritify are enabled on the install of imagemagick but doesn't if Spritify is enabled, but legacy utilities are not.)

I guess the question becomes, "If legacy utilities are not enabled on the install of ImageMagick, does Spritify still work?"

If not, then Spritify or ImageMagick need updates because installing the legacy utilities in ImageMagick cause systems to go completely unresponsive and crash when rendering scenes from Blender Render (I haven't tried Cycles) when both are enabled.

Thanks for your time and support to the Blender Community. Noobies (like me) really appreciate the tools you authors produce to enhance our experience in Blender.

Is there a chance to upgrade this to 2.9?

Most of the maintenance for the script is now being doing by @Dread Knight (dreadknight), but I don't see why the script couldn't be supported in 2.9. Have you tried it? Do you get an error?

@David (activemotionpictures) It's not likely that I'll be porting it to new versions myself, as I'm a crappy coder, but the repo for it is over here now: https://github.com/FreezingMoon/Spritify - some people did port it to 2.8, there's even a PR https://github.com/FreezingMoon/Spritify/pull/12 but that as well as another one didn't work for me at all, giving errors. Anyway, star/follow the GH repo and feel free to make PRs or open issues, will see about getting this in better shape in the near future one way or the other, especially if I'll have to put it to good use.

Add-on was updated to 2.8 series and there's also a new maintainer who'll help with 2.9 and hopefully further on.