QuickNDirty visualisation:
Took a few rows of the snakes recently posted.
1) Converted all non-alpha to a basic, slightly blurred shadow-mask on a rearward layer.
2) Rescaled each row's shadow heights to half (did *not* rescale shadow widths to intended 125%, to further squash). For ground-perspective purposes. Technically should be keystoned, I suppose, but it seems to work directly linearly like this.
3) Shifted these up a few pixels (because the way I rescaled shifted them down too far), but definitely could have been shifted up a few more. (IRL the rescaling should be to nominal tile-centre, not tile-boundary base, and then then shifted
down a few pixels (to taste, establish during mass rendering testing).)
3b) Accidentally deleted Row 2's shadows, without noticing, but didn't redo as it makes a good comparison for the 'unshadowed'.
4) Added a set of 'colour-spots' for allegience (rows 1,2,4 only, for
deliberate comparison) in an even more rearward layer (choosing a green/'allied' for not too acidic but still contrasting a
little with the grass-colour... YMMV. I'd suggest a neutral smudged white/grey edging. Easy to do, but that's beyond the scope of this little mock-up.)
5) Shifted rightmost snakes "up" to demo
flying skeletal snakes!
6) Pasted (naively, in this case, no attempt to be pixel-perfect) over a sample-background.
Took longer to type this than to manually do in GIMP. Shouldn't be too far beyond producing instantly on-demand from each Steam-tile graphic. (
SMOC!!!)
Realistically, steps 1-5 would be done once per creature on arrival (or even creature-template, where multiples of same type appear). And again if they rot a bit/get injured/add/change clothing/etc. Step 6 is what is always done anyway.
NB. Not at all "You should do it exactly like this/at all", just "*I* might do it like this, if I had opportunity..."