A Animação de Nevermore, Parte II

Olá, pessoas bacanas! Hoje faremos a segunda e última (por enquanto) postagem sobre a animação do nosso game. Como relatamos anteriormente, estamos abordando nossas experiências, problemas, soluções encontradas e ferramentas exploradas ao animar para Nevermore.

A postagem anterior (que você pode ler aqui), está recheada de experiências, ferramentas e principalmente de problemas nos quais esbarramos durante o início do processo. Hoje, vamos finalmente falar de soluções! Ainda recapitulando o que foi dito, nosso último teste antes de chegar a uma solução final foi com o Spriter Pro, que como visto, deixou a desejar em vários quesitos que eram muito importantes para esse projeto.

Então, sem mais delongas, vamos à solução! Ela tem nome e se chama Anima2D.

Anima2D é um plugin de animação 2D para Unity feito por alguns caras legais do estúdio Mandarina Games, comercializada na Asset Store da Unity por um preço bastante acessível. Ele possui alguns recursos de animação muito parecidos com o Spriter Pro, como a criação de hierarquias de bones e aplicação de Ik’s (e aqui estamos falando de um IK que realmente funciona muito bem!). E alguns recursos extras muito poderosos como os Sprite Meshes (vamos falar sobre isso em detalhes logo mais).

Além disso, ele tem uma vantagem que para nós foi fundamental para o sucesso das nossas animações. Por ser um plugin para Unity, a interface de animação usada no processo é a interface da própria Unity, com a qual já estamos bastante habituados devido a projetos anteriores que usavam animações de sprites sem bones. Ou seja, a animação é feita diretamente dentro da engine, sem atravessadores.

Interface de animação da Unity.

Outro fator super favorável que isso nos trouxe é o fato de não termos que nos preocupar mais com os intervalamentos das animações que não podiam ser transmitidos de softwares externos para Unity. Os intervalamentos são tratados diretamente nas curvas de animação da Unity, eliminando um dos maiores problemas que tivemos usando o Spriter Pro.

Interface de ajuste de curvas de animação da Unity.

Com o Anima2D, o processo de criação do esqueleto do personagem também é feito de forma bastante intuitiva. Basta montar o personagem normalmente na cena, estruturando seus sprites e ajustando as ordens de renderização das partes do corpo e em seguida adicionar os bones necessários para cada parte. O parentesco entre bones e sprites é feito diretamente na interface de hierarquia da Unity, apenas arrastando os objetos filhos para dentro dos objetos pais.

Estruturação do personagem para animação na Unity.

Com a criação do esqueleto e definição das hierarquias já temos um personagem 2D pronto para receber animações. Porém, como falamos anteriormente, o plugin ainda conta com um recurso muito poderoso para geração de animações mais complexas e com maior fluidez: o Sprite Mesh.

Por padrão, sprites na Unity são tratados como polígonos retangulares planos contendo imagens, com a possibilidade de transformá-los em meshes de múltiplos vertices para reduzir overdraw. O sistema de Sprite Meshes do Anima2D não apenas permite a criação de meshes mais otimizados em termos de contagem poligonal, mas também permite que eles sejam deformados para gerar animações de distorção.

Sprite mesh criado pelo plugin Anima2D para Unity.

Assim, é possível que cadeias de bones sejam adicionadas a esse sprite e a partir de uma configuração das influências que cada bone exerce sobre os vértices do mesh, podemos criar distorções animadas nessa imagem.

Visualização das influências dos bones nos vértices do Sprite Mesh.

Onde usamos?

Até o momento, nós temos três personagens animados para nosso game. Um personagem principal e dois inimigos. Usamos esse recurso em todos eles.

Kyle

No nosso personagem principal nós usamos esse recurso para as animações do cabelo, criando uma movimentação mais fluida das mechas, o que proporcionou uma maior riqueza nos efeitos de follow through.

Absentia

No nosso primeiro inimigo nós usamos um sprite mesh na extensão que ele tem sobre a cabeça, também permitindo que pudéssemos inserir ali efeitos de follow through.

Lobo

Já esse inimigo que estará presente no conto da Chapeuzinho Vermelho, foi cem por cento animado usando sprite meshes. O corpo juntamente com a cabeça, as patas traseiras e dianteiras e a cauda são meshes que foram distorcidos através de bones. Devido à complexidade dos formatos de suas articulações, se ele fosse animado através de sprites fatiados filiados aos bones, muitas articulações iriam sofrer um desencaixe. Os sprite meshes proporcionaram uma enorme facilidade no processo animativo desse personagem.

Bom, é isso aí pessoal! Assim encerramos essa primeira série de postagens sobre animação. Esperamos que tenham gostado e que essas informações possam ajudar a outros desenvolvedores que venham a se aventurar com animações 2D mais complexas em games feitos na Unity.

Gabriella .Bee. Balista - Diretora de arte

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.