Our team is heavily utilizing the skins feature to have one skeleton shared across many skins. For example, we have an "archer" spine project which has all the animations an archer might need, and we have many skins for elf archer, human archer, human archer variant 2, etc.
Everything works quite well, but I am concerned we're going to run into a lot of wasted memory as we continue adding more and more skins to each project. From what I can tell, even if a character is using the elf archer skin, we're paying the full memory cost for loading the entire texture atlas for that unit.
What is the best practice for handling this?
The obvious answer seems to break up the spine projects, so instead of taking our approach of one skeleton per archetype, we would use one skeleton for type. So for example, instead of of our one archer project with all our archer type skins, we would have one elf archer project with all variants as skins, one human archer project with all variants as skins, etc. However, the issue here is that we lose the shared skeleton / animations. So if we decide to change the archer's basic attack animation we would need to go through and redo that work across some number of files. Is there any way to reference a skeleton from another spine project? So we could have one base project which has all the animations and some sort of default skin, and then several projects which pull the skeleton / animation from that but then contain the skins?