I’m working on a spine character for an isometric game with 8-way movement that allows controlling the viewing direction of he upper body independently from the direction oft he legs. So you can walk north while looking or shooting east.
One way to achieve this was to set up a simple skeleton with different skins for the upper and lower body for all directions. Then I created animations just for the legs and other just for the upper body. Later, they can be set on different tracks in the runtime. It works, but you need to set a lot of keyframes for each animation to keep the skeleton in line with the current direction.
In another setup, I created one large skeleton that has separate bones: Each direction has its own upper and lower body bones, but they all share one single hip bone. In total, this skeleton uses 136+ bones and 32 IK constraints.
In this complex skeleton, lots of bones need to be calculated in runtime, although just a few oft hem will be visible in the current combination of leg and upper body direction.
I would like to ask for your feedback on these two methods.
What do you think about them?
Would it be possible and make sense to skip the currently irrelevant bones in runtime?
Is there a meaningful way to use transform constraints to freeze bones of the inactive directions?