Demonstrações do Spine

O Spine vai muito além dos limites da animação 2D tradicional. As demonstrações abaixo ilustram algumas das maneiras que seus artistas, animadores e programadores podem aproveitar os fluxos de trabalho e recursos aprimorados fornecidos pelo Spine para construir jogos incríveis.

Todas as demonstrações abaixo são demonstrações ao vivo, usando nosso runtime spine-ts para WebGL. Descubra como usamos os Spine Runtimes nessas demonstrações explorando o código-fonte de cada demo.

Spine versus spritesheets

Spine
All animations, all frame rates
0.18 MB
Sprite sheet
1 second of animation @ 30FPS
3.39 MB = 18x larger

A animação de sprites tradicional requer uma imagem para cada quadro de animação, resultando em spritesheets enormes. Cada animação adicional aumenta bastante o espaço em disco e a memória necessários para o seu jogo, especialmente em taxas de quadros necessárias para uma reprodução suave. Rapidamente torna-se uma enorme quantidade de trabalho para seus artistas e seu produto final sofre quando o número de animações precisa ser reduzido para atender às restrições de tamanho.

As animações do Spine armazenam apenas os dados de ossos e animações, juntamente com um único conjunto de imagens individuais que são reutilizadas para cada animação. Isso permite que você dê vida aos seus jogos ao preenchê-los com inúmeras animações únicas. Além disso, as animações do Spine são interpoladas, então a reprodução é sempre perfeitamente suave, independentemente da taxa de quadros.

Compare os requisitos de memória e espaço em disco do Spine em comparação com as animações baseadas em spritesheets.

Velocidade da animação
 

Spine com animação baseada em quadros

Embora o Spine substitua em grande parte a necessidade de animação quadro a quadro tradicional, as imagens ainda podem ser trocadas quando necessário. Por exemplo, uma mudança de perspectiva para um torso ou asa batendo, expressões faciais alternativas ou um clarão de arma.

Os slots, attachments e a ordem de desenho do Spine permitem integrar facilmente animações quadro a quadro em suas animações totalmente dinâmicas do Spine. Ainda melhor, o Spine pode manipular as imagens quadro a quadro, mostrado nesta demo ao escalar a cabeça explosiva do alienígena.

Transições e camadas

Smooth
Abrupt

Uma desvantagem frequentemente sentida em jogos 2D é a falta de transições de animação suaves. Em jogos 3D, as transições entre animações podem ser calculadas dinamicamente em tempo de execução. As animações podem até ser mescladas, por exemplo, metade caminhando e metade correndo. Em jogos 2D sem o Spine, a mesclagem é impossível e as transições normalmente são bruscas. Os artistas podem criar manualmente quadros para cada possível transição, mas mesmo isso não ajuda quando as animações podem ser interrompidas no meio da reprodução.

O Spine traz os benefícios do mundo 3D para o 2D. Os Spine Runtimes fazem transições suaves e dinâmicas de uma animação para outra, conferindo fluidez natural aos seus personagens. A cam layer permite mesclar animações, por exemplo, para reproduzir uma animação de tiro enquanto seu personagem corre ou mesclar caminhada e mancar mais e mais conforme o dano é recebido.

Velocidade da animação
 

Deformação de malha

Um personagem do Spine formado por imagens 2D rígidas já pode dar excelentes resultados, como o Spineboy na demonstração acima. Para dar ainda mais vida aos seus personagens, o Spine traz mais truques do mundo 3D na forma de malhas e pesos. Com malhas, as imagens não são mais rígidas e podem dobrar e deformar como você desejar. Os pesos ligam as malhas aos ossos, então as imagens se deformam automaticamente à medida que os ossos são movidos.

As malhas também podem melhorar o desempenho do seu jogo, reduzindo o uso de fill rate ao não desenhar partes transparentes das suas imagens. Isso é especialmente importante em dispositivos móveis.

A arte incrível desta demonstração foi gentilmente fornecida por Hwadock (também conhecido como dugy). Siga-o no Twitter e em seu blog.

Mostrar ossos
Mostrar triângulos

Skins

O recurso de skins do Spine é perfeito para oferecer personalização e variedade mantendo sua carga de trabalho razoável. Com skins, o trabalho de animação só precisa ser feito uma vez, então você pode atribuir diferentes visuais aos seus esqueletos enquanto reutiliza todas as suas animações. Para a máxima flexibilidade, os Spine Runtimes permitem combinar partes de diferentes skins em tempo de execução, atendendo a todas as necessidades de personalização.

As skins dão aos jogadores a capacidade de adicionar seu toque pessoal ao mundo do seu jogo, vestindo seus avatares com novos visuais, roupas, armas e outros acessórios. As skins também permitem obter mais proveito de suas animações: misture e combine sua arte para inimigos, itens e outros objetos do jogo para aumentar muito a variedade com pouco esforço.

A arte desta demonstração pode ser encontrada no pacote 2D Anim Heroes para Unity.

Skins aleatórias

