Leafo Studio FlexiSprite docs
FlexiSprite documentation

Animated sprite effects for Unity.

A practical setup guide for SpriteRenderer, UI Image, particles, render pipelines, presets, masks, animation, and runtime control.

120+effects
24shader variants
3pipelines
1manager component
FlexiSprite effect preview

Quick start

Use this path for a new project or a clean import.

Import the package

Import the Unity package. Keep the folder structure under Assets/AnimatedSprite/.

Run first setup

Open Tools > AnimatedSprite > First Import Setup. Select the render pipeline used by your project.

Add the manager

Select a SpriteRenderer or UI Image object, then add AnimatedSpriteShader. You can also use GameObject > Animated Sprite > Add Manager.

Pick the variant

Choose the variant that matches the renderer. Use the variant table if you are not sure.

Enable effects

Open an effect group, enable one effect, adjust its fields, then press Play or preview it in the Scene view.

For most SpriteRenderer objects, start with Standard in Built-in, Standard URP in URP, or HDRP Unlit in HDRP.

Pipeline setup

FlexiSprite supports Built-in, URP, and HDRP. The shader files must be built for the same pipeline as the Unity project.

Set the active pipeline

Open Tools > AnimatedSprite > Master Setup. In the state bar, compare Unity's project pipeline with FlexiSprite's shader build.

If they do not match, press Set Target to Project Pipeline, then Full Rebuild for Project Pipeline.

Import matching demos

Use Import Demo Packages for Project Pipeline. This imports demo scenes that use the current pipeline variants.

Do not mix URP demo materials into a Built-in project or Built-in materials into a URP project.

Pink materials usually mean the project pipeline and shader build do not match. Rebuild first, then migrate materials if needed.

Demo scene

Use the demo to test effects before adding them to your own assets.

Inspector

This is the main workflow. Add the component, pick effects, and tune them here.

Search and filters

Search by effect name or keyword to find the control you need faster.

Performance dots

Green, yellow, and red dots show the relative cost of an effect before you commit to it.

Active summary

The top summary shows which effects are enabled on the selected object.

Keyframe buttons

Use the keyframe button next to supported fields to animate values without manual setup.

Copy, paste, reset

Copy one effect, paste it to another sprite, or reset only that effect instead of the whole component.

Code copy

Use the C# copy button or Copy All Active Settings to generate field assignments for scripts.

Tools

Use the tools area for presets, sprite atlas setup, and SDF baking.

Global settings

Mask textures, global fade, pixel snap, stencil, and lighting controls are grouped in one place.

Live preview

Expanded effects show a live preview so you can tune values without guessing.

FlexiSprite inspector overview
Inspector overview.

Master Setup

Use this window for project-wide setup, rebuilds, migration, and effect ordering.

Project and shader state

Check whether the Unity project pipeline matches the current FlexiSprite shader build target.

Variant selection

Compile all variants, keep only the active pipeline, or scan Build Settings scenes to auto-enable the variants you actually use.

Full rebuild

Use this after changing the shader build target. It regenerates HLSL, C# bindings, and shader files.

Pipeline migration

Migrate AnimatedSprite objects between Built-in, URP, and HDRP. You can target open scenes, all scenes, or a selected folder.

Import matching demos

Import demo packages that match the current project pipeline so the example scenes work out of the box.

Global lighting

Adjust project-wide direct and ambient multipliers. HDRP also exposes extra environment controls for lit variants.

Effect order

Reorder groups or individual effects when you need a different stack order for the final look.

Effects

Start with one or two effects, then add more only when needed. Heavy blur, glow, and trail effects cost more than simple color changes.

Color Basic

13 effects
Strong TintAdd ColorAlpha TintHit EffectNegativeGreyscaleSaturationBrightnessContrastColor GradingSepiaPing Pong GlowColor Cycle

Color Extended

24 effects
BloomColor ReplaceLUT ReplaceHue ShiftAdd HueSplit ToningPosterizePoisonFrozenMetalCamouflageRainbowBlack TintChromatic AberrationPalette SwapDitheringCRT ScanlinesVignetteThermal VisionRecolor RGBWater ReflectionGradientRadial GradientColor Ramp

Edges

