Gimbal Lock, hasta el apolo 13 tuvo problemas con el.
Basicamente las rotaciones por eule se aplican una a una en ciierto orden y por separado, en este caso es xyz(unity no deja cambiarlo),entonces.......como no se me ocurre como explicarlo te dejo un video(no he encontrado en español,aunque me extraña que no haya) y un ejemplo para que puedas reproducirlo en Unity para poder verlo bien y se entiende a la primera.
Puedes hacer la prueba, crea 3 planos uno para cada eje(ponle su color correspondiente son solo para que se vea la idea), pon cada plano con su normal apuntando en su eje, un plano para x donde su normal apunte en la misma direcion que el eje X,otra para y ,otro para z.Luego crea 3 gameobjects vacios y emparentalos uno detras de otro y dentro de cada uno emparentas el plano que le corresponda(no se pueden utilizar los planos ya que al posicionarlos ya no partiriamos de r:0,0,0 que queden asi:(los planos son solo para ayuda visual
-x(vacio rotacion 0 , 0 ,0)
--planoX
--y(vacio rotacion 0 , 0 ,0)
--planoX
---z(vacio rotacion 0 , 0 ,0)
--planoX
Ahora prueba a rotar el objecto, y ,en el eje y(el gameobject vacio) en el inspector y veras como se reproduce el problema.
Esto no tiene solucion,es asi,no hay mas.Cada año miles de riggers y animadores se suicidan por culpa del gimbal lock.Y es la razon por la que se utilizan Quaternions para representar rotaciones en el espacio.
Como lo has implementado?? porque se supone que haciendolo con quaternions no deberias encontrarte este problema.Tambien es posible que segun que jerarquia padres/hijos tengas y como la estes rotando estes reproduciendo el error como hemos hecho con el ejemplo.
eature=oembed" width="459">


edit el ejemplo estaba mal, no recordaba que unity no deja resetear rotations,estaba pensando en maya
Basicamente las rotaciones por eule se aplican una a una en ciierto orden y por separado, en este caso es xyz(unity no deja cambiarlo),entonces.......como no se me ocurre como explicarlo te dejo un video(no he encontrado en español,aunque me extraña que no haya) y un ejemplo para que puedas reproducirlo en Unity para poder verlo bien y se entiende a la primera.
Puedes hacer la prueba, crea 3 planos uno para cada eje(ponle su color correspondiente son solo para que se vea la idea), pon cada plano con su normal apuntando en su eje, un plano para x donde su normal apunte en la misma direcion que el eje X,otra para y ,otro para z.Luego crea 3 gameobjects vacios y emparentalos uno detras de otro y dentro de cada uno emparentas el plano que le corresponda(no se pueden utilizar los planos ya que al posicionarlos ya no partiriamos de r:0,0,0 que queden asi:(los planos son solo para ayuda visual
-x(vacio rotacion 0 , 0 ,0)
--planoX
--y(vacio rotacion 0 , 0 ,0)
--planoX
---z(vacio rotacion 0 , 0 ,0)
--planoX
Ahora prueba a rotar el objecto, y ,en el eje y(el gameobject vacio) en el inspector y veras como se reproduce el problema.
Esto no tiene solucion,es asi,no hay mas.Cada año miles de riggers y animadores se suicidan por culpa del gimbal lock.Y es la razon por la que se utilizan Quaternions para representar rotaciones en el espacio.
Como lo has implementado?? porque se supone que haciendolo con quaternions no deberias encontrarte este problema.Tambien es posible que segun que jerarquia padres/hijos tengas y como la estes rotando estes reproduciendo el error como hemos hecho con el ejemplo.


edit el ejemplo estaba mal, no recordaba que unity no deja resetear rotations,estaba pensando en maya

