I have a working animation system that is loaded through the FBX 2012 SDK provided by Autodesk. The FBX API loads z-up meshes and animations, but I need to convert them over to a left-handed y-up coordinate system for DirectX.
In the past I just transformed the final bone matrices by a coordinate system conversion matrix, and it looks fine visually when the meshes are drawn. I've run into a problem when trying to attach other models to animated bones though. I want to attach other meshes to bones based on position/rotation/scaling transformation values and not matrices, so I can't just apply the conversion matrix.
How do I convert the coordinate system of a bone's local keyframe position/rotation/scale transforms? I want to do this at load-time and get rid of all coordinate system conversions at run-time. The position and scale are vec3's, and the rotations are Euler angles that are turned into quaternions.
Edit: Also, the FBX SDK's coordinate system conversion doesn't seem to work! I transformed my mesh vertices, but it doesn't convert the animations correctly.