> 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/wearables-e-emotes/emotes/particles-in-emotes.md).

# Partículas em Emotes

Como exportar partículas nos seus Emotes usando Armature

Os Emotes 2.0 podem ter sons e props, mas você sabia que também é possível usar partículas? Elas podem ser muito divertidas e adicionar aquele brilho visual extra! E também podem acelerar o processo de animação.

{% hint style="info" %}
**💡 Dica**: Instale o [plugin Decentraland Tools Blender](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 %}

Mas, como a animação de objetos e os sistemas de partículas não são suportados em Emotes 2.0, precisamos converter essas partículas em uma armature (que é suportada) para poder adicioná-las aos emotes. Usaremos um add-on do Blender desenvolvido pela Content Team da Foundation para esse processo, que pode ser baixado no link abaixo.

Use o [Particles to Bones Addon for Blender](https://github.com/decentraland/docs/blob/main/creator/images/emotes/particle_system_to_bone_animation.py) para começar!

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-fedd9930f6fbd3e6633784b91f386b7f73def781%2F01_love_grenade.png?alt=media\&token=480ce63c-7c3a-4360-b3e6-98911d53d005) ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6edab81a249a2af117c36e6a020f296e66c248a7%2F02_guitar.png?alt=media\&token=1a3aeae5-21ca-4e66-95b5-7a0c403995b9)

O processo de adicionar partículas ao seu emote envolverá duas etapas; você pode seguir as orientações juntamente com estes vídeos:

* **Converter partículas em armature**

[![Video Preview](https://i.vimeocdn.com/video/1803452887-82f74713a8f16df8c3618654f539cfddf78cb1f9dfac951d99d340004ac26ad6-d_590x332)](https://vz-8a0704eb-552.b-cdn.net/bb51a195-4a80-48d3-badd-0bfe6cc9e3b3/playlist.m3u8)

* **Mesclar a armature de partículas com a armature do prop**

[![Video Preview](https://i.vimeocdn.com/video/1803464351-0e8bf5158cb87707397a547948f99278b1af45d7669622887a43c3bd9340c064-d_590x332)](https://vz-8a0704eb-552.b-cdn.net/9f512c34-ae83-42fe-a858-165ccea6d0c5/playlist.m3u8)

{% hint style="info" %}
**Atenção!**

⚠️ A criação de um sistema de partículas não será coberta nesta documentação. O objetivo é ajudar a implementá-lo no seu emote.
{% endhint %}

## Convertendo Partículas em Armature

Como mencionado anteriormente, Emotes 2.0 não suporta animação de objetos nem qualquer forma de sistema de partículas. É por isso que precisamos converter as partículas em uma armature.

Para começar, você precisará de um sistema de partículas funcional e do add-on. O sistema de partículas mostrado abaixo é bem simples; é apenas um exemplo para mostrar como o add-on funciona. Certifique-se de que seu sistema de partículas corresponda às animações do seu emote para obter um resultado melhor.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-92fed0596a56173060223ae8c24d5a382525b0ae%2F03_particles.gif?alt=media\&token=7130242b-19f0-4cb4-b03d-34770666e0e4)

*Sistema de partículas simples.*

Em seguida, faça o download e instale o add-on. Para isso, vá para Edit > Preferences > Add-ons e clique em Install para procurar o arquivo no seu computador.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-fcbbcaa82dcc0fd866c283159bc03a1bb5dd45ad%2F04_add_on_01.png?alt=media\&token=10077070-c8ce-4b9f-8eaf-334d363256b1)

*Clique em Edit > Preferences.*

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-9112f5928a05ee9d997fda1727bddb8be97d07c0%2F05_add_on_02.png?alt=media\&token=ad69339f-7016-4aa4-b104-1ac0769471cc)

*Selecione Add-ons à direita e clique em Install.*

Depois disso, clique na caixa de seleção para ativá-lo. Uma aba chamada Converter aparecerá no lado direito do Viewport.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-78548b30ab90c198efa1a71f3446bb464bf02585%2F06_add_on_03.png?alt=media\&token=10f53201-27e2-40eb-adb9-d06ad13dc9e0)

