Hi Everyone,
I've been working on a skeleton setup for some time and I wanted to share my experience to see if anyone has used as similar or different approach.
The character is represented through a 3/4 view (i.e straight isometric), hence to model the animations each animation needs to be rendered through cardinal directions, currently I manage the 8 main cardinal points (N, NW, W, etc). At run-time I then render the appropriate skeleton based on the character direction
The current workflow to create skeletons is split into two passes:
1) creation of the master view points:
- Model each viewpoint vector sprites for (N, NW, W, SW, S)
- Create a skeleton for each view point
- Create animations for each view point
2) Mirror the master view points into the outstanding directions (NW -> NE, W -> E, SW -> SE):
- Swap the vector sprite names (e.g. armR becomes armL and viceversa) - for this I use a small python script
- copy master skeletons to their mirrored version and scale the root to (-1,0)
- Swap the bones, slots, attachments names in each mirrored skeleton - for this I export the skeletons in json and then replace substrings accordingly and reimport
- import animations from master skeletons as they are
- note: W-> E does not need swapping names, just x scaling
The method is time-consuming but the mirroring process is not too bad, it has the benefit of keeping the structure of the skeletons consistent between master and mirror version. I tried to flip the skeleton at run-time but animations end up being inverted, i.e. right arm instead of left etc. which messed up synchronisation between animations in different angles.
Anyone experienced a similar setup and maybe taken a different approach?