CONFIGURANDO UM PERSONAGEM PARA ANIMAÇÃO Este tutorial tem o objetivo de demonstrar uma configuração de um personagem digital 3D, deixando-o preparado para ser animado. Esta etapa é direcionada para quem está com a modelagem totalmente finalizada. Ou seja, não altere mais a malha depois de configurar o esqueleto de animação. Se precisar, faça um morph-target que é mais seguro. Uma
vez que o modelo do personagem está pronto, comece criando o
esqueleto. Osso a osso. O esqueleto pode ser feito com qualquer objeto,
vc pode até modelar os ossos como eles são na realidade.
Mas geralmente utilizamos um sistema que já vem preparado para
funcionar como ossos, respeitando uma hierarquia e com as articulações
configuradas. Muitos usuários de Max usam o Character Studio
(http://www.amazzing.com/ch04.htm) para animar personagens, que é
um pacote para animação de personagens. Ele já
oferece um esqueleto inteiro montado e configurado para animação
de personagens bípedes. O Character Studio é muito bom,
mas é uma ferramenta exclusiva do Max e mesmo assim não
é 100% integrado com as ferramentas. Já o Bones Systems
é mais
integrado com o Max e além do que, existem
na mairoria dos softwares de animação como Maya, Xsi,
etc. Conceitualmente falando, a configuração é
praticamente a mesma coisa em todos os softwares.
|
|
Em seguida, eu criei os ossos da coluna, incluindo pescoço e cabeça. Se começar clicando em cima do bone já criado, automaticamente o próximo será criado um nível abaixo na hierarquia, ou seja, o osso da barriga, foi criado a partir de um clique no osso da pélvis. A quantidade de ossos deve ser de acordo com as animações pretendidas. Por exemplo, decidir quantos ossos serão necessários na coluna. |
Da mesma forma, eu criei o osso do ombro e todos do braço, a partir do clique em cima do osso do toráx. |
Se os bones não ficarem na posição exata pretendida, eles podem ser editados pela janela 'Character - Bone Tools'. |
Clicando no botão `Bone Edit Mode`, vc pode alterar as transformações de cada osso. Por exemplo, esticar o bone da coxa, até o joelho. E em seguida, da mesma janela eu posso criar os ossos seguintes na hierarquia da perna. .
|
|
|
|
Da mesma forma, ajustei as posições dos ossos do braço
utilizando o 'Bone Edit Mode'. |
|
|
|
|
|
Após selecionar os ossos, clique no botão 'mirror' e faça
uma cópia espelhada dos ossos selecionados. No meu caso (e se vc
criou ele na vista front) o eixo espelhado foi o `X`. |
|
|
|
Assim que o esqueleto estiver totalmente montado, podemos atribuir controladores. Numa hierarquia básica, decrescente, ou seja, de pai para filho, conhecida como animação FK (Foreward Kinematics), já é possível fazer animação com esse esqueleto. Por exemplo, para animar o braço levantando: 1-
rotacione o ante-braço; No caso de animar as pernas, o primeiro grande desafio do animador, é respeitar as leis da gravidade. Atribuir a aparência de peso, volume, colisão, atrito, etc. Para isso, um fator importante, é que sempre o corpo está sendo sustentado por uma ou pelas duas pernas, ou seja, manter sempre os pés no chão. Com esse pensamento, é mais produtivo utilizarmos para as pernas, o tipo de animação conhecida como IK (inverse Kinematics). Essa animação, inverte a hierarquia no momento da animação, animando do filho para o pai. No mesmo exemplo de animar o braço levantando, com IK, bastaria movimentar o pulso para que todo o braço seria reposicionado automaticamente. No exemplo das pernas e pés, isso seria bem mais prático, pois os pés não sofreriam a ação dos pais, portanto sempre ficariam fixos no chão, aumentando a probabilidade de credibilidade da animação. Eu particularmente, trabalho com IKs apenas nas pernas. Todo o resto do corpo eu prefiro animar por FK. A não ser que o personagem tenha alguma ação do tipo fazer flexões no chão, ou segurar num corrimão de escada. Nesses casos, o IK nos braços seria bem mais produtivo. |
|
Além
disso, o IK Chain limita a hierarquia. Observe que movimentando o patriarca
da hierarquia do corpo (pelvis), o IK Chain da perna direita não
sai do lugar. Mas a ponta do pé fica descontrolada. |
Da
maneira como está, para fazer a animação de um personagem
andar, o IK Chain estaria limitando apenas o tornozelo, ou seja, deixando
que a ponta do pé atravessasse o chão. Para evitar isso,
e limitar o pé inteiro, eu fiz mais dois laços IK: Um do
tornozelo para o calcanhar e outro do calcanhar para a ponta do pé.
|
Movimente
a pelvis agora e observe a diferença. |
Após
fazer isso nas duas pernas, ficaria improdutivo, ter que trabalhar em
três controladores para animar a perna. Assim, criamos um controlador
para gerenciar os IK Chains. Qualquer objeto pode ser usado como controlador.
No max existem Dummies, e outros controladores que são
leves e não
são renderizados.No caso dos pés, eu costumo utilizar círculos. Crio um círculo bem embaixo do pé, abrangendo os três IK Chains. Em seguida, eu seleciono os três IK Chains e Linko, ou seja, crio uma hierarquia entre os IK Chains e o círculo. O círculo será o pai e os IKs serão os filhos. |
Em
seguida, eu seleciono os três
IK Chains e Linko (Link - icone de 2 quadrados ligados por uma corrente),
ou seja, crio uma hierarquia entre os IK Chains e o círculo. O
círculo será o pai e os IKs serão os filhos. |
Com
isso, para animar a perna, basta alterar as transformações
do círculo, que todos os IKs irão acompanhar. |
Para
a animação da perna, ainda falta uma propriedade. O ângulo
de abertuda. Clicando no ícone demonstrado a esquerda (Manipulators),
os manipuladores serão mostrados na tela. Em cada laço IK,
irá aparecer um manipulador de cor verde. Ele chama-se `Swivel
Angle` e funciona como um joystick. Clique e arraste para mudar o ângulo
de abertura da perna.A idéia, é colcoar todos os controles referentes a perna, no círculo que é pai da hierarquia dos IKs. |
UI Type = Spinner - eu geralmente uso o Spinner, quando tenho mais de dois valores. No caso da perna, eu estipulei o ângulo de abertura mínimo de -90 graus, máximo de 90 graus e o default vale zero graus, portanto, três valores. Então, eu
atribuí nos parâmetros, um Range de 3 valores: FROM
= -5, DEFAULT = 0 e TO = 5. Ou seja, quando eu inserir o valor
-5, a perna deverá ter o ângulo de abertuda igual a -90
graus. |
Mas
ainda o parâmetro não faz nada. Precisamos associá-lo
ao Swivel Angle. Ative o menu 'Animation - Reactor Manager'.Nessa janela, iremos definir quem reagirá a quem. No nosso caso, o Swivel Angle deverá reagir ao parâmetro AMG_ROT. O Reactor trabalha com Mestres (Master) e Escravos (Slave). Então, inicia-se um pensamento lógico: Quem é o mestre nesse caso? Resposta: o parâmetro do círculo (AMG_ROT). |
Então
clique no sinal de + preto (adicionar mestre) e em seguida clique no círculo.
Aparecerá todas as propriedades do círculo, pois qualquer
um pode ser mestre ou escravo. Nesse caso, ative o 'Object
(Circle) -> Custom_Attributes->AMG_ROT'. |
Agora clique no sinal de + branco ao lado (adicionar escravo), para adicionar o escravo. Em seguida clique no IKChain do tornozelo, e ative a opção 'Transform->Swivel Angle'. |
Assim,
temos o mestre e o escravo. Na segunda divisão da janela do Reactor,
o primeiro estado (-State01) é criado automaticamente, com a situação atual, no nosso caso, valor zero para o AMG_ROT e valor zero para o Swivel Angle. Clique
na seta preta para baixo (create state) duas vezes para cirar mais dois
estados. |
Em seguida, altere
os valores para os controles da perna: o estado 3, é
para os valores positivos: Feito isso, faça
um teste: fecha a hjanela do reactor, selecione o círculo, altere
os valores do AMG_ROT e observe as mudanças no ângulo de
abertuda da perna. |
Da
mesma forma, eu criei um Dummy (é um box que não é
renderizado, mas ajuda (helper) em controladores como este)) e posicionei
na localização do pulso, assim ele será o controlador
para qualquer animação do braço. Inclusive abrir
e fechar a mão. |
Quando
estamos trabalhando em animação, as coordenadas de rotação,
posição e escala, ficam mais produtivas estando nos objetos
do que nas vistas. Observe a figura ao lado, a rotação não
está em view (vista, tela de trabalho),
está em local.Isso significa que as coordenadas sempre estarão fixas ao objeto. Nesse caso, eu habilitei
a rotação local para identificar exatamente qual é
o eixo necessário para abrir e fechar os dedos. Lembre-se que
as transformações nos eixos são mostradas no rodapé
do Max, ou baseie-se pelas cores: Nesse momento vc sabe se a criação dos bones foi organizada, ou seja, todos os bones respeitam a mesma sequência de eixos X,Y,Z. |
No
caso do Range, do Reactor Controler, eu procuro sempre ficar no intervalo
de 10. Ou seja: |
INDICADOR, MEDIO, ANELAR, DEDINHO, DEDAO e ainda o ANG_ROT, para o ângulo de rotação do braço. |
Em
seguida, abri a janela do Reactor Manager e fiz a mesma sequência
entre mestres e escravos. Os mestres sempre serão os parâmetros
do Dummy e os escravos, sempre as rotações dos bones dos
dedos. |
Observe
por exemplo, o Reaction do dedo indicador: o parâmetro DEDO INDICADOR
está controlando a rotação dos bones 26 e 27. Ambos
com dois estados: 0 e 0, 10 e 90. Faça um a um, e vai testando
cuidadosamente que funciona. |
Outro
controlador que pode ser bastante produtivo, é associar as transformações
dos bones no mesmo Dummy. Por exemplo, nos bones que controlam a cabeça:
Eu tenho um Dummy que envolve a cabeça inteira. Nele vou atribuir
os controles de abertura do osso que controla o maxilar inferior e vou
fazer com que a rotação do bone da cabeça(Bone09)
seja controlado pela rotação do Dummy.Todos os controles de animação dos objetos podem ser definidos e controlados de vários maneiras diferentes. No caso da rotação da cabeça, eu selecionei o bone que fica logo acima do pescoço (Bone09), mudei o tipo de controlador (menu Motion - ícone de roda de bicicleta) de Euler XYZ para Orientation Constraint. Ou seja, o osso terá sua rotação, constringida por um controlador. |
No meu caso, o Dummy. Muitas vezes, quando esse comando é aplicado, a rotação original do objeto é alterada. Para evitar isso, ligue a opção Keep Initial Offset. Faça a mesma coisa com o osso do pulso e o Dummy que controla o braço. Projete seu personagem e desenvolva um esqueleto bem controlado. Faça isso
com todos os controles que deseja animar. Por exemplo, para controlar
a rotação dos ossos da coluna, crie um Dummy no centro
do personagem, e atribua todos os parâmetros para controlar os
ossos da coluna. |
Depois
do esqueleto estar todo configurado e funcionando, precisamos configurar
para que o esqueleto deforme o modelo 3D.É importante que o esqueleto esteja exatamente na mesma posição de quando ele foi criado. Todos os testes feitos para os controladores devem estar zerados. Selecione o modelo 3D do personagem e aplique o modificador Skin. |
Em
seguida, precisamos informar ao Skin, quais objetos serão controladores.
Nesse caso, adicionamos todos os Bones, inclusive os Connect Bones. Depois
disso, vem a parte mais chata, ajustar as influências de cada osso.
Essa parte costuma dar trabalho nas articulações, tipo ombros,
cotovelos, virilhas, etc. Porisso, durante a modelagem, essa ação
deve ser planejada. |
Ative
o frame 10, e grave uma pose diferente para o personagem, tipo dobrando
as pernmas e braços, assim você pode ir e voltar do frame
0 ao frame 10 para testar como está ficando o Skin, o importante
é manter
a posição original do modelo no frame 0. |
Essa
é a primeira e básica configuração do Skin.
Depois temos que fazer ajustes finos e detalhistas. Por exemplo no caso
do maxilar inferior. O osso de baixo deve influenciar apenas os vértices
que modelam a parte debaixo da boca: labio inferior, queixo, etc. No entanto,
como mostra a figura ao lado, o osso está influenciando inclusive
a parte superior da boca. |
Posso
inicialmente ajustar a área de influência, assim como os
outros bones do esqueleto. Mas provavelmente isso será insuficiente.
Ainda mais que a boca está fechada. Assim, eu selecionei o osso
do maxilar inferior, em seguida selecionei os vértices do lábio
superior e excluí eles desse osso. Ou seja, eu informei que esse
osso não tem nenhuma influência nesses vértices. |
Uma
outra ferramenta de precisão, é a pintura da área
de influência. Uma vez que os vértices do lábio superior
são ignorados, eu posso pintar a área de influência
do osso, parecido com um pincel do photoshop. Esse pincel pode ter tamanhos
e pressões diferentes. Oserve o resultado. |
Lembre-se que quando um personagem fala, apenas o maxilar inferior se mexe. O maxilar superior fica fixo na cabeça. |
|
Selecione
tudo que faz parte do seu personagem: bones, malha, dummies, IKs, etc.
Depois ative o menu Character - Create Character.Feito isso, um ícone com um boneco detro de um cícrulo deve aparecer em baixo dos pés do personagem. As vezes, esse ícone pode ser muito grande ou pequeno, ajuste o tamanho em Icon Size. |
Com o Character, teoricamente fica mais seguro salvar e carregar animações diferentes no mesmo personagem. |