Cinemática inversa

O suporte do Spine para cinemática inversa permite movimentos realistas e dinâmicos que seriam difíceis ou impossíveis de animar de outra forma. Ele também possibilita uma configuração de rigging mais avançada, onde poses complexas podem ser controladas facilmente por um pequeno número de ossos.

Como o Spine não usa "baking" ou "plotting", a cinemática inversa realmente brilha em tempo de execução. Ao posicionar dinamicamente os ossos em tempo de execução, as restrições de IK permitem que seu personagem reaja facilmente ao ambiente, como mirar em inimigos, fazer com que os pés sigam desníveis do terreno, e muito mais. Nesta demonstração, o Spineboy está equilibrado em um hoverboard controlado pelo usuário enquanto reproduz uma animação ao mesmo tempo.

Experimente! Arraste os círculos vermelhos para alterar dinamicamente a pose do Spineboy. Os botões de tiro e pulo e a caixa de seleção de mira adicionam animações sobre a animação de idle.

Mirar
Mostrar ossos

Mesclagem aditiva de animação

Ao reproduzir animações em trilhas separadas, normalmente a pose das trilhas inferiores é substituída pelas trilhas superiores. Com uma trilha aditiva, sua pose é adicionada ao resultado das trilhas inferiores. Isso permite mesclar as poses de várias animações independentes com influências variadas, como diferentes expressões faciais: 50% feliz, 20% bravo e 30% animado.

A coruja nesta demonstração tem 4 animações, uma para cada direção. As poses independentes de cada uma dessas animações são mescladas dependendo da posição do cursor do mouse em relação ao centro do canvas.

Restrições de caminho

Frequentemente, parte de um personagem segue um caminho aberto ou fechado. Em vez de efetuar essa movimentação manualmente, as restrições de caminho do Spine podem ser usadas para fazer com que os ossos sigam automaticamente um caminho. O caminho Bézier composto é formado por um conjunto de pontos interconectados que permitem dobrar e moldar o caminho. O próprio caminho pode ser animado e até mesmo ter pesos em ossos, de modo que o caminho se deforme automaticamente conforme os ossos se movem.

Nesta demonstração, uma malha de videira está vinculada a ossos que são restringidos a um caminho. Quanto mais vértices houver na malha, mais suave será a dobra.

As restrições de caminho também podem ser muito úteis em tempo de execução. Mova as alças vermelhas para modificar dinamicamente o caminho e observe a videira segui-lo perfeitamente!

Mostrar ossos & caminhos

As restrições de caminho possibilitam um rigging poderoso, mostrado pelo Stretchyman nesta demonstração. Para os braços e pernas, as malhas são pesadas para muitos pequenos ossos que são então restringidos para seguir caminhos simples para os membros. Em seguida, esses caminhos são pesados em ossos que podem ser movidos para controlar os membros. Essa configuração permite que um grande número de ossos seja controlado com apenas alguns ossos. Isso não apenas facilita a animação, mas em tempo de execução apenas alguns ossos precisam ser ajustados para fazer a pose dinamicamente.

Mova as alças vermelhas e faça o Stretchyman dançar!

Mostrar ossos & caminhos

Recorte

Às vezes, partes de uma animação precisam ficar parcialmente ocultas, como neste exemplo em que o Spineboy sai de um portal. O recorte é útil nesses casos, pois restringe a renderização a uma área poligonal. Somente as partes do esqueleto dentro da área definida, que pode ser animada, são exibidas. Isso possibilita muitos efeitos que não seriam possíveis de outra forma, como janelas, efeitos de iluminação e muito mais. Também é possível fazer com que o recorte afete apenas parte do esqueleto. Por exemplo, uma animação em que um personagem passa por um raio X.

Mostrar triângulos

Restrições de transformação

Animar esqueletos complexos com muitas partes interdependentes pode ser tedioso. As restrições de transformação do Spine eliminam essa dificuldade ao liberar um rigging mais poderoso. Ao restringir as transformações de um osso às transformações de outro osso, você só precisa animar um deles e os outros são ajustados automaticamente. Embora simples à primeira vista, um rigging avançado pode fazer grande uso disso para automatizar como um esqueleto se comporta ao ser posado.

As restrições de transformação também são ótimas para maquinário, como o tanque nesta demonstração. Em vez de colocar quadros de rotação para cada roda individual, apenas uma roda é animada enquanto as outras a seguem por meio de uma restrição de transformação. Deslocamento e mesclagem podem dar individualidade de volta às partes restritas.

As esteiras do tanque são circuladas usando uma restrição de caminho, o que seria impossível de animar sem caminhos. O caminho é pesado para as rodas, então ele se dobra automaticamente à medida que as rodas sobem e descem.

Mostrar ossos & caminhos

Nesta demonstração, a rotação das duas rodas menores é restringida pela rotação da roda grande. Além disso, a translação da roda grande é restringida para que ela permaneça entre as duas rodas menores.

Deslocamento de rotação
 
Mistura de translação