Computação Gráfica::Criando Personagens em Blender

Criando Modelos Hierárquicos em Blender

  • Modelos hirárquicos para animação podem ser idealizados, projetados e construídos em Blender e depois exportados.
  • Para isso Blender suporta a criação de esqueletos, sua inserção nos personagens modelados e a animação desses personagens.
  • Tanto Unity3D como Unreal Engine 4 suportam a importação de projetos de animação a partir de Blender.

Criando um Tronco Dobrável Simples

Vamos começar fazendo um tronco de um personagem da forma mais simples:

  • quadril
  • cintura
  • tórax

Desenhe o seu Tronco

Crie um novo arquivo. Se você estiver usando o nosso modelo “3-viewports”, vai aparecer este cubo, já selecionado e em modo de edição, abaixo:

anime01

Garanta que está em modo de edição, senão use [tab]. Apague o cubo, crie um cilindro (Add -> Cylinder), escalone-o no eixo vertical de 200% com [S][Z][2] e posicione-o com a sua base no centro do mundo usando grab [G}:

anime02

Mude as suas duas viewports direitas para:

  • Perspectiva (simplesmente selecione object view no menu de paineis à esquerda embaixo da viewport)
  • Visão frontal (selecione object view no menu de paineis à esquerda embaixo da viewport e depois [Num 1]). Se preferir coloque esta em modo de projeção paralela com [Num 5]. Vai ajudar a posicionar as coisas de forma exata.

Desenhando a Cintura

Mude a sua visão na vierport principal para topo com [Num 7] e vá para modo de seleção de superfícies.

Selecione o topo do cilindro com [clique do mouse direito]  e extruda bem pouquinho com [E] e depois reduza a nova face para 80% do tamanho, escalonando com [S][0.8][clique do mouse esquerdo]:

anime03

Crie um cilindro menor simpelsmente extrudindo um pouco a “cintura” e, em seguida extruda novamente, aumentando o topo de volta com um escalonamento [S][1.2][mouse esquerdo].

Desenhando o Tórax

Termine o tronco criando mais um cilindro de “tórax” com uma extrusão simples, do jeito mais acima:

anime04

Agora você tem um tronco com cintura. Vamos fazê-lo dobrar-se na cintura.

Crie os seus Ossos

Garanta que está em modo de edição e vá para a criação de ossos, indo para Add -> Animation e criando um Single bone. O atalho é [Shift]+[A] -> Animation -> Single bone.

anime05

Vai ter se formado um poequeno osso. Este será o osso-raiz de seu esqueleto. Ele é importante.

Se você olhar na hierarquia, o Blender nomeou-o simplesmente de Bone. Selecione-o e, com grab [G], leve-o para dentro de seu objeto, de forma que a base do osso fique alinhada com a base do objeto.

Lembre-se de clicar com o botão esquerdo do mouse para finalizar a operação. Depois clique com o botão direito do mouse na bolinha superior do osso e, com grab [G], estenda o osso de forma que a bolinha superior vá parar no meio da cintura, esta será a sua primeira articulação:

anime06

Se a bolinha superior des-selecionou, selecione-a novamente e com [E] extruda um novo osso, puxando-o até o topo de seu tronco. Este será o seu segundo osso:

anime07

Extruda-o até que fique aparecendo um pouco acimja do tronco:

anime08

Agora você já tem o seu esqueleto mínimo: dois ossos! Vamos agora fazer estes ossos moverem-se e deformarem o tronco, dobrando-o na cintura.

Conecte Tronco e Ossos

Clique [A] até não haver nada selecionado. No painel hierárquico da direita, selecione, usando [Shift]+[botão direito do mouse] o objeto corpo e a estrutura óssea. Vamos fazer o esqueleto ser o pai do corpo na hierarquia.

Então, no menu da parte de baixo, em Object -> Parent selecione Animate \ With automatic weights.

Depois de você selecionar, deve reaparecer reaparecer o menu Animate e você deve selecionar novamente With automatic weights.