*Clique na caixa de seleção para ativar o add-on.*

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4a89c2c64d73b3e97c8dd08f02622d2cfddeaf7f%2F07_add_on_04.png?alt=media\&token=594de0aa-87d6-4c6a-8020-656918a75d84)

*Você encontrará a aba Converter à direita do Viewport.*

Em seguida, selecione o objeto, vá para a aba Converter, renomeie a Output Collection como achar melhor, defina Start e End Frames e clique em Particle System to Armature Converter, como mostrado abaixo.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f9a4aef139227a8e40a7e4c173d61589360a003a%2F08_particles_converter.gif?alt=media\&token=12dced6c-bf0f-4f16-8616-a8e5b1561f8d)

Você perceberá que uma collection foi criada no Outliner, com a armature das partículas. Também foi criado um clipe de animação, ao fazer o bake de todo o movimento de cada objeto.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-dcedfabd28f457c3b2b0d9b1f568b2aa5dc42cf6%2F09_add_on_05.png?alt=media\&token=68cb2b27-7b70-4761-9a3c-4539daa7c692)

*Armature gerada pelo add-on.*

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-408a3e4d1d65d2580dc2e45b218c49b1af520207%2F10_add_on_06.png?alt=media\&token=17d03ab3-19db-41bb-8b5f-921ad8eb1351)

*Clipe de animação gerado pelo add-on.*

E pronto: assim você converte suas partículas em uma armature! Lembre-se de salvar seu arquivo com um nome diferente (mantenha o original como backup), pois precisaremos dele para a próxima etapa.

{% hint style="info" %}
**Atenção!**

⚠️ As partículas devem ser o último elemento adicionado ao seu emote. Quando o emote estiver pronto, você terá o comprimento exato da animação, o que facilitará sincronizar as partículas com a ação realizada.
{% endhint %}

## Mesclando a Armature de Partículas com a Armature do Prop

Emotes 2.0 só podem ter duas armatures e dois clipes de animação por arquivo. Se importarmos apenas as partículas, acabaremos com três armatures e três clipes de animação. A maneira de corrigir isso é mesclar a armature das partículas na armature do prop. O motivo para mesclá-la ao prop e não à armature do avatar é muito simples: o rig do avatar não pode ser editado de forma alguma, adicionando ou removendo bones. Isso deixa a armature do prop como a única opção.

## Mesclando a Armature de Partículas com a Armature do Prop

Emotes 2.0 só podem ter duas armatures e dois clipes de animação por arquivo. Se importarmos apenas as partículas, acabaremos com três armatures e três clipes de animação. A maneira de corrigir isso é mesclar a armature das partículas na armature do prop. O motivo para mesclá-la ao prop e não à armature do avatar é muito simples: o rig do avatar não pode ser editado de forma alguma, adicionando ou removendo bones. Isso deixa a armature do prop como a única opção.

A primeira coisa que precisamos fazer é importar ou anexar a collection gerada pelo add-on. Você sempre pode exportar o arquivo glb e importá-lo para o seu arquivo de emote. Ou pode simplesmente anexar a collection, o que é muito mais fácil e rápido, indo para ***File*** > ***Append***, procure o arquivo de partículas no seu computador, selecione a pasta ***Collection*** e escolha a collection desejada.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-93003f27dab11d88c5d0c1f7a35a20e569ea3414%2F11_merge_01.png?alt=media\&token=c56d86eb-43c3-4c83-8cf8-74af3f4faa06)

*Para anexar uma collection, vá para File > Append.*

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-03f4b688abed6216e6c812330b43feb6be1b769b%2F12_collection_01.png?alt=media\&token=c3e450a6-c83f-4138-b4be-8da068ed4c25)

*Depois de localizar o arquivo de partículas, selecione a pasta Collection.*

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-03d1d436119126e84a14cd9dfb175272ac8e9fd6%2F13_collection_02.png?alt=media\&token=8228ec65-748d-420e-87d8-406d04c103fc)

*Escolha a collection gerada pelo add-on (que você pôde renomear). Particles\_Out é apenas como ela foi renomeada neste exemplo.*

Em seguida, vamos mesclar as armatures. Em Object Mode, selecione primeiro a armature das partículas, depois mantenha Shift pressionado para selecionar a armature do prop e pressione Ctrl+J para juntá-las/mesclá-las, como mostrado abaixo.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-94982e00e1f6d568203b19c102bd90d8dc0cce36%2F14_merge_armature.gif?alt=media\&token=0bcc80b0-cc8c-4a2c-b396-0c3f24d3d37b)

Depois disso, as partículas podem parecer desconfiguradas, mas não se preocupe, isso faz parte do processo. Para corrigir isso, selecione cada objeto de partícula no Outliner, um de cada vez, vá em Object Properties (ícone de quadrado laranja) e, em Relations, verifique se o parent é Armature\_Prop. Faça isso para todos os objetos de partícula. Isso significa que todos os objetos são children de Armature\_Prop.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4cef5e6c2c5dbb2ee4983151dd9be0c6bae03f2b%2F15_armature_parent_01.png?alt=media\&token=80f15788-ab6a-4365-9fb8-e76881087b05)

*Certifique-se de que Armature\_Pop seja o parent de cada objeto de partícula.*

Depois de fazer isso com todos os objetos de partícula, selecione o primeiro objeto de partícula no Outliner, vá para Modifiers (o ícone de chave inglesa azul) e o campo Object estará vazio. Como esta é a aba Modifiers, isso significa que aqui você escolherá qual armature irá controlar o objeto. Então, basta clicar em Object e selecionar Armature\_Prop, e repetir isso para todos os objetos de partícula. À medida que fizer isso, você perceberá que os objetos de partícula estão voltando aos seus tamanhos originais, corrigindo toda a bagunça criada quando as armatures foram mescladas.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0cf4efd9e6dda8f9eebc6469611773942d905ae1%2F16_armature_parent_02.png?alt=media\&token=bf967c75-e5b2-4e90-80e7-382137f12508)

*Selecione a armature correta para controlar os objetos.*

Agora que a armature está corretamente mesclada e configurada, há mais uma etapa para isso funcionar. Se você tentar reproduzir a animação, notará que as partículas não estão se movendo. Isso acontece porque agora elas fazem parte de Armature\_Prop, e a animação reproduzida por ela é a do prop. Lembra que as partículas tinham seu próprio clipe de animação? O que precisamos fazer agora é copiar os keyframes do clipe de animação das partículas e colá-los no clipe de animação do prop.

Para isso, vá para ***Pose Mode*** e, no Outliner, expanda ***Armature\_Prop*** e depois ***Pose***. Selecione todos os bones que pertencem às partículas.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-51d18dda68765686af9ba13cdf9dfa9e4a14d284%2F17_merge_armature_02.gif?alt=media\&token=3f881f1c-cf12-4b0b-89e8-86e246b55ca8)

*Selecionando todos os bones das partículas.*

Com os bones selecionados, no Action Editor, selecione o clipe de animação original das partículas, que contém todos os keyframes. Selecione todos os keyframes pressionando A, clique com o botão direito e copie os keyframes. Em seguida, selecione a animação do prop, defina um keyframe no primeiro frame e cole os keyframes do clipe de animação das partículas.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-40f7a2031d8fb8bd41fad014c36e2c3551e66b09%2F18_merge_armature_04.gif?alt=media\&token=6d6b5cde-88e6-4fa6-8770-533306a7bd98)

*Copiando frames da animação das partículas para a animação do prop.*

E pronto! Salve o arquivo, certifique-se de apagar o clipe de animação original das partículas e exporte como você normalmente faria.

Se precisar de mais informações sobre como fazer isso, consulte a ***Exportação*** seção em [Adicionando Props e Sons aos seus Emotes](https://docs.decentraland.org/creator/emotes/props-and-sounds/) documentação.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-pt/wearables-e-emotes/emotes/particles-in-emotes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
