Hi, I’m currently making some animations for a 2d project and I’m having some doubts I hope you can clear to me :slight_smile:
So, I have this animations for a character, made of 512x270px sprites, 13frames each, and I’ve always read that I should always use sprite sheets when making a 2d game, but I think the frames are kinda too big and I would end up using like a LOT of 2048x2048 sprite sheets just for the 6 to 8 animations my character could have in the end. Maybe it’s normal that way but I also read somewhere that if you use “too big” sprites when sprite animating you are better off putting all the frames separately for better vram usage, but again, I don’t really know how the computer handles it so I could really use your wisdom >.<.
Lastly, I think like I didn’t explained myself very well so if you have any question to clear things out I’ll be happy to answer them. Thanks in advance.

There are many reasons for using sprite sheets,

First of all your textures are NPOT (not power of two) because the height is 270 not 256 or 512, and reasons for using POT textures include texture compression (PVRTC, DXT…) and mip maps are tricky for NPOT textures, and depending on hardware and/or engine the NPOT textures may be padded with 0s (so they will take as much space as the next POT) or scaled (to nearest, smaller or larger POT, losing memory or quality)

Secondly, you said that your textures are 512x270, but does every frame of every animation use all that space? i doubt it, it’s usually a one-size-fits-all situation, where most frames will have a big area of 100% transparent space, and almost all sprite packing programs, Unity included, will not store the empty area in the sprite sheet, it will try and find the actual square of non-zero pixels and store only that, so even if you managed to make your sprites 512x256, the sprite packer is very likely to store more than 32 sprites in a 2048x2048 sprite sheet, look at the following image for a demo, i made these 6 icons unnecessarily 1024x1024, and unity fit all of them in a 1024x512 sheet:

and about vram efficiency point you mentioned, it’s only applicable when there is a relatively high speed bus to upload images to gpu, otherwise you will suffer a “hiccup” every time you try to render a texture that’s not already in the vram, having sprite sheets will be like “caching” data in this case.

again with the “too big” assumption, i think that even low-end android devices these days can handle more than 4x2048x2048 textures (but don’t take my word for it, research it yourself), you should study your target range of devices before you assume that the textures are too big.