Importante: Este menu define o pai. Se aparecer um menu Object, então você selecionou os dois objetos na ordem errada. Corrija assim: Não selecione nenhum object, des-selecione os dois objetos (esqueleto e objeto) e re-selecione-os na ordem inversa àquela que usou antes e repita o processo. 

Se você fez tudo certo, no painel devisão hierárquica (à direita na figura), você vai passar a ver o objeto corpo (cube) como sendo filho dos ossos (armature):

anime17

Teste os Seus Movimentos

Agora está na hora de ver mexer!

Vamos fazer o tronco fazer uma mesura, dobrando-se na cintura. Para isso faça:

  1. Selecione apenas o osso que será a raiz do movimento. Em nosso caso o osso superior, como mostra a figura abaixo;
  2. Vá para Pose Mode (você estava em Object Mode). Faça isso no menu inferior, como mostra a figura;
  3. Selecione rotação [R] e rotacione com o mouse. Como este osso está fixo no osso que é seu pai, o ponto por onde deve passsar o eixo de rotação está predefinido e você pode fazer qualquer movimento do tórax com o mouse: ele vai balançar em cima do osso inferior;
  4. Movimente o osso do tórax e veja o que acontece.

anime17.5

anime18

anime19

anime20

anime21

Aqui com duas viewports mostrando o tronco fazendo uma “mesura”

anime22

Fazendo o Esqueleto Bifurcar

Esqueletos não são tão simples assim. Eles bifurcam, produzindo membros. Como fazemos isso?

Há duas formas:

  1. Criar ossos em separado e inserir na hierarquia usando o nome dos ossos e o painel hierárquico;
  2. Fazendo extrusões repetidas a partir de um osso-pai.

Vamos mostrar as duas formas.

Criando Ossos em Separado

Você pode criar ossos um a um e depois colá-los na sua hierarquia de esqueleto usando o painel de hierarquia: selecione o pai (parente) pelo nome e vá colando. Dá para construir algo assim:

anime23

Teste a sua estrutura repetindo o procedimento de rotação, agora com a estrutura mais comples. Observe que se você rotacionar o osso do tórax, os braços, como são seus filhos, movimentam-se junto, de forma rígida.

anime24

anime25

Definindo a Hierarquia Semiautomaticamente

Para aprender a fazer extrusões repetidas, vamos fazer o modelo abaixo. Para isso primeiramente crie um arquivo novo, apagando o cubo e criando um cilindro comprido. Vamos deixar a trabalheira com a cintura de lado dessa vez, era só para treinar.

Em seguida crie uma Esfera UV, posicione-o no topo do cilindor  e escalone-o em X e Z até ficar com a cara do que está abaixo.

Em seguida selecione o cilindro e a esfera e, em modo de edição, faça um Join com [Ctrl]+[J] ou pelo menu.

Isto vai criar um único meshe composto para você animar e associar esuqeleto. Não tente modificar o meshe do exercício anterior, não vai funcionar: primeiro você faz o meshe e depois você cria e associa um esqueleto ao meshe como um todo.

Agora construa o esqueledo da figura abaixo. Vá fazendo como no exercício anterior até chegar ao braço direito. Para fazer o braço esquerdo vá para a próxima subseção.

anime30

Você pode selecionar diferentes ossos através do painel de hierarquia e movimentá-los, vendo o resultado:

anime31

anime32

anime33

Construindo Esqueletos Bifurcados de Forma Semiautomática

Você deve ter acabado como na figura abaixo, com o último osso selecionado:

anime34

Agora selecione o osso anterior na hierarquia e clique com o botão direito do mouse na bola superior desse osso, selecionando-o:

anime35

A partir dessa bola você vai poder criar um novo ossoa que também é filho dele, basta para isso extrudir novamente [E] e levar esse novo osso para o lado esquerdo.

Animando em Blender

Para animar em Blender, um painel importante é o Editor de Linha do Tempo:

editors_timeline

