> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-pt/modelacao-e-animacoes-3d/animations.md).

# Animations

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

{% hint style="info" %}
**💡 Dica**: Instale o [plugin Blender Decentraland Tools](https://extensions.blender.org/add-ons/decentraland-tools/). Ele inclui várias funções úteis para ajudar você a editar e exportar modelos 3D, Wearables e Emotes.
{% endhint %}

Há algumas maneiras de fazer isso: por meio de **animação de objeto**, por meio de um **rig (animação esquelética)**, ou usando **shape keys (animação de morph target)**.

**Animação de objeto** é melhor para modelos simples, como uma bola quicando, um globo girando ou uma cadeira flutuante, e não precisa de armature. É importante mencionar que a animação de objeto é diferente da **animação de vértices**. Na animação de objeto, o modelo será animado como um todo, enquanto na animação de vértices cada vértice do objeto pode ser animado separadamente.

**Shape keys (também conhecidas como morph targets ou blend shapes)** são uma forma de animação de vértices que são **suportadas pelo engine do Decentraland**. Elas são particularmente úteis para expressões faciais, lip sync ou qualquer deformação que seja difícil de conseguir apenas com ossos. As animações de shape key incorporadas em um arquivo glTF/GLB serão reproduzidas no mundo, assim como as animações esqueléticas ou de objeto.

Se você tiver um modelo mais complexo, como uma pessoa, criatura ou maquinaria, então você vai precisar de um **rig**. Um rig nada mais é do que um esqueleto digital que moverá e deformará o mesh. O processo de vincular o mesh ao esqueleto é chamado de Skinning, em que 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 forma possível.

Para qualquer um dos métodos, porém, todas as animações de um modelo 3D devem estar incorporadas dentro do seu *glTF* arquivo, 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 ter a aba ***Dope Sheet*** > ***Action Editor*** aberta e clique em ***New*** para adicionar um clipe de animação.
* Renomeie-o como preferir e certifique-se de ativar ***Fake User*** (o ícone de escudo) para que sua animação seja salva.
* Defina um keyframe no primeiro frame selecionando o objeto e pressionando ***I***. Depois, mova o objeto, gire-o ou altere sua escala e, em outro frame na timeline, pressione ***I*** novamente para definir outro keyframe com os transforms atuais.
* O frame final da animação deve ser igual ao primeiro, então basta copiar o primeiro frame e colá-lo no último.

![](/files/51e6c66907a06b04ac43af6136bb29faae55d8dd)

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

### Animação de Rig

Para uma animação de rig, você vai precisar de uma armature. Se quiser fazer isso sozinho, veja [Create a Rig](https://www.notion.so/686e6f59a1604585b059f990a36b2d55) para instruções sobre como configurar uma armature consistente.

Quando o rigging estiver pronto e o Skinning tiver 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 fazer isso em ***Object Mode***, você vai animá-lo em ***Pose Mode***.

* Vá para ***Pose Mode*** e certifique-se de que você tenha o ***Dope Sheet*** > ***Action Editor*** aberta e clique em ***New*** para adicionar um clipe de animação.
* Renomeie-o como preferir e certifique-se de ativar ***Fake User*** (o ícone de 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 um keyframe para toda a armature.
* Vá para um frame diferente na timeline 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 você configurou seu rig.
* Quando tiver um bom resultado, defina outro keyframe para toda a armature. Continue fazendo isso até terminar sua animação. Lembre-se de deixar o primeiro e o último frames iguais se a animação for em loop.

![](/files/b61b23312240cf0a91326fd95ec47454d0db354e)

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

[![Video Preview](https://img.youtube.com/vi/-iWslh4uQIk/maxresdefault.jpg)](https://youtu.be/-iWslh4uQIk)

## Skinned Animations vs Transform Animations

**As transform animations costumam ser melhores do que as animações de skinned mesh em termos de desempenho porque envolvem menos sobrecarga em recursos computacionais necessários para exibir a animação.**

A animação de skinned mesh envolve o uso de um mesh com um esqueleto de ossos que têm pesos atribuídos aos vértices do mesh. O esqueleto é animado, o que por sua vez anima o mesh. Esse processo pode ser bastante pesado computacionalmente, especialmente quando há um grande número de vértices para animar.

As transform animations, 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 a animação de skinned mesh, já que normalmente há menos propriedades de transform para animar do que vértices em um mesh.

Além disso, as transform animations muitas vezes podem ser pré-calculadas e armazenadas em um formato mais compacto, como dados de keyframe, que podem ser acessados e reproduzidos rapidamente sem a necessidade de cálculos intensivos em tempo real.

De modo geral, embora a animação de skinned mesh possa produzir animações mais detalhadas e realistas, as transform animations costumam ser preferidas em aplicações em que o desempenho é crítico, como video games.

## Criando e Exportando Vários Clipes de Animação

Você pode ter tantos clipes de animação quantos quiser para o seu modelo. Você pode ver como criar, navegar e excluir animações em [esta seção aqui](https://www.notion.so/5e962e5d54a24bcb9b906748007eb4cc).

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

[![Video Preview](https://img.youtube.com/vi/YxAB4bujO_w/maxresdefault.jpg)](https://www.youtube.com/watch?v=YxAB4bujO_w\&ab_channel=Decentraland)

## Exportando Muitas Animações como Uma Só

Ao contrário de uma animação esquelética, em que você pode rigar vários 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 várias animações em uma só, para que você tenha um clipe de animação com todos os objetos se movendo ao mesmo tempo.

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

![](/files/3d5949d292b5124dd3c190b40396346252e9868d)

*Envie a animação de cada objeto para a NLA Track.*

Depois que todas as animações estiverem listadas no NLA Editor, selecione todos os objetos, vá para **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 depois apenas pressionar **Export glTF 2.0**.

![](/files/4b3ce064ccfde4b6e1af75f051aca2d67dde63c4)

*Settings para exportar várias animações como uma só.*

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

{% hint style="info" %}
**💡 Dica**: 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 grátis ou pagas de [Mixamo](https://www.mixamo.com/#/).
{% endhint %}

## Amostragem

Às vezes, seu arquivo de animação pode acabar ficando pesado demais 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 vai definir com que frequência um keyframe será incorporado na animação. Por exemplo, se a taxa de amostragem estiver definida como 2, isso significa que um keyframe será criado a cada dois frames. Uma taxa de amostragem de 3 incorporará um keyframe a cada três frames e assim por diante. Quanto maior a taxa de amostragem, mais leve será o arquivo.

A desvantagem, porém, é que a animação vai começar a ficar cada vez menos fluida, já que perde alguns keyframes importantes (eles são distribuídos pela animação de forma desigual). Também é importante observar que **a amostragem NÃO é dividir o número de frames da animação pela taxa de amostragem**.

Normalmente, uma **taxa de amostragem de 2 ou 3** vai resolver. Esses números podem otimizar a animação sem comprometer a qualidade.

Você pode encontrar a ***Sampling Rate*** nas configurações de exportação, em ***Animation***.

![](/files/9b377b9de2ef54b6a1d1153c87ccdebf786ea221)

{% hint style="info" %}
**💡 Dica**: Se o número de frames da animação puder ser dividido pela taxa de amostragem, isso é ótimo! Significa que o frame final será incorporado, preservando a transição do fim para o início da animação.
{% endhint %}

## Implementando Animações

Este documento cobre como adicionar animações a um modelo 3D. Veja [**handle animations**](https://docs.decentraland.org/creator/development-guide/3d-model-animations/) para instruções sobre como ativar e lidar com animações em uma cena.

## Melhores Práticas para Animações

* Mantenha a armature o mais simples possível, criando ossos apenas para as partes do modelo que você pretende animar. Ossos podem afetar o desempenho, então certifique-se de adicionar apenas o que for 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 transição melhor.
* 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 respirar 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 só a tornarão menos crível.
* Evite keyframes demais, a menos que seja extremamente necessário. Quanto mais keyframes você adicionar, maiores as chances de obter uma interpolação ruim e uma animação mais pesada.
* Selecione todos os seus ossos (incluindo os ossos de deformação) e defina um keyframe nos primeiros e últimos frames da sua animação. Isso evitará ossos sem informação, fazendo com que uma animação afete a outra involuntariamente.
* Certifique-se de que seu arquivo tenha apenas uma armature quando você o exportar. Ao importar animações, uma armature também será importada com ela. Todas as animações devem ser realizadas pela mesma armature base, então apague qualquer coisa que você não precise.
* Renomeie sempre seus ossos e animações. Mantenha tudo organizado!
* Ao exportar o *glTF* modelo, confirme que você está exportando todos os objetos e animações. Alguns exportadores exportam apenas o ***atualmente selecionado*** por padrão.
* Depois de exportar o modelo, inspecione-o no [Babylon Sandbox](https://sandbox.babylonjs.com/) e verifique se todas as animações estão funcionando e se estão nomeadas como esperado.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/creator/content-creator-pt/modelacao-e-animacoes-3d/animations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
