Las rotaciones en aplicaciones 3D son representadas usualmente en una de dos maneras, Cuaterniones, o ángulos Euler. Unity en su mayor parte usa Cuaterniones como su representación interna de rotaciones. Sin embargo, es importante tener un conocimiento básico de las rotaciones y orientaciones en Unity.
Cuando se importan animaciones desde fuentes externas, estos archivos suelen contener animación de cuadros clave en formato Euler. El comportamiento por defecto de Unity es volver a muestrear esas animaciones como valores de Cuaterniones y generar un cuadro clave de Cuaternión por cada cuadro en la animación, en un intento para minimizar cualquier diferencia perceptible entre la animación fuente y cómo se ve en Unity.
Todavía existen algunas situaciones donde - incluso con el remuestreo - las representaciones de los Cuaterniones de la animación importada no coincidan con la animación original lo suficiente. Por esta razón, desde Unity 5.3 en adelante existe la opción de apagar el remuestreo de la animación, para utilizar los cuadro clave de la animación Euler original en tiempo real.
Para permitir el soporte para usar los valores originales de las Curvas Euler en un archivo de animación, se debe apagar la opción de “Remuestreo de Curvas” en el Inspector de Importación de Animación.
Con esta opción habilitada, las rotaciones serán remuestreadas a Cuaterniones. Este es el comportamiento por defecto. Cuando esté deshabilitada, las curvas de rotación no serán remuestreadas, y la curva de rotación será importada con sus cuadros clave originales, en modo Euler o Cuaternion, de acuerdo al tipo de curva. Nota: Cualquier rotación en una articulación que tiene pre- o post-rotaciones serán automáticamente remuestreadas por el SDK de FBX, y serán importadas automáticamente como curvas de Cuaternion.
Para soportar la mayor variedad de tipos de archivo, y para mayor fidelidad, Unity soporta todos los órdenes de rotación Euler (sin repeticiones), y las curvas serán importadas en su orden de rotación Euler original.
La razón principal para deshabilitar el remuestreo de rotaciones y utilizar las curvas Euler originales que cuando la interpolación de cuaterniones entre cuadros genera resultados erróneos, y provoca problemas.
Cuando se utilizan rotaciones no-remuestreadas, no debería de existir mucha diferencia visual a la hora de reproducir la animación. sin embargo, por debajo las rotaciones que han sido importadas en representación Euler serán conservadas siempre, incluso en tiempo real.
Dado que el motor funciona con Cuaterniones, los valores de rotación deben ser convertidos a Cuaterniones en algún punto.Antes de Unity 5.3, the conversión ocurría siempre al momento de importar. En 5.3, cuando la opción de Remuestreo de Curvas está apagada en el Inspector de Importación de Animación, los valores de rotación se conservarán como valores Euler hasta que sean aplicado a un GameObject. Esto significa que el resultado final debería ser tan bueno - on incluso mejor - que antes.
En términos de memoria, para curvas de rotación que no han sido quemadas en la aplicación 3D, debería de existir una ganancia neta respecto a curvas de rotación.
Los ángulos Euler usado en el Inspector de Transformación de Unity son aplicados en el orden por defecto de Z,X,Y.
Cuando se reproducen o editan animaciones que poseen curvas Euler con un orden de rotación diferente al estándar de Unity, una indicación de la rotación actual será mostrada al lado de los campos de rotación.
Cuando se editan multiples transformaciones con órdenes de rotación diferentes, una advertencia será mostrada a los usuarios para indicar que la misma rotación Euler que será aplicada dará distintos resultados en curvas con diferentes órdenes de rotación.