Compared to the other generator it's extremely slow and locally it does not even switch all palettes as it should. It's loading a huge amount of files without caching, since I often just reference other files.
Likely quite some lag comes from all the reordering and palette switching. I don't even have much in it yet.
I haven't fixed spritesheets with wrong colors yet, since I'm to lazy to upload them to oga. But if that would work I would have body shapes with skin tones: normal (m/w), child, teen, muscular and pregnant. Included animations for male so far: spellcast, walk, slash, thrust, shoot with bow, shoot with guns, run and hurt.
It's possible that it gets unusable over time, unless I manage to get an performance boost or do preprocessing.
It could also be cool for locally testing new assets against the existing ones.
And I will not add, what I can't attribute. I could nowhere find round ears...
Children do work in the generator, but they only have walking animation so you dont see a proper preview.
I meant, that the preview is broken for everything that does not have the animation, the preview uses. My generator on the other hand requires that the first line is down-facing.
Maybe, could it work to instead of saving the complete sheet, save it as with multiple files with the animations seperated? I dont know if it is possible, but it could be a solution.
I thougt about implementing than into the nodejs version, too. I could use multiple canvases in general. I think that would also make it easier to hide sprite sheets.
Workaround for the terminal could be to add "--animation=<file>" and specifying there which animations should be exported.
With filters I finally managed to seperate body shape and skin color:
The body list of this generator is huge and has much redundancy. Children don't even work properly.
With palette switching it's also much less work. You just need every body shape in light. Put them all into a list. Load this list with multiple different palettes:
Big weapons work with animations. The generated spritesheet has the frame dimensions of the biggest source sprite sheet. Smaller frames simply get centred. I dislike spriteeshets with non-uniform sizes.
Asset specific behavior will be specified in animaitons.json, list.json and the .tsx files
By now I could use assets, which have seperate files for each animation like medieval fantasy characters. I want to keep all assets unchanged and only add meta data. Every asset that needs change (colors etc), will need to be reuploaded to oga. This was very intransparent before.
I have yet to find a way for more complex filters. I think hair shadow will fall into that direction.
Right now the only filter is sex, but nose and ears also need skin color filters.
EDIT: Filters are dynamic and ears are working. Their preview has the color of the currently selected body. Custom properties for this look like "filter_body=1" (light) and "filter_sex=3" (male and female). A flexible system, but very unhandy for setting it up.
The filter is like this, I think hair could work with that:
Curious to see how you will want to make it work with other assets as well, as the current generator has some asset specific logic in it (like the oversize drawing and eg the hair layers for some hair types).
My generator does not support that. Dynamic tile size will be a headache. MV spritesheets also break with their tile size for "dmg air" and "KO" animation, so I guess that is a needed feature. It will definitely not be possible to mix tile sizes in a source spritesheets and it will blow up the size of the generated spritesheet.
I'm even lacking preview images and animations, this comes when I'm able to automatically reposition tiles.
I'm planning on including the generator in the spritesheet collection, not the other way round. That would mean adding the generator as a submodule and providing an adapted index.html. It looks like this could work with github pages, but haven't tried that.
In the past I used the generator mostly for finding assets again, I already know. For me it was much quicker than going through the collections. Also sheets got merged with all extenionsions.
It's likely that there are quite some additions, that were never uploaded to oga.
Giving more detailed attributions and relationships of derivative work is very important to me:
It must be giving credit to every work a sprite sheet is based on
Currently there is often no way to propagate changes to derivatives
Right now with generators and spritesheets it's often so, that you have to go carefully through the authors list or even list all possible authors. You can't find the originals, can't comment on the uploads, it's hard to get in contact with the authors.
It's hard to confirm the attributions or reconstruct changes. Some attributions are pretty vague. Since your fork is based on the generator, you've cut off the history of Universal-LPC-spritesheet which likely makes it even harder to find out who did what.
It would also be nice to include unfinished, very limited and not properly fitting sheets. Which should be disabled by default and only enabled with expert settings. Same goes for showing sheets that don't match the body shape.
I'm not sure if I want to make the 'none' body also an expert setting, but I think it's neat when you just want to combine some clothings without creating a full character sheet.
Maybe even adding a tab with a list of complete characters (sara, laurelia etc.) could be neat. They would indeed be only character links. But that could also be done via readme.md or so.
I did implement masks without testing or using it yet, but it should work. It just sets the alpha channel of the image to the red channel of the mask right now.
Next thing would be to do animation and previews, without repeating the errors of the original. Children look pretty broken right now.
After that relations should follow. I started using it in the tsx of roman amor, but it is not displayed yet.
Here is my commit, I'm now mostly satisfied. Spiked helm needs reflectiones improved. Gold is so bright that it loses detail there, I also mapped all light colors to one for gold palette. I included two examples for gold palette (from original gold mask)
I just mapped colors and used the 12 color palette of wulax. This means there is no color loss for the knight amor. I think it's too many colors, but this palette is so carefully crafted.
You could also include legion armor, tiara, buckles and belt (at some point later). Those even include gold and bronze already.
But in fact, a player playing an LPC based game will not notice 95% of the issues we are spotting.
I look at the color count ... it's not really something you can see at all. I just like the limitations this stuff comes with.
From the begining there were assets which appeared to not fit. It was a jam, they only had limited amount of time. I can't do it any better, but the more I look at it with 1200x zoom, the worse it gets.
Skorpio's pack has some cool stuff, but other stuff that just looks bad. And yes, better than nothing. Otherwise I don't think I would've ever uploaded anything. I've other stuff lying on my disk which could theoretically be used for static NPCs in games. But it's not finished enough or looks too bad from one direction.
Also I often had trouble to get the attributions together, which hopefully gets easier some time in the future.
I started my own spritesheet collection
Compared to the other generator it's extremely slow and locally it does not even switch all palettes as it should. It's loading a huge amount of files without caching, since I often just reference other files.
Likely quite some lag comes from all the reordering and palette switching. I don't even have much in it yet.
I haven't fixed spritesheets with wrong colors yet, since I'm to lazy to upload them to oga. But if that would work I would have body shapes with skin tones: normal (m/w), child, teen, muscular and pregnant. Included animations for male so far: spellcast, walk, slash, thrust, shoot with bow, shoot with guns, run and hurt.
It's possible that it gets unusable over time, unless I manage to get an performance boost or do preprocessing.
It could also be cool for locally testing new assets against the existing ones.
And I will not add, what I can't attribute. I could nowhere find round ears...
I meant, that the preview is broken for everything that does not have the animation, the preview uses. My generator on the other hand requires that the first line is down-facing.
Maybe, could it work to instead of saving the complete sheet, save it as with multiple files with the animations seperated? I dont know if it is possible, but it could be a solution.
I thougt about implementing than into the nodejs version, too. I could use multiple canvases in general. I think that would also make it easier to hide sprite sheets.
Workaround for the terminal could be to add "--animation=<file>" and specifying there which animations should be exported.
With filters I finally managed to seperate body shape and skin color:
The body list of this generator is huge and has much redundancy. Children don't even work properly.
With palette switching it's also much less work. You just need every body shape in light. Put them all into a list. Load this list with multiple different palettes:
"body/",
{
"file": "body/",
"filters":{
"skin": "2"
},
"palette": "skin/dark"
}
Big weapons work with animations. The generated spritesheet has the frame dimensions of the biggest source sprite sheet. Smaller frames simply get centred. I dislike spriteeshets with non-uniform sizes.
Preview
Asset specific behavior will be specified in animaitons.json, list.json and the .tsx files
By now I could use assets, which have seperate files for each animation like medieval fantasy characters. I want to keep all assets unchanged and only add meta data. Every asset that needs change (colors etc), will need to be reuploaded to oga. This was very intransparent before.
I have yet to find a way for more complex filters. I think hair shadow will fall into that direction.
Right now the only filter is sex, but nose and ears also need skin color filters.
EDIT: Filters are dynamic and ears are working. Their preview has the color of the currently selected body. Custom properties for this look like "filter_body=1" (light) and "filter_sex=3" (male and female). A flexible system, but very unhandy for setting it up.
The filter is like this, I think hair could work with that:
{"name": "body","values": ["light","dark","dark elf" ]}
I'm rather "again" on it.
My generator does not support that. Dynamic tile size will be a headache. MV spritesheets also break with their tile size for "dmg air" and "KO" animation, so I guess that is a needed feature. It will definitely not be possible to mix tile sizes in a source spritesheets and it will blow up the size of the generated spritesheet.
I'm even lacking preview images and animations, this comes when I'm able to automatically reposition tiles.
I'm planning on including the generator in the spritesheet collection, not the other way round. That would mean adding the generator as a submodule and providing an adapted index.html. It looks like this could work with github pages, but haven't tried that.
I removed nearly all graphics from my fork.
I plan on seperating graphics and code again.
If done right, the spritesheet generator could also be used with other assets. Only question is whether that will work with github pages then.
The only thing hardcoded is the position of the first list.json and the sexes.
I also nearly got it running with nodjs now, thanks to node-canvas, xmldom and pango. (Palette switching is missing)
./cli.js test.png --sex=1 --body="body.light"
In the past I used the generator mostly for finding assets again, I already know. For me it was much quicker than going through the collections. Also sheets got merged with all extenionsions.
It's likely that there are quite some additions, that were never uploaded to oga.
Giving more detailed attributions and relationships of derivative work is very important to me:
Right now with generators and spritesheets it's often so, that you have to go carefully through the authors list or even list all possible authors. You can't find the originals, can't comment on the uploads, it's hard to get in contact with the authors.
It's hard to confirm the attributions or reconstruct changes. Some attributions are pretty vague. Since your fork is based on the generator, you've cut off the history of Universal-LPC-spritesheet which likely makes it even harder to find out who did what.
It would also be nice to include unfinished, very limited and not properly fitting sheets. Which should be disabled by default and only enabled with expert settings. Same goes for showing sheets that don't match the body shape.
I'm not sure if I want to make the 'none' body also an expert setting, but I think it's neat when you just want to combine some clothings without creating a full character sheet.
Maybe even adding a tab with a list of complete characters (sara, laurelia etc.) could be neat. They would indeed be only character links. But that could also be done via readme.md or so.
I did implement masks without testing or using it yet, but it should work. It just sets the alpha channel of the image to the red channel of the mask right now.
Next thing would be to do animation and previews, without repeating the errors of the original. Children look pretty broken right now.
After that relations should follow. I started using it in the tsx of roman amor, but it is not displayed yet.
[LPC] Items and game effects also contains a shovel, but I haven't seen a proper animation for neither of those items. Second column, second last row.
It does not work with all headwear.
My mask, which is basically a recolored head, won't work.
Ears, nose (side view), eyes and chin differ, everything that does not cling tightly to those areas should work.
I just noticed, that elven ears sometimes contain an eye color pixel. That shouldn't be.
Back to topic:
Why lack Dark and Dark 2 a belly button?
And why has dark green reptilian light green wing in some directions and vice versa?
Here is my commit, I'm now mostly satisfied. Spiked helm needs reflectiones improved. Gold is so bright that it loses detail there, I also mapped all light colors to one for gold palette. I included two examples for gold palette (from original gold mask)
I just mapped colors and used the 12 color palette of wulax. This means there is no color loss for the knight amor. I think it's too many colors, but this palette is so carefully crafted.
You could also include legion armor, tiara, buckles and belt (at some point later). Those even include gold and bronze already.
I look at the color count ... it's not really something you can see at all. I just like the limitations this stuff comes with.
From the begining there were assets which appeared to not fit. It was a jam, they only had limited amount of time. I can't do it any better, but the more I look at it with 1200x zoom, the worse it gets.
Skorpio's pack has some cool stuff, but other stuff that just looks bad. And yes, better than nothing. Otherwise I don't think I would've ever uploaded anything. I've other stuff lying on my disk which could theoretically be used for static NPCs in games. But it's not finished enough or looks too bad from one direction.
Also I often had trouble to get the attributions together, which hopefully gets easier some time in the future.
Pages