15 effects
OutlineInner OutlineTexture OutlineRainbow OutlineDistort OutlineGlowShadowSoft ShadowDirectional OutlineOutline OnlyGradient OutlineAnim Outline ThicknessSelection HighlightEnergy AuraFake Lighting

UV and Motion

23 effects
PixelateWaveTwistUV DistortFull DistortDirectional DistortUV ScrollRotateSqueezeSquishWiggleWindWorld TilingUV Scale OffsetCurl NoiseFBM NoiseShockwaveSine ScaleHeartbeatBreathingLiquid WobbleSmooth Pixel ArtUV Bend Point

Filters

5 effects
SharpenGaussian BlurDirectional BlurUV Scroll OverlayFlip Book Blend

Dissolves

16 effects
DissolveGlow DissolveSource DissolveDirectional FadeDir Glow FadeFull Alpha DissolveHalftoneRadial WipeBlindsDiamond DissolveScanline DissolveSpread FadePixel DissolveSpiral WipeHex DissolveBurn Direction

VFX

20 effects
HologramGlitchFlickerShineSmokeFlameEnchantedShiftingShift RainbowOverlayDialogue EmphasisVoronoi CrackleMotion SmearGlobal SmokeHolographic CardCloud ShadowsTrail - Speed ColorTrail - AfterimageTrail - RainbowCharging Ability

Gameplay

8 effects
CheckerboardUV VisualizeHealth TintX-Ray SilhouetteMinimap PingBlueprintGhostingRetro Palette

Outline and SDF

Use the normal outline for quick borders. Use SDF when the outline needs to stay smooth at different sizes.

Fast outline

Enable Outline, choose the color, set the width, and adjust softness. This is enough for most sprites.

SDF outline

Set outline style to SDF, assign or bake an SDF texture, then tune width and edge softness.

Bake the SDF after changing the sprite texture. Reuse the baked SDF texture for identical sprites.

Masks

Masks limit effects to selected parts of the sprite.

Enable masks

Open Global Settings > Effect Masks and enable masks.

Assign mask textures

Use R, G, B, and A channels as four separate mask slots.

Choose a mask per effect

Open an effect and set its mask channel. Channel 0 means no mask.

Animation

Animate effect fields with Unity's Animation window or control them from code.

Unity Animation window

Select the object, open Window > Animation > Animation, add an AnimatedSpriteShader property, and keyframe the value.

Animation browser

If the object has an Animator, the inspector can show clips that animate shader properties and open the selected clip.

Presets

Use presets when the same effect setup is used by multiple sprites.

Scripting

All effect fields are public. After changing one effect at runtime, call MarkEffectDirty(EffectId.YourEffect). Use MarkDirty() only when you need a broader refresh.

Use this most of the time

When you change one effect such as Hit Effect, Outline, or Dissolve, call MarkEffectDirty for that effect.

Use full refresh rarely

Use MarkDirty() for wider changes such as variant switches or other full component refresh cases.

Example: damage flash
using UnityEngine;
using FlexiSprite;

public class DamageFlash : MonoBehaviour
{
    [SerializeField] private AnimatedSpriteShader spriteFx;

    public void ShowHitFlash()
    {
        if (!spriteFx)
            spriteFx = GetComponent<AnimatedSpriteShader>();

        spriteFx.hitEffectEnabled = true;
        spriteFx.hitEffectBlend = 1f;
        spriteFx.MarkEffectDirty(EffectId.HitEffect);
    }
}

To find field names, set up the effect in the inspector and use Copy All Active Settings or the per-effect C# copy button.

Performance

Keep the setup simple on objects that appear many times on screen.

Use cheap effects first

Color changes, tint, hue shift, saturation, brightness, UV scroll, and simple dissolve are usually safe.

Limit expensive effects

Blur, bloom, soft shadow, glow, trails, heavy noise, and multi-sample outlines should be used on fewer objects.

Use the right variant

Do not use lit variants unless the sprite needs lights. Do not use GUI variants on SpriteRenderer objects.

Reduce unique materials

Share presets and settings where possible. UI Images use their own material instance for per-object control.

Reference: migrate pipelines

Use this when moving a project between Built-in, URP, and HDRP.

Back up the project

Commit to version control or duplicate the project before migration.

Switch Unity pipeline first

Set the render pipeline in Unity project settings. Built-in uses no SRP asset.

