Workflow Question - Working with unfinished spritesheets

Hey guys!

I have a general workflow question. Is there a clean way to expand spritesheets that are already in use in a project? I’m drawing my own sprites, and adding new ones as I go along. The options I am aware of are:

  • Adding a completely new spritesheet every time I draw something new. This clutters the project with tons of files, though.

  • Expanding a spritesheet only downwards, e.g. turning a 160x160 sheet to a 160x320 sheet and slicing the already used parts identically as they were before, so the old references in tiles, renderers and animations don’t get lost. This seems like a much better option, but since I can only safely expand downwards, I’ll probably start unnecessarily making spritesheets too wide so I have enough room for expansion without eventually turning a 64x64 sheet to a 64x640 tower.

Is there a cleaner way than the two I’ve described?

Thanks in advance! =)

Worrying about breaking what I’ve already done is far too crippling to rapid forward progress.

I just make individual sprite graphics, or perhaps a sheet for a single animation or sequence, just adding more files as as I go along.

This lets me change how I do things as I go along, never worrying about breaking previous uses. I often discover better ways and morph my technique as I work.

Over time as the project grows I will periodically use the in-built Unity Sprite Packing Tag to ask Unity to gather them into bundles.

Or not.

Unity is a complete beast of an engine. Dropping individual sprites in is likely to suffice for at least 99% of games out there, barring perhaps crazy bullet hell games with 10,000 completely-different graphic sprites, which again, that’s where I would start packing!

1 Like

Hi Kurt, thanks for the reply!

I definitely tend to worry over potential future issues way too much. Your answer once again confirms that a simple solution is usually good enough. I’ll just stick to new individual spritesheets then, and eventually drop them into a SpriteAtlas.

Thanks again, and have a nice sunday!

1 Like

It also frees your brains up to focus on your game, your art, your game ideas, your design, the game experience, particles, pop, animation, play, response, sounds, all the fun-fun-fun “Oh man the enemy AI caught me that time, that enemy AI is CRAZY!” kinda stuff that really makes game development fun.

Definitely don’t get bogged down being a “picture manager.” Yuck! :slight_smile:

Yeah, I completely agree with you, Kurt! Those are the really fun parts!

And also @Dabonez , thank you for the question! Something I’ve learnt is that, there are different slicing methods in the Sprite Editor such as Smart and Safe other than Delete Existing.

So if I’ve made new changes to my Sprite/Tile Sheet such as increasing the sheet size and added in new Sprites in the newly expanded portion, I could change my slicing method to Smart or Safe just so that my existing sliced Sprites would remain untouched. Similarly for all of the old references in tiles, renderers and animations.

8406774--1110417--Smart.png

So what Smart Slicing does is that it attempts to create new Sprites while retaining or adjusting existing ones. This slicing method does not remove any existing Sprites.

8406774--1110420--Safe.png

Safe Slicing on the other hand, adds new Sprites without changing anything already in place. I.e. Not even adjusting existing Sprites. Similar to Smart Slicing, it does not remove any existing Sprites. So as its name suggests, Safe Slicing is the safest of all 3 methods.

A small catch in choose any slicing method other than Delete Existing is that, if I’d removed some Sprites from my Sprite Sheet in say, Photoshop, I would’ve to delete the empty Sprite Rects for these in the Sprite Editor manually.

So in view of these, we have an initiative in our backlog to help users iterate more quickly by helping them automate some of these steps. And this will be especially helpful for Tilemap workflows.

So if you do have any feedback when it comes to working with unfinished Sprite Sheets or on any parts of these iterative workflows, feel free to let us know too. This will help us understand your use cases better too.

In the meantime, happy creating! :slight_smile: