Configurando esteiras de tanques no 3dsmax para animação

Os assuntos relacionados com animação estão em evidência aqui no blog nesses últimos dias, devido uma série de artigos interessantes que tenho encontrado pela web. Hoje vou recomendar a leitura de outro desses artigos que aborda um elemento bem trabalhoso de criar, para as pessoas que não tem o conhecimento das ferramentas necessárias para ajustar o movimento de esteiras. Sim, aquelas esteiras que encontramos em tanques de guerra e também tratores pode apresentar um bom desafio para qualquer animador, mesmo os mais experientes. O problema todo reside na adaptação e deformação que as esteiras recebem durante a sua animação, sem que o conjunto todo perca o movimento.

O tutorial está divido em seis partes, mostrando o processo completo de configuração de esteiras no 3dsmax.

anima-tanque-3dsmax.jpg

Um modelo básico é usado para começar o projeto, criado no 3dsmax 9, para servir como referência para o tutorial. No processo você aprenderá a:

  • Criar rodas que tem sua rotação automatizada;
  • Esteiras que também deslizam pelas superfícies de maneira automática;
  • Cálculo de posicionamento e orientação para as esteiras;
  • Sistema de controle do canhão do tanque.

O segredo para o controle dos objetos que compõe a esteira é o uso do campo de força do 3dsmax chamado de Conform. O funcionamento desse campo de força (space warp) é bem simples, e consiste no deslocamento dos vértices do objeto alvo, empurrando os mesmos até que os vértices encontrem uma superfície alvo. Assim que os vértices encontram a superfície, o resultado é a deformação do modelo como um todo. A técnica é bem parecida com o deslocamento de um tecido sobre uma superfície.

Esse tutorial fica ainda mais interessante para os usuários que nunca tiveram a oportunidade de usar estruturas de ossos ou outros recursos de animação, fora dos exercícios tradicionais que envolvem animação com personagens. O autor do tutorial usa uma mistura de objetos do tipo bones e curvas para conseguir trabalhar as deformações dos objetos. São as curvas que controlam as deformações dos objetos na animação, e adaptam a forma da esteira ao que encontramos na superfície.

Os usuários do Blender podem encontrar uma versão desse mesmo tipo de animação, usando técnicas um pouco diferentes nesse artigo que publiquei já faz certo tempo. O tópico abordado é exatamente o mesmo, animação usando esteiras.

Animação de máquinas com Blender 2.50

Ontem publiquei um artigo que comentava sobre as dificuldades em configurar personagens virtuais para animação, devido a diversidade com que esses personagens podem interagir e se movimentar. Todos esses movimentos e dinâmica deve ser considerada na criação de personagens. Apesar de atestar a dificuldade de ajustar e configurar esses personagens, ainda acredito que existem outros desafios ainda maiores para animadores. Um dos exercícios que gosto de passar nas minhas aulas sobre animação 3d, é a configuração de máquinas como helicópteros ou mesmo sistemas industriais. Esse tipo de máquina demanda hierarquias complexas e que devem responder entre si ao menor movimento.

O desafio está no ajuste e entendimento de como esse tipo de máquina funciona, para depois ajustar a parte de animação e hierarquias. O uso de constraints para interligar os elementos é muito usado também no processo, fazendo desse tipo de configuração um excelente exercício.

Caso você tenha interesse nesse tipo de animação, encontrei um exemplo que é ao mesmo tempo instrutivo e simples de reproduzir para o Blender 2.50. No vídeo o autor tenta configurar a dinâmica de funcionamento de um pistão usado em motores.

Rigging a Crankshaft and Piston in Blender 3D from revolt_randy on Vimeo.

O segredo para conseguir reproduzir essa animação é usar o mesmo princípio de hierarquia aplicada pelo autor do vídeo. Ele conseguiu conectar os elementos de maneira a fazer com que a rotação do objeto que se assemelha a um cilindro, desloque a posição do elemento que conecta a parte superior e inferior do pistão. Além da parte de animação do Blender 2.50 que é um pouco diferente do que estamos acostumados na versão 2.49, você poderá criar um elemento dinâmico usando objetos primitivos bem simples, como é o caso do modelo 3d usado para essa animação.

Mesmo representando uma estrutura para animação bem simples, o autor consegue o efeito de dinâmica e relação entre os objetos de maneira simples e eficiente. Basta fazer diversas cópias desses objetos em fila, adicionando um leve atraso no movimento dos objetos em 3d para criar um motor simples, pelo menos na parte de animação dos pistões.

Esse é o tipo de animação mecânica mais simples de criar. Para desafios ainda maiores, recomendo tentar criar sistemas com amortecimento como é o caso de automóveis, ou mesmo portas de veículos como aviões de carga que tem relações complexas entre objetos.

Tutorial de animação mecânica com Blender 3D: Usando PyDrivers

Uma coisa que todas as pessoas envolvidas com o processo de criação voltado para animação conhecem é o fato de que para trabalhar com os aspectos artísticos do movimento, você precisa de muita inspiração e senso de “timing” para que o movimento seja criado da maneira como o roteiro pede. Mas, nem sempre conhecer o processo de configuração dos keyframes e noções de timing são necessárias. Quando a animação envolve a manipulação de elementos mecânicos, como motores ou elementos de veículos com peças móveis que realizam movimentos repetitivos, é mais interessantes recorrer para conhecimentos em linguagens de programação.

Esse é um dos principais benefícios em usar scripts para animação: automatizar os processos repetitivos que demandariam muito trabalho manual dos animadores. No Blender 3D é possível usar Python para controlar alguns aspectos da animação com os PyDrivers. Esses são pequenos blocos de código que podem ser atribuídos na janela que edita as curvas IPO. O uso desse tipo de script é bem mais simples que a criação de ferramentas personalizadas, pois requer apenas uma linha de código que vai controlar a maneira com que um determinado objeto deve ser animado.

Caso você nunca tenha tido oportunidade de usar recursos mais avançados como esse no Blender 3D, o tutorial abaixo é um excelente exemplo da aplicação desse tipo de recurso para animação no Blender. No tutorial em si, um artista 3d configura os PyDrivers para controlar o movimento de engrenagens em animação. O vídeo tem aproximadamente 25 minutos de duração.

Blender Python Drivers Gear Demo! from Max Hammond on Vimeo.

Depois de assistir ao tutorial fica evidente que o autor teria muita dificuldade para criar a mesma animação sem o uso de recursos como scripts, pois o movimento dos objetos deve ser sincronizado e perfeitamente mecânico. Qualquer alteração no movimento de uma das engrenagens iria resultar na perda de praticamente toda a configuração da animação.

Esse é um tipo de assunto que dificilmente abordo nas minhas aulas sobre Blender 3D, pois os alunos não aceitam muito bem o assunto. Ainda existe uma barreira entre as pessoas interessadas em aprender softwares 3d para fins artísticos e tópicos como o desenvolvimento de scripts que podem facilitar o seu trabalho. Sempre que tento fazer uma introdução ao tema, acabo tendo que fazer apenas uma pequena introdução mesmo. Quem sabe em cursos voltados para desenvolvimento de jogos usando Blender, esse tipo de experiência seja mais proveitosa.

Se você tem interesse em tópicos avançados sobre animação 3d, esse pode ser um excelente exemplo de como começar a aplicar scripts para controlar o movimento de objetos. Em outras ferramentas como o 3ds Max e Maya, o mesmo tipo de controle pode ser criado usando MAXScript ou MEL. Mas, usando Python para esse tipo de tarefa você poderá adaptar o seu código para o Houdini e Softimage XSI, pois ambos usam essa linguagem para personalizar animação, assim como o Blender 3D.

Animação mecânica usando constratints no Maya

Uma das partes mais complicadas na produção de uma animação é a configuração dos objetos, com as hierarquias e os contraints. Posso dizer que nas minhas aulas sobre animação, a parte em que falo sobre os constratins gera muitas dúvidas e questionamentos, principalmente nas pessoas que não conseguem visualizar a animação pronta, antes mesmo de começar. O segredo para conseguir configurar esses constraints de maneira satisfatória é planejar bem os movimentos dos objetos. Por exemplo, nas animações mecânicas que são relativamente mais simples de produzir que as animações com personagens, os movimentos são repetitivos, deixando o trabalho do animador mais simples.

Se você tem dificuldades em entender o funcionamento e aplicação dos constraints, o exemplo que indico hoje talvez o ajude a entender melhor o seu funcionamento. Esse exemplo mostra o processo de configuração de uma animação mecânica no Maya, usando constraints para configurar o movimento de um pistão de motor em 3d. Como o movimento do pistão é repetitivo, o processo se torna mais simples que um personagem, com toda a dimensão de movimentos necessários para simular as articulações.

No vídeo o autor mostra os objetos separados e explica o movimento que deve ser configurado, com os respectivos constraints aplicados.

Um dos primeiros desafios do animador é fazer com que os objetos que fazem parte da mesma estrutura, possam girar usando o mesmo centro. No caso, os objetos com a mesma cor estão separados e precisam usar o mesmo ponto Pivot. Isso não é feito com constratins, mas com a manipulação do ponto Pivot dos objetos. Basta alinhar os dois objetos para conseguir essa disposição.

O próximo passo é fazer com que o movimento do objeto cilíndrico siga o anel. Isso é feito com um constratint do Maya chamado Point Constraint. Em outros softwares como o Blender 3D, o constraint recebe o nome de Copy Location, mas a função é exatamente a mesma.

Com o constrain adicionado na parte superior e inferior, o autor começa a trabalhar com outro constraint chamado Aim Constraint. A palavra Aim em inglês significa “apontar” ou “mirar”, seria algo como fazer com que o objeto sempre apontasse para outro. Esse tipo de contraint é muito usado em câmeras animadas para manter o enquadramento fixo em um determinado objeto.

O tutorial pode parecer complicado, mas ele é extremamente elementar para quem está ainda começando a entender o funcionamento dos sistemas de animação. Assista quantas vezes for necessário para compreender a utilidade e necessidade de usar constratints, para uma animação rápida e simples de produzir.

Animação de máquinas com o Softimage XSI

Nem tudo em animação 3d está relacionado com personagens, existe muita coisa para se estudar e configurar na animação de cenários, câmeras e de simulações mecânicas. O trabalho de um animador que trabalha com a criação de motores e máquinas é basicamente o de configuração dos relacionamentos entre os objetos, que funciona de maneira peculiar em cada máquina. Um tutorial muito interessante, elaborado com o uso do Softimage XSI, mostra o processo e configurações necessárias para fazer a configuração de um pistão típico de motores. Como você vai perceber pelo tutorial, os modelos usados na cena são extremamente simples, mas os relacionamentos e hierarquia entre os objetos precisam ser ajustados de maneira a favorecer o movimento do conjunto.

Esse é o tutorial, que apesar de ser rápido é bem elucidativo. Para as pessoas que quiserem usar o Softimage XSI MOD, que é gratuito, essa pode ser uma ótima introdução a modelagem e conceitos básicos dos softwares.


Rigging a piston in XSi from Paul Donaghy on Vimeo.

Depois que os dois primeiros objetos do conjunto estão criados, nesse caso dois cilindros, o autor do tutorial faz pequenos ajustes nos modelos, como selecionar o centro de um deles, para que usando o Snap do Softimage o ponto central possa ser deslocado para a parte inferior do modelo 3d. Repare que as opções de edição no Softimage ficam bem visíveis e fáceis de identificar no lado direito.

O próximo passo é adicionar um objeto especial chamado Null, que é usado de maneira a auxiliar na animação. No Blender 3D existe o Empty e no 3ds Max poderia ser o Dummy. Com o objeto Null na cena, começa o verdadeiro trabalho de configuração da animação, usando constraints. Os constratints são controles especiais que limitam ou controlam o movimento de um objeto de acordo com algumas condições. Por exemplo, nesse caso o autor do tutorial usou um constraint de direção (Direction), para fazer com que o cilindro sempre fique alinhado com o eixo Y do objeto Null. Logo depois de adicionar o constraint, o autor desloca o objeto Null e o cilindro gira, de maneira que a sua direção sempre fique apontada para o Null.

Esse princípio pode ser aplicado em qualquer ferramenta 3d, tudo que você precisa fazer é adaptar os nomes das ferramentas para os eu software de trabalho. Alguns softwares podem apresentar esse contratint de direção como sendo “Look At”, que é usado para fazer com que os olhos de um personagem fiquem olhando de maneira fixa para um objeto.

Com o cilindro superior, o constraint aplicado faz com que ele permaneça sempre na mesma posição, seguindo o movimento do objeto Null.

Por último, mais um cilindro é adicionado na cena para funcionar como uma rota, impulsionada pelo pistão. O relacionamento dessa roda é todo construído com hierarquias. Quando o objeto Null é configurado como filho do cilindro menor, que é filho do cilindro maior, o conjunto todo é movimentado quando o cilindro maior gira.

E no final temos uma animação simulando um pistão! Pode parecer complicado, mas é esse tipo de conhecimento e configuração que consegue criar animações complexas e simular máquinas em qualquer software 3d.

E como já havia comentado no meio do artigo, você pode reproduzir esse exemplo em qualquer software 3d, pois os conceitos são os mesmos.