One issue that’s erked and plagued me is the way that mgear uses the roleSpline calculation to work out the rotations for the final joints.
Suppose we take a standard EPIC leg component. The knee joint isn’t calculated with a clean rotation (4); that’s because the root of the leg is counter-rotating (1) as part of the twist calculation. It’s also common to only have one twist joint in game development. But because the U value is only halfway through the rollSpline U value, it never makes the 100% twist (2). So the skinned knee will never point at the pole vector. (3)
It’s important in games that we keep the skeleton as clean as possible. It offers benefits for animation compression, blending poses, and running post-process rigs. Just in animation compression alone, this can add up if there are lots of characters on screen.
In game development, we strip joints out of the rig at lower LODs. In the current setup, if I strip the twisters, the twist shearing happens at the knee as the skinning of the twisters propagates to the leg root. (1) So the candy wrap effect at the knee is more prominent at extreme poses. So far, tho, I’m only stripping joints out at lower LODs, but I know this will be a problem on consoles where we offset the LODs for performance, so LOD2 becomes LOD0 on lower spec. I’m waiting for those skinning bugs to appear on lower-end devices.
What’s the solution?
Right now, I can post-edit the rig to fix the twister and achieve the correct rotation at the proper position by running another roleSpline and merging the result to the div_loc.
I can’t fix the parasitic knee rotations without rolling my own component.