Animações

Aprenda Como Criar Animações Que Podem Ser Incorporadas em Modelos 3D Importados Para o Decentraland.

A animação é a arte de trazer vida às coisas. E não há melhor maneira de tornar sua cena mais animada do que adicionar algumas animações aos seus modelos 3D.

Existem algumas maneiras de fazer isso, entretanto: através de animação de objeto ou através de um rig (animação esquelética).

Animação de objeto é melhor para modelos simples, como uma bola quicando, um globo giratório ou uma cadeira flutuante e não precisa de uma armadura. É importante mencionar que animação de objeto é diferente de animação de vértice. Na animação de objeto, o modelo será animado como um todo, enquanto na animação de vértice, como o nome diz, cada vértice do objeto pode ser animado separadamente (o que é super útil para criar shape keys, por exemplo). Embora a animação de objeto seja perfeitamente aceitável de usar, animação de vértice atualmente não é suportada pelo engine da Decentraland.

Se você tem um modelo mais complexo, como uma pessoa, criatura ou maquinaria, então você vai precisar de um rig. Um rig não é mais do que um esqueleto digital que vai mover e deformar a malha. O processo de vincular a malha ao esqueleto é chamado Skinning, onde você define qual osso afetará cada grupo de vértices e quão forte essa influência será, garantindo que o modelo se deforme da melhor maneira possível.

Para qualquer um dos métodos, entretanto, todas as animações de um modelo 3D devem estar embutidas dentro do seu arquivo glTF já que você não pode referenciar animações em arquivos separados.

Criando Uma Animação

É assim que você cria animações usando o Blender.

Animação de Objeto

  • Certifique-se de que você tem a Dope Sheet > Action Editor aba aberta e clique em Novo para adicionar um clipe de animação.

  • Renomeie como achar melhor e certifique-se de ativar Fake User (o ícone do escudo) para que sua animação seja salva.

  • Defina uma keyframe no primeiro quadro selecionando o objeto e pressionando I. Então mova o objeto, rode ou escale-o e, em outro quadro na linha do tempo, pressione I novamente para definir outra keyframe com as transforms atuais.

  • O quadro final da animação deve ser igual ao primeiro, então basta copiar o primeiro quadro e colá-lo no último.



Criando um clipe de animação e adicionando keyframes.

Animação de Rig

Para uma animação com rig, você vai precisar de uma armature. Se quiser fazer você mesmo, veja Create a Rigarrow-up-right para instruções sobre como configurar uma armature consistente.

Quando o rigging estiver feito e o skinning apresentar boas deformações, você estará pronto para começar sua animação! O processo é muito semelhante ao da Animação de Objeto, mas em vez de fazê-lo em Object Mode, você irá animá-lo em Pose Mode.

  • Vá para Pose Mode e certifique-se de que você tem o Dope Sheet > Action Editor aba aberta e clique em Novo para adicionar um clipe de animação.

  • Renomeie como achar melhor e certifique-se de ativar Fake User (o ícone do escudo) para que sua animação seja salva.

  • Com o mouse sobre o Viewport, pressione A para selecionar tudo e então I para definir uma keyframe para toda a armature.

  • Vá para um quadro diferente na linha do tempo e manipule o osso como quiser para obter a pose desejada. Você pode alterar a localização, rotação e escala de um osso dependendo de como configurou seu rig.

  • Quando tiver um bom resultado, defina outra keyframe para toda a armature. Continue fazendo isso até terminar sua animação. Lembre-se de ter o primeiro e o último quadros iguais se a animação for entrar em loop.



Se você é novo no processo de animação, confira este tutorial com algumas dicas legais para iniciantes:

Video Previewarrow-up-right

Animações Skinadas vs Animações por Transformação

Animações por transformação são tipicamente melhores do que animações de malha skinada em termos de desempenho porque envolvem menos overhead em termos de recursos computacionais necessários para exibir a animação.

A animação de malha skinada envolve usar uma malha com um esqueleto de ossos que são ponderados aos vértices da malha. O esqueleto é animado, o que por sua vez anima a malha. Esse processo pode ser bastante intensivo em computação, especialmente quando há um grande número de vértices para animar.

Animações por transformação, por outro lado, envolvem animar diretamente as propriedades de transform de um objeto (como sua posição, rotação e escala). Isso pode ser feito com menos recursos computacionais do que animação de malha skinada, já que normalmente há menos propriedades de transform para animar do que vértices em uma malha.

Além disso, animações por transformação frequentemente podem ser pré-calculadas e armazenadas em um formato mais compacto, como dados de keyframes, que podem ser acessados e reproduzidos rapidamente sem a necessidade de cálculos intensivos em tempo real.

No geral, enquanto a animação de malha skinada pode produzir animações mais detalhadas e realistas, animações por transformação são frequentemente preferidas para aplicações críticas de desempenho, como videogames.

Criando e Exportando Múltiplos Clips de Animação

Você pode ter quantos clipes de animação quiser para seu modelo. Você pode verificar como criar, navegar e excluir animações em esta seção aquiarrow-up-right.

