Clicky

Tutorial de animação 3d: Rotações usando Euler e Gimbal Lock

Mais um excelente tutorial sobre animação 3d foi publicado pelo projeto Guerrilla CG, que tem como objetivo publicar material relacionado com aspectos básicos de animação 3d e modelagem. Dessa vez o tema é uma continuação de um tutorial lançado no final do ano passado, sobre os problemas com rotações de objetos. Caso você não esteja lembrado, o vídeo abordou o uso de rotações usando Euler e Quarternions. Agora eles explicam em detalhes o funcionamento das rotações usando Euler, que é a maneira com que a maioria dos animadores e softwares 3d trabalham, com rotações usando três eixos distintos X, Y e Z.

O tutorial pode ser encontrado no web site de projeto ou também no Vimeo.

Euler Rotations Explained from The Guerrilla CG Project on Vimeo.

Um aspecto interessante em relação a esse tipo de sistema de rotação, usando os eixos X, Y e Z está relacionado a organização dessas rotações de maneira semelhante a uma hierarquia. Sim, nas rotações 3D os eixos giram em ordem definida. Essa é uma das causas dos problemas gerados por esse tipo de sistema em rotações.

O vídeo começa explicando muito bem o funcionamento do sistema de rotação, com a demonstração de um objeto chamado de Gimbal. O fenômeno conhecido como Gimbal Lock acontece quando os planos de rotação se cruzam. Por exemplo, quando os eixos Y e Z se cruzam e as modificações aplicadas em Y ou Z resultam na mesma rotação para o objeto.

Como o sistema funciona com base em hierarquias, os problemas começam a acontecer nesse momento!

Imagine a seguinte situação, você está animando um objeto apenas alterando os ângulos de rotação em Y e Z. Por um breve momento acontece o Gimbal Lock, no qual você acaba alterando os ângulos de rotação em Y, sem se preocupar com a orientação no eixo Z. Logo depois que o eixo Z precisa ser alterado a surpresa aparece, e o objeto realiza um movimento estranho, começando a animação de um local diferente e perfazendo uma trajetória curva ao invés de uma linha reta.

Acredito que essa pequena explicação deixou clara a confusão em que isso pode se transformar, com um editor de curvas cheio de pontos e um animador desesperado, tentando descobrir o motivo do movimento estranho.

Esse tipo de assunto é de vital importância para as pessoas interessadas em trabalhar mais a sério com animação, pois é um problemas técnico comum em animações de personagens e objetos. O simples conhecimento do mesmo, pode ajudar muito nas horas em que é preciso investigar as causas de movimentos estranhos nas animações 3D.

Recomendo que você assista e guarde o vídeo nos seus favoritos!

2017-04-11T10:33:17+00:00 By |Animação|4 Comentários

Sobre o Autor:

Arquiteto que trocou as construções baseadas em tijolos pelas que utilizam pixels! Sim, os pixels também precisam ser devidamente construídos, e quem melhor do que um arquiteto para planejar construções?

4 Comentários

  1. Dalai Felinto 14/01/2009 em 5:09 pm

    Excelente vídeo.

    O que eu não entendi, é como eu poderia aplicar completamente isso ao Blender.
    A não ser que eu manualmente crie empties para cada eixo da câmera, e altere a relação de “parentesco deles”, eu acho que o Blender não te permite alterar a hierarquia dos eixos.

    Claro que evitar o alinhamento deles já vai resolver boa parte dos meus problemas (eu já tinha tido este problema, mas não sabia que ele era tão famoso :p)

    Abração Allan !
    Feliz 2009

  2. Samuel Telles dos Santos 17/01/2009 em 6:11 pm

    Então,

    Como podemos contornar este problema no blender?

  3. Allan Brito 18/01/2009 em 12:36 pm

    Oi Pessoal,

    A melhor maneira de resolver isso no Blender é usando Quaternions, como método de rotação. Essa é a solução para a maioria dos softwares 3d. Basta habilitar esse método no painel de propriedades dos bones.

    Nas curvas IPO você vai visualizar 4 eixos de rotação, e não mais 3, como acontece com o quaternion (X, Y, Z e W).

    Feliz 2009 para você também Dalai!

    Abraços

  4. Rodrigo Santiago 20/01/2009 em 9:51 am

    @Samuel: Basta você movimentar a câmera localmente e trabalhar com sua rotação com um “empty”, por exemplo, parenteado a câmera com um “constraint” em “track to”.

    Abraço.

Deixar Um Comentário