top of page

Unity - Rotaciones 2

La Rotacion de cualquier objeto mediante programacion no suele dar demasiados quebraderos que cabeza. Normalmente basta con cambiar la rotación que tiene el objeto por la nueva rotación. Pero cuando se trata de rotar el hueso de una Armature, la cosa cambia.

 

Para empezar, las partes de las Armature, es decir, los huesos, normalmente ya tienen una rotación cuando se cargan en la escena. Por lo que, no basta con sustituir el cuaternión "GameObject.transform.rotation" con la nueva rotación, sino que es necesatio añadir la nueva rotación a la rotación que ya incorpora.

 

Además, las Armatures suelen usarse para animacíones complejas, como las usadas para el movimiento de un personaje de videojuego. Este tipo de armatures suele estar formada por varios huesos concatenados cuya rotación depende también de la rotación de todas las partes anteriores, es decir, la mano depende del antebrazo, el antebrazo depende del brazo y éste depende del hombro.

 

Para facilitar el manejo de este tipo de objetos, Unity incorpora en sus Objetos la propiedad "localRotation" que se diferencia de "rotation" en que representa un rotación respecto a su objeto padre. por ejemplo, la propiedad "localRotation" de la mano representa la rotación respecto al antebrazo.

 

"localRotation" es una propiedad de lectura y escritura, al igual que la propiedad "rotation" y , al igual qe rotation, su manejo está controlado por sus metodos "set" y "get" que modifican automáticamente ambos valores. Modificando la propiedad "localRotation", Unity recalcula automáticamente la propiedad "rotation" para que albergue la nueva rotacion en coordenadas de Mundo (" WorldAxes") y viceversa. De esta manera, el desarrollador no necesita sumar las rotaciones de todo el brazo cada vez que quiera mover un dedo del personaje.

Oscar R. Parga

© 2023 by IT SERVICES.  Proudly created with Wix.com

  • facebook-square
  • Twitter Square
  • google-plus-square
bottom of page