Преобразование вращения Unity

Хорошо известно, что Unity использует левосторонний порядок, Y-up, ZXY, а другие 3dsoftware - нет. Я нахожу, как Unity конвертирует угол поворота 3dsmax (правый, Y-вверх, порядок XYZ):

Vector3 ConvertXYZToZXY(Vector3 angleXYZ)
{
    Vector3 rightHanded = new Vector3(angleXYZ.x, -angleXYZ.y, -angleXYZ.z);
    Quaternion qx = Quaternion.AngleAxis(rightHanded.x, Vector3.right);
    Quaternion qy = Quaternion.AngleAxis(rightHanded.y, Vector3.up);
    Quaternion qz = Quaternion.AngleAxis(rightHanded.z, Vector3.forward);
    Quaternion result = qz * qy * qx;
    return result.eulerAngles;
}

Но я застрял в том, как преобразовать Unity Euler в 3dsmax. Ценю любой ответ!


person Sandiago.C    schedule 21.06.2018    source источник