Sprite Factory - Sprite Animation System for Unity

Sprite Factory is a powerful 2D sprite animation system that makes it easy and fun to work with sprites in Unity.

  • Perfect for console-style 2D games and fighters
  • Easy to use yet full of powerful features
  • Intuitive workflow with a single editor interface
  • Works with C#, Javascript, and Boo
  • Fast and efficient
  • Complete C# source code included
  • Complete documentation with tutorial videos
  • Personal, timely support
  • Fully compatible with Unity 4.3+ and 5.0+ Free and Pro
Sprite Factory has been deprecated and is no longer available for purchase.

 

See the documentation for help on how to use Sprite Factory.
See the videos section below for an overview of features and workflow.

 

Features

Animated and Static Sprites

  • Create animated sprites for characters, animated background elements, and effects.
  • Scripting lets you control playback speed, play an animation at a specific frame, pause, rewind, stop animation, and more.
  • Static sprites have no animation and consist of a single frame.
  • You can use static sprites for non-animated background elements, for example.

Sprite Groups

  • Share atlases and materials on related sprites and save draw calls.
  • Move sprites in and out of groups at will.
  • Great for background elements.

Automatic Texture Atlasing

Texture Atlas
  • Atlases are generated automatically for sprites and sprite groups.
  • Sprites can have unlimited atlases.
  • Sprite Groups share atlases saving space and reducing draw calls.
  • Long animations are split over one or more atlases automatically.
  • Multiple identical frames in different animations take only one space in the atlas.
  • Automatically trims images to reduce wasted space.
  • Frame padding prevents edge bleed.
  • Set a maximum atlas size for the project.
  • Find atlases that need updating after changing source frames with one click.

Automatic Mesh Generation

  • Sprites can use a standard rectangular mesh or an automatically-generated mesh shaped to fit the sprite to reduce overdraw.
  • Customize the mesh type and mesh generation settings globally and for each sprite individually.
Automatic Mesh Generation

Animatable Box Collider System

Animatable Collider System
  • Sprite Factory includes a powerful animated box collider system for accurate hit detection in 2D games. Want to make a fighting game with characters that have a dozen hit boxes and hurt boxes? No problem! You can add as many colliders as you need to get accurate collisions.
  • The collider system allows you to animate box colliders frame-by-frame to match sprite animation.
  • Create motive colliders, hit detection colliders, attack colliders, etc., that animate with your sprite how you choose.
  • Easily create traditional 2D games with accurate hit detection.

Animatable Locator System

Animatable Locator System
  • Creates an animatable point on a sprite which can be used for attaching objects (such as a gun to your character's hand), or as an origin point for bullets, muzzle flashes, etc.
  • Even attach a whole nested hierarchy of sprites or objects!
  • Combine with Frame Events to do something at a specific point on a sprite during a specific frame of animation. (Ex: Spawn dust particles at the feet of a character when walking.)
  • Create as many locators as you need.

Material Sets

  • Predefine materials and swap materials on the fly without incurring excess draw calls.

Frame Events

  • Trigger an action when a frame starts playing or ends.
  • Play a sound, spawn effects, etc.

Render at Actual Pixel Size

  • Draw sprites at actual pixel size for high-fidelity rendering regardless of the target platform.

Batch Scaling

  • Scale sprites without incurring extra draw calls.

Unlimited Animations and Frames

  • No limit to number of frames or animations in a sprite or sprite group regardless of platform texture size limitations.
  • Sprite Factory has been tested with sprites containing over 1,100 high-resolution frames each for arcade fidelity animation.
  • If an animation spans multiple atlases, child planes are created for each atlas and are enabled and disabled as needed during playback. This is vastly faster than swapping materials on a single plane.

Single or Double-Sided Meshes

  • Use double-sided meshes if you have a single-sided shader but need to see both sides of a sprite.

Mirror Sprites Horizontally or Vertically

  • Convenient for side-scrollers to change the character's facing.
  • Add variety to repeated background elements.
  • Colliders and Locators mirror as well.

Billboard Sprites

  • Billboards are sprites that always face the camera. They can be used for many types of effects.
  • Bilboards can be static or animated.

Resolution Targets

  • Easily scale all sprites to different resolutions without affecting the object size in the world.
  • Work at the highest resolution and easily scale down for lower resolution platforms.
  • Since the world object size doesn't change, you won't have to adjust any distances, speeds, gravity, etc. when you change resolutions.
  • Animated colliders and locators automatically work at every resolution.

Sprites are Loaded from a Template on Instantiation

This has some useful implications:

  • Complex hierarchies just work. Sprite components can be nested in complex hierarchies or parented to other objects without any issues when making changes to the master.
  • Prefabs and non-prefabs work equally well. It is recommend you use prefabs where possible, but you can certainly create non-prefab Sprites in-scene if you choose without worrying about whether they'll be updated when you make a change to the master.
  • Sprites are completely reusable. You can have Sprite components based on the same Master Sprite in as many different prefabs or scene sprites as you like. When a change is made to the master, all the children will automatically have the lastest data.
  • Nothing in the scene or prefab sprites needs to be updated every time you make a change in the source Master Sprite.
  • Updating Master Sprites is fast because there is no searching for Sprite components on prefabs or scene objects to push updates to.

Flexible Update Cycle

  • Choose to run the Update cycle directly in the sprite or use a Sprite Updater to update sprites in Update, Fixed Update, LateUpdate, or update each sprite manually with your own manager.
  • Sprite Updaters give you full control to update sets of sprites when you choose. For example, when pausing the game, you can pause game sprites but still animate GUI sprites.

Fast and Efficient

  • Game-facing code was written for speed and efficiency. It uses arrays instead of slower types like generic lists and dictionaries, makes as few function calls as possible, avoids disposable objects and arrays that trigger frequent garbage collection, and as much data as possible is pre-calculated and serialized by the editor at save time so game code runs fast.
  • Features such as Sprite Groups, Batch Scaling, and Material Sets help ensure sprites can be dynamically batched so rendering takes as few draw calls as possible.

Editor Features


What Sprite Factory is Not

 

Screenshots

 

Videos

Below are some videos that show you the workflow in Sprite Factory.


 
Overview   Creating Sprites
     
 
Sprite Inspector   Frame Events
     
 
Collision System   Locator System
     
 
Material Sets   Walking character in 1:45 incl. scripting