NOTE: At this time Apple ARM processors, such as the M1, are not officially supported.
Spritehandler is a set of tools for using, and generating, sprite sheets within Blender. Using a node group to manipulate UV coordinates, Spritehandler sequences sprite sheets loaded through image texture nodes. This opens up a wealth of possibilities for rendering sprites, flipbooks, billboards, particles, and material variations. All functionality is wrapped in intuitive operators for efficiency and ease of use
Spritehandler can also be used for simple sprite packing using either on-disk images or packing automatically from render output.
Particles, Static and Animated
Using the Spritehandler node group with particle systems greatly expand what is possible with Blender’s limited particle rendering tools.
Material Variation with Atlases
By driving the node groups index function with object data or randomization, Spritehandler can be used to create complex material variations across instances.
Atlas to Mesh
Convert atlas maps to mesh objects based on their grid layout and alpha channels.
Playback of Spritesheets and Flipbooks
:warning: Eevee warning: Due to a bug/limitation in Eevee, spritesheet indexing can occasionally show the wrong frame. The issue specifically when using the spritesheet node group and does not affect creating spritesheets. At time of writing I'm experimenting with a workaround but can make no promises as the bug is part of Blender.:
Spritehandler’s enables the use of sprite sheets within material nodes. Creation of sprite planes through the operator will setup a time node, removing the need to keyframe playback.
- Demo files
- Preset based sprite plane creation
- Particle Indexing
- Particle Playback
- Billboard Toggle
- Setup operator for planes
- Playback Control
- Delay start
- Index Offset
- Total offset (for uneven sheets)
- Loop limits
- Current frame shader node
- Render farm/distributed rendering compatible
- Generate spritesheets from images
- Generate spritesheets from animation render
- Adjust scale of generated spritesheets
- Convert atlas images to individual, grouped, meshes with alpha derived topology
- Index : Current index to output.
- Start Delay : Delay playback / freeze playback until this frame is reached.
- Index Offset : Offset the current index.
- X Cells : Total number of horizontal cells.
- Y Cells : Total number of vertical cells.
- Adjust Total : Adjust total cell count for uneven cell sheets.
- Loop Count : Playback limits.
Tutorial: Sprite Planes
- Add Menu (SHIFT+ A) > Mesh > Create New Sprite Plane
- Select Spritesheet file and choose a host type/Preset:
- Animated : Index driven by current frame
- Static : Index driven by random number
- Particle Animated : Index driven by particle age
- Particle Static : Index driven by particle index
- Setup sheet by either:
- Running operator: Object > Setup Spritesheet
- Manually set the group node parameters and run operator: Object > Scale From Sprite Node
Tutorial: Sprite Packing
Sprite packing is performed through the Spritesheet Generator Toolshelf in the UV/Image Editor
- Generate Spritesheet prompts to user to select sprites for packing and then generates an new sheet from them based on the 'X Cell Count'
- Regenerate Spritesheet last images used in Generate Spritesheet and repacks based on the 'X Cell Count'
- Enabling Sheet from Render will generate a spritesheet from animation renders. These sheets can also be used with Regenerate Spritesheet
Tutorial: Atlas to Mesh
- Add Menu (SHIFT+ A) > Particle Atlas to Mesh Group
- Set creation parameters using the operator properties(Bottom left corner of 3d view)
- Sheet Path : Atlas for conversion
- Cells : Set atlas cell values
- Subdivision : Controls the accuracy of the conversion
- Dilate Alpha : Grows the alpha of each cell
- Un-Subdivide : Enable/Disable mesh optimization
- Decimate Factor : Number of optimization steps
- Triangulate : Triangulate final meshes
- Group : Create a new group and add mesh to it
- Individual Group : Create, and apply, a unique group for each mesh
- Island Clean : Remove small mesh islands based on their area.
- Surface Type : Shader type to use for the new objects' material
- Experiment with subdivision and alpha dilate values to get a feel for how they affect the mesh generation. Higher subdivision values are very computationally expensive and you should focus on alpha dilation to recover clipped details. Disable Un-Subdivide to better see generation process. Alpha dilation is likely to generate small floating islands that can be cleaned with the Island Clean parameter set to a low value.
Advanced Use / Materials / Manual Setup
The Spritehandler node group functions by scaling UV coordinates into ranges appropriate for stepping over grid packed spritesheets/material atlases. Refer to demo files and observe how the handler nodes are being driven by their own sets of uv coordinates and masked where necessary.
Promotional Material uses work by the follow author:
- The Deer Rigger by Paul Bernatchez
- CuteKnight by @goglilol
Bat, Hero, and Snake Spritesheets
License not specified (Commercial use specified as allowed)
- Industrial Pack by @ollieberzs
https://ollieberzs.itch.io/industrial-pack License not specified (Commercial use specified as allowed)
- explosions-pack-web by Luis Zuno @ansimuz
License CC BY 4.0
- gothicvania patreon collection by Luis Zuno @ansimuz Nightmare, wolf-running-cycle, gothic-hero, skeleton https://ansimuz.itch.io/gothicvania-patreon-collection
License CC BY 4.0
- OPPO2017 by Open Pixel Project
License Public Domain
- VFX Flipbooks by Unity
Unity Flipbook Free Use Samples
Recent Updates (2.0 Beta, 25/7/2021)
- Addon has been completely rewritten to vastly improve performance.
Recent Updates (1.6, 28/2/2019)
- Convert image atlases to individual meshes. New meshes based on alpha matte to minimize overdraw.
- Adjust output scale of generated sprite sheets
|Dev Fund Contributor|
|Published||almost 3 years ago|
|Software Version||2.79, 2.8, 2.81, 2.82, 2.83, 2.9, 2.91, 2.92, 2.93|
|Render Engine Used||cycles, eevee|
Have questions before purchasing?
Contact the Creator with your questions right now.Login to Message