I'm just trying to import some Mixamo animations into my engine. They seems to use right-handedness which means, for me, scaling in the z axis by -1 as my engine is left-handed. I can actually get this to work, skeleton renders fine and the inverse bind matrices seem to be okay, but I seem to have to scale the animation matrices after I linearly interpolate them in order for it all to render correctly.
What I'd like to do is get everything scaled at the import stage so the mesh and animation just appears correctly without having to mess about with scaling further down the line. The problem I have is with my matrix interpolation code. If I take in two almost identical animation matrices (representing frame 1 and 2 for example), when I decompose them into scale, translation and quaternion (using XMMatrixDecompose), the quaternions look vastly different and slerping and converting them to matrices just doesn't work at all.
Has anyone tried to decompose non-uniformly scaled matrices in this way before? I can't fathom why just because they're scaled Z -1 that the resulting quaternions would be so different. Like different values and signs.
Is there a better way of doing this, i.e. converting handedness?