Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Join us on Thursday, June 8, for a Q&A with Unity's Content Pipeline group here on the forum, and on the Unity Discord, and discuss topics around Content Build, Import Workflows, Asset Database, and Addressables!
    Dismiss Notice

FuzzySprites - Sprite Slicing/Dicing support for Unity

Discussion in 'Assets and Asset Store' started by RobinBirdStudios, Nov 5, 2021.

  1. RobinBirdStudios

    RobinBirdStudios

    Joined:
    Sep 14, 2018
    Posts:
    5


    Sprite Slicing/Dicing support for Unity. Split up big textures into multiple parts to save Atlas space and improve memory usage. Non-destructive and easy!



    Asset Store Link: https://assetstore.unity.com/packages/slug/119171


    FuzzySprites is a plugin for Unity that makes it much easier and more performant when dealing with big textures in 2D. Have your artists ever given you a very big texture that doesn't compress well or does not fit on a reasonable size atlas? FuzzySprites is here to solve this automatically and maintainable.


    FuzzySprites uses a process called slicing or dicing. It basically cuts the texture into multiple pieces to optimize atlas packing and compression. It flawlessly reconstructs the pieces when rendering it in the game.


    Easy to use
    Just drag in a big texture up to 8K and use the automatic settings or fine tune the slicing to your needs. And you are done. FuzzySprites will make sure the texture is performant and looks great.


    Compatible
    Works with the Sprite Packer (Legacy) and the newer Sprite Atlas. FuzzySprites is tested and supported constantly against all major Unity versions.


    Advanced optimization
    If FuzzySprites detects rects that have the same color or are identical to other rects it does not duplicate this information on the atlas and thus save space. Imaging a texture with a lot of the same blue color (e.g. a sky background). FuzzySprites will only save the blue color once. If some parts of the texture are transparent they will be ignored as well.


    Compression correction
    One of the common problems with slicing is the compression artifacts at the edges of the dices. FuzzySprites looks at the connecting edges and corrects the compression so it looks nearly the same as if the texture has been compressed in one piece.


    Configurable
    FuzzySprites selects clever defaults based on the texture you want to slice/dice. There are also some presets to spread the texture across 1k atlasses or 2k depending what your game needs are.


    Flexible
    Normally the cut sprite is rendered with a custom mesh rendering component. But you can also use SpriteRenderer components to represent the sliced/diced graphic in case your game does some special processing or shader exclusive to SpriteRenderer's.


    Source code included
    Look under the hood and check how FuzzySprites works. Classes are designed to be extended for custom needs. All classes and complex code are well commented for easier understanding.


    Follow us for updates and news

    Website | Twitter | YouTube | Mail

    Feedback is always appreciated!
     
  2. frikic

    frikic

    Joined:
    Dec 22, 2011
    Posts:
    37
    Hello,
    Just bought your asset today and tried it out, It's working but i get some warnings and error messages, I'm using Unity 2021.3.26 LTS.

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. FuzzySprites.FuzzySpriteRenderer.InitializeSortingOrder () (at Assets/FuzzySprites/Scripts/FuzzySpriteRenderer.cs:138)
    3. FuzzySprites.FuzzySpriteRenderer.SetupRenderer () (at Assets/FuzzySprites/Scripts/FuzzySpriteRenderer.cs:31)
    4. FuzzySprites.Editor.FuzzySpriteScriptableObjectEditor.OnInspectorGUI () (at Assets/FuzzySprites/Scripts/Editor/FuzzySpriteScriptableObjectEditor.cs:265)
    5. UnityEditor.UIElements.InspectorElement+<>c__DisplayClass59_0.<CreateIMGUIInspectorFromEditor>b__0 () (at /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Editor/Inspector/InspectorElement.cs:636)
    6. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /Users/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:189)
    And I get this warning every time i press apply after changing Fuzzy sprite
    Code (CSharp):
    1. mporter(NativeFormatImporter) generated inconsistent result for asset(guid:1e4f82574d4fa4bc39508d942b3ac0ff) "Assets/Graphics/Sprites/MushroomWorld/test/background1_1b.fuzzy.asset"
     
  3. RobinBirdStudios

    RobinBirdStudios

    Joined:
    Sep 14, 2018
    Posts:
    5
    Hi, thank you for your support and the report!

    Hmm, strange. I’ll look into it latest tomorrow!


    Cheers,

    Robin