XSIforum.com

Como funciona el Rotation Order

0 Usuarios y 1 Visitante están viendo este tema.

Como funciona el Rotation Order
« en: 07 Mayo 2007, 15:00:30 »
Hola a todos.  :)

Estos días me estoy metiendo con el rigging y enveloping, que hasta ahora ni lo había tocado. Pues bien, resulta que mirando tutoriales, le voy pillando el truco a todo, pero he visto una cosa que me ha dejado descolocado.

Resulta que he visto un tuto donde cogen dos chains de 2 bones cada uno iguales y al primero de los bones de una de las cadenas le ponen en las propiedades de Kinematics > Local Transform > Rotation > Order = XYZ. Al otro le ponen ZYX.

Pues bien al animar dos o tres keys mediante una rotación sencilla sobre el eje Z del primer bone (order = XYZ), la interpolación que realiza no es recta, es decir en vez de rotar del punto A al B del eje Z, hace un arco muy extraño que abarca al eje Y y X.

Si animo el segundo bone (order = ZYX) todo funciona como aparentemente debería. Hace un arco sencillo sobre el eje Z y ya está...

...el tema por lo visto es que si el orden es XYZ pero transformamos en el eje Z, como está el último en el orden  implica una transformación en los otros dos ejes.. pero no lo entiendo bien. A ver si alguien puede explicarmelo mejor, o al menos de una manera que lo entienda.

También por lo visto es determinante si el root de la chain está alineada con el primer hueso (Align root to first bone). Si es así la rotación del primer hueso inicialmente es 0,0,0 (ya que es respecto a su padre, el root) y parece que da menos problemas relacionados con el tema que os comento. Entonces, ¿por qué esta propiedad no está activada por defecto al crear chains?       ... Uy que liooooooooo ...  :'(

No sé si me he explicado. El que sepa de que hablo supongo que me habrá entendido, ya que por lo visto esto es algo que todo el mundo que hace rigging un poco avanzado debería conocer...

Gracias por todo. Saludos  O0

Re: Como funciona el Rotation Order
« Respuesta #1 en: 07 Mayo 2007, 15:38:04 »
Yo ni idea de rigging en XSI pero me imagino que es para evitar el famoso Gimbal Lock, acá se explica perfectamente en que consiste el problema O0

Re: Como funciona el Rotation Order
« Respuesta #2 en: 07 Mayo 2007, 17:59:25 »
Muchas gracias César por el link.

Pues creo que por ahí van los tiros, pero no llego a entender del todo la relación entre un Gimbal Lock y los problemas de animación que comento. Voy a buscar un poco más de información sobre Gimbal Locks a ver si me aclaro un poco mejor.

Re: Como funciona el Rotation Order
« Respuesta #3 en: 07 Mayo 2007, 18:16:54 »
Bueno. En efecto está causado por el Gimbal Lock. Gracias de nuevo César.

Aquí lo explican con dos pequeños videos para que me entendáis mejor:

http://fliponline.blogspot.com/2007/04/quick-trick-gimbal-lock-just-ignore-it.html

Sin embargo la solución que dan aquí es una especie de filtro Euler que hay en Maya. Sabéis si hay algo parecido en XSI (script o similar)?

Re: Como funciona el Rotation Order
« Respuesta #4 en: 07 Mayo 2007, 21:44:24 »
Yo no soy el más indicado para ayudarte ya que poco y nada he animado en xsi pero me imagino que como cualquier software mientras uses en tus rotaciones interpolaciones euler siempre va a existir el gimbal lock, la forma de deshacerse del problema sería usando interpolaciones quaternion (muchos lo consideran menos intuitivo para el animador, sobre todo en la edición de las fcurves).

Una forma de convivir con el problema sería animar tus rotaciones en modo ADD, asi ves exactamente como el programa va calculando los ejes de tus rotaciones y puedes ver cuando te sucedería el gimbal lock (al menos no te pilla por sorpresa y si eres cuidadoso puedes sobrellevarlo, pasas el problema a hacia tu workflow y te puedes adaptar a él). También se puede animar con interpolación Euler como toda la vida y al final de todo convertir las rotaciones a quaternion, no lo he probado pero suena lógico (se convierten desde el menu animation, abajo de todo) :)

Seguramente los animadores (sumatra, kinght o algún otro que se me escape) y rigers (alanf, agedito) del foro que usan xsi te puedan ayudar más en detalle O0

Re: Como funciona el Rotation Order
« Respuesta #5 en: 07 Mayo 2007, 22:23:39 »
Bueno, acabo de hacer la prueba y una rotación que interpolaba mal con el método clásico (Euler) funciona correctamente al convertirlo en quaternion.

Si que es verdad que al transformar a quaternion, el editor de animación, las fcurves hacen cosas raras.

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Como funciona el Rotation Order
« Respuesta #6 en: 08 Mayo 2007, 06:24:14 »
Aqui se habla un poco mas sobre los misteriosos quaternions:
http://www.isner.com/tutorials/quatSpells/quaternion_spells_14.htm

Cortesia de Michael Isner, uno de los tios principaes del grupo de Softimage Special Projects.

Re: Como funciona el Rotation Order
« Respuesta #7 en: 08 Mayo 2007, 10:46:09 »
Uff que lectura más espesa... XD

Quel

  • **
  • 223
  • Si la vida no te sonrrie, cuentale un buen chiste.
Re: Como funciona el Rotation Order
« Respuesta #8 en: 26 Junio 2007, 13:32:49 »
Te aconsejo que, si quieres meterte en temas de rigs, habrás visto que a menudo se usan expresiones, constraints y toda la pesca para generar mas o menos complejos engrenajes mecánicos de un setup.

Para ello te recomiendo que procures evitar a mas no poder las rotaciones. Intena siempre resolverlo todo con calculos de posición y/o escalado. Las rotaciones con muy caprichosas (precisamente por lo que comentais del dichoso Gimbal) otambien porque a veces a los huesos se les da por meterse algunas vueltas de mas. y de repente ves que en lugar de trabajar con valores entre -180º y +180, estas en -900º y -1.260º.

Para el tema del order, siempre procuro poner .. :

- Primer valor como la rotacion mas usada
- Segundo valor la menos usada
- Tercer valor la mitad y mitad.

A menudo es complicado elegir cual es la rotacion mas importante. un amano rota en todas direcciones. Pero debes elegir cual es posible que sea la rotacion menor o la que trabajara en un angulo mas pequeño y cual en un arco de angulos mayor.

Quel XX's