No vídeo abaixo, você aprenderá como exportar múltiplas animações do Blender em um único arquivo GLB.

Video Previewarrow-up-right

Exportando Muitas Animações como Uma Única

Ao contrário de uma animação esquelética, onde você pode rigar múltiplos objetos e combinar suas animações em um único clipe de animação, na animação de objeto você não pode fazer isso. As animações serão exportadas separadamente e apenas um objeto será reproduzido por vez. Uma solução para isso é mesclar muitas animações em uma única, assim você terá um clipe de animação que faz todos os objetos se moverem ao mesmo tempo.

Para fazer isso, empurre para baixo na Nonlinear Animation Track a animação de cada objeto, como mostrado abaixo.



Empurre para baixo a animação de cada objeto para a NLA Track.

Uma vez que todas as animações estejam listadas no NLA Editor, selecione todos os objetos, vá em File > Export > glTF2.0. Expanda Include e marque Selected Objects. Expanda Animation, expanda Animation novamente e desmarque Group by NLA Track. Você pode renomear o clipe de animação em Merged Animation Name e então apenas pressione Export glTF 2.0.



Configurações para exportar múltiplas animações como uma única.

Tenha em mente que isso só funcionará se os objetos tiverem uma única animação cada. Se os objetos tiverem múltiplos clipes de animação, é melhor exportá-los separadamente.

circle-info

💡 Tip: Em vez de criar suas próprias animações, você também pode baixar animações genéricas e aplicá-las ao seu modelo. Por exemplo, para personagens 3D com características humanas, você pode baixar animações gratuitas ou pagas do Mixamoarrow-up-right.

Amostragem

Às vezes seu arquivo de animação pode acabar ficando muito pesado devido à quantidade de animações ou à combinação de animação+modelo.

A amostragem é uma boa maneira de otimizar a animação. A taxa de amostragem definirá com que frequência um keyframe será assado na animação. Por exemplo, se a taxa de amostragem estiver definida para 2, isso significa que um keyframe será criado a cada dois quadros. Uma taxa de amostragem de 3 assará um keyframe a cada três quadros e assim por diante. Quanto maior a taxa de amostragem, mais leve o arquivo.

A desvantagem, no entanto, é que a animação começará a ficar cada vez menos fluida, já que perde alguns keyframes importantes (eles ficam distribuídos pela animação de forma desigual). Também é importante notar que amostragem NÃO está dividindo o número de quadros da animação pela taxa de amostragem.

Normalmente, uma taxa de amostragem de 2 ou 3 já resolve. Esses valores podem otimizar a animação sem comprometer a qualidade.

Você pode encontrar o Taxa de Amostragem nas configurações de exportação, em Animation.


circle-info

💡 Tip: Se o número de quadros da animação puder ser dividido pela taxa de amostragem, isso é uma coisa boa! Significa que o quadro final será baked, preservando a transição do fim para o início da animação.

Implementando Animações

Este documento cobre como adicionar animações a um modelo 3D. Veja handle animationsarrow-up-right para instruções sobre como ativar e gerenciar animações em uma cena.

Melhores Práticas para Animações

  • Mantenha a armature o mais simples possível, crie ossos apenas para as partes do modelo que você pretende animar. Ossos podem afetar o desempenho, então certifique-se de adicionar somente o que é realmente necessário.

  • Se a animação for entrar em loop na sua cena, certifique-se de que a pose final seja idêntica à inicial para uma melhor transição.

  • Nunca deixe um personagem sem animação, mesmo que ele não esteja realmente fazendo nada. Crie uma animação “idle” para quando o personagem estiver parado. O idle pode incluir movimentos sutis como respiração e talvez olhares ocasionais.

  • Não deixe ossos sem pose, como mãos, dedos, cabeça ou pescoço. Detalhes são realmente importantes em uma boa animação e movimentos rígidos apenas a tornaram menos crível.

  • Evite muitos keyframes, a menos que seja extremamente necessário. Quanto mais keyframes você adicionar, maiores as chances de obter má interpolação e uma animação mais pesada.

  • Selecione todos os seus ossos (incluindo os deformantes) e defina uma keyframe no primeiro e no último quadro da sua animação. Isso evitará que ossos fiquem sem informação, causando uma animação a afetar outra inadvertidamente.

  • Certifique-se de que seu arquivo tenha apenas uma armature quando exportá-lo. Ao importar animações, uma armature também será importada com elas. Todas as animações devem ser realizadas pela mesma armature base, então delete qualquer coisa que você não precise.

  • Sempre renomeie seus ossos e animações. Mantenha tudo organizado!

  • Ao exportar o arquivo glTF modelo, confirme que você está exportando todos os objetos e animações. Alguns exporters exportarão apenas o selecionado atualmente por padrão.

  • Após exportar o modelo, inspecione-o em Babylon Sandboxarrow-up-right e verifique se todas as animações estão funcionando e com os nomes esperados.

Atualizado