Rebuild FlexiSprite shaders

Open Tools > AnimatedSprite > Master Setup and run Full Rebuild for Project Pipeline.

Choose migration scope

Use Open Scenes for a small test, All Scenes for the full project, or Selected Folder for a scene folder.

Run migration

Choose the source and target pipeline. Run the migration. Save changed scenes and prefabs.

Check one sprite and one UI object

Confirm that a SpriteRenderer uses a sprite variant and a UI Image uses a GUI variant.

If materials stay pink after migration, rebuild the shaders for the active pipeline again. Migration changes object variants; it does not replace a wrong shader build.

Reference: choose a shader variant

Match the variant to the renderer first, then to the visual style.

PipelineVariantUse onWhen to use
Built-inStandardSpriteRendererDefault choice for normal sprites.
Built-inAdditiveSpriteRendererGlows, magic, fire, particles, light-only VFX.
Built-inMultiplySpriteRendererDarkening, decals, shadow-like overlays.
Built-inStandard PremultiplySpriteRendererSprites exported with premultiplied alpha.
Built-inAdditive SoftSpriteRendererSofter additive VFX with less blown-out edges.
Built-inGUIUI ImageDefault UI Image variant.
Built-inGUI AdditiveUI ImageGlowing UI Images.
Built-inGUI PremultiplyUI ImagePremultiplied alpha UI sprites.
Built-inScreen Space OverlayUI / OverlayUse when a Built-in Canvas overlay needs the dedicated overlay path.
Built-in3D LitSpriteRenderer / MeshSprites affected by Built-in scene lighting.
Built-in3D Lit CutoutSpriteRenderer / MeshLit sprites that need hard alpha and depth sorting.
URPStandard URPSpriteRendererDefault unlit URP sprite.
URPAdditive URPSpriteRendererURP glow and VFX sprites.
URPPremultiply URPSpriteRendererPremultiplied alpha in URP.
URPGUI URPUI ImageDefault UI Image variant in URP.
URPGUI Additive URPUI ImageGlowing UI Images in URP.
URP2D Lit URPSpriteRendererUse with URP 2D Renderer lights.
URP2D Lit Additive URPSpriteRendererAdditive sprites that still react to URP 2D lights.
URP3D Lit URPSpriteRenderer / MeshUse in URP scenes with 3D lights.
URP3D Lit Cutout URPSpriteRenderer / MeshURP lit sprites with hard alpha and depth.
URP3D Lit Additive URPSpriteRenderer / MeshURP lit additive VFX.
HDRPHDRP UnlitSpriteRenderer / MeshDefault HDRP sprite path.
HDRPHDRP AdditiveSpriteRenderer / MeshHDRP glow and VFX sprites.
HDRPHDRP LitSpriteRenderer / MeshSprites affected by HDRP lighting. No dedicated HDRP UI variant.
Rule of thumb: SpriteRenderer uses Standard, Additive, Lit, or 2D Lit variants. UI Image uses GUI variants. HDRP has no dedicated GUI variant.

Common problems

ProblemFix
Sprite is pinkOpen Master Setup and run Full Rebuild for Project Pipeline. Then check that the object uses a variant from the same pipeline.
UI Image does not show the effectUse a GUI variant. SpriteRenderer variants are not for Canvas UI.
URP 2D lights do not affect the spriteUse 2D Lit URP or 2D Lit Additive URP and make sure the project uses the URP 2D Renderer.
Outline looks rough when scaledUse SDF outline and bake an SDF texture for that sprite.
Runtime value changed but visual did not updateCall MarkEffectDirty(EffectId.YourEffect) after changing one effect from code. Use MarkDirty() only for a full refresh.
Too many sprites are expensiveReduce blur, glow, soft shadow, trails, heavy noise, and thick outlines on repeated objects.

FAQ

Can I combine effects?

Yes. Enable multiple effects on the same component. Use Master Setup only if you need to change global effect order.

Can I animate effects?

Yes. Use Unity Animation clips or change public fields from scripts.

Should every sprite have its own material?

No. Use shared settings when possible. Use per-object settings only where needed.

Which variant should I try first?

Use Standard for normal SpriteRenderers, GUI for UI Images, and 2D Lit URP only when using URP 2D lights.