Você pode selecioná-lo na lista de painéis, clicando no ícone do relógio. Olhe com atenção a página de manual do Timeline Editor antes de seguir adiante.

Criando Keyframes

Blender anima através de keyframes: fotografias do estado de uma estrutura hierárquica que são usadas como referências para gerar interpolações, que são os movimentos.

Como fazer?

  1. Inicie a sua animação com um keyframe inicial. Para isso vá para Editor de Linha do Tempo, bem embaixo e posicione o cursor de tempo no início da timeline. Pode ser feito com a tecla [|<].
  2. Clique na visão 3D e tecle [I]. Vai aparecer o menu abaixo. Selecione Whole Character para a animação pegar todo o objeto.
  3. Avance para a próxima cena na timeline, por exemplo no frame nº 10. Selecione o osso que quer mexer no painel de hierarquia, deixe em Pose Mode e mexa o osso, rodando ou fazendo o que desejar. Tecle [I] e selecione novamente Whole Character (as outras opções são especialidades e otimizações que não interessam no momento) :

anime40

Movendo Diferentes Partes da Animação

Agora basta repetir o passo 3 para todos os outros ossos, mesendo o que quiser. Quanto mais afatsados os keyfarmes, tanto mais lento será o movimento:

anime41

Você pode inclusive fazer o treco todo gingar:

anime42

Agora que terminou, dê um play e veja o que aconteceu.  Salve em um arquivo .blend.

Toque: Como estes movimentos serão repetidos em um jogo ou animação em UE4 ou Unity3D, é legal que a animação seja um ciclo fechado, ou seja que o último frame volte à posição inicial.

Utilizando Esqueletos aquiridos por meio de Captura de Movimentos

Exercício: Pokémon Animado

Escolha um dos Pokémons do arquivo linkado abaixo e faça:

  1. Crie um esqueleto para ele
  2. Anime-o

pikachu01

Pikachu como exemplo.

Toque: Para seres bípedes você pode usar o add-on Rigify. Veja nos tutoriais abaixo. O exemplo do Pikachu acima foi feito pasoa passo manualmente. Se o ser bípede tem um formato mais ou menos humano, Rigify já gera uma esqueleto completo.

Enunciados de Trabalhos de Animação com Modelos  Hierárquicos de INE 5420

  1. Trabalho de Animação com Modelos Hierárquicos, Motion Capture e Game Engines::Jogo de Pokèmon em Unity ou Unreal
  2. Trabalho de Animação com Modelos Hierárquicos, MoCap e Game Engine::Jogo de Pokèmon Ciclista em Unity ou UE4

Links Úteis

Material para esta Aula

Dataset de Pokèmon

Capítulos do Blender Basics Classroom Tutorial Book

Material de Consulta

Manuais

Videos

Sobre o Autor

possui graduação em Ciências da Computação pela Universidade Federal de Santa Catarina (1989) e Doutorado Acadêmico (Dr. rer.nat.) em Ciências da Computação pela Universidade de Kaiserslautern (1996). Atualmente é professor Titular da Universidade Federal de Santa Catarina, onde é professor do Programa de Pós-graduação em Ciência da Computação e dos cursos de graduação em Ciências da Computação e Sistemas de Informação. Tem experiência nas áreas de Informática em Saúde, Processamento e Análise de Imagens e Engenharia Biomédica, com ênfase em Telemedicina, Telerradiologia, Sistemas de Auxílio ao Diagnóstico por Imagem e Processamento de Imagens Médicas, com foco nos seguintes temas: analise inteligente de imagens, DICOM, CBIR, informática médica, visão computacional e PACS. Coordena o Instituto Nacional de Ciência e Tecnologia para Convergência Digital - INCoD. Foi o criador e primeiro Coordenador do Núcleo de Telessaúde de Santa Catarina no âmbito do Programa Telessaúde Brasil do Ministério da Saúde e da OPAS - Organização Pan-Americana de Saúde e criador do Núcleo Santa Catarina da RUTE - Rede Universitária de Telemedicina.