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

# Partículas en emotes

Cómo exportar partículas en tus emotes usando Armature

Los Emotes 2.0 pueden tener sonidos y props, pero ¿sabías que también es posible usar partículas? ¡Pueden ser muy divertidas y añadir ese toque visual extra! Y también pueden acelerar el proceso de animación.

{% hint style="info" %}
**💡 Consejo**: Instala el [plugin Decentraland Tools para Blender](https://extensions.blender.org/add-ons/decentraland-tools/). Incluye varias funciones útiles para ayudarte a editar y exportar modelos 3D, wearables y emotes.
{% endhint %}

Pero como la animación de objetos y los sistemas de partículas no son compatibles en Emotes 2.0, necesitamos convertir estas partículas en un armature (que sí es compatible) para poder añadirlas a los emotes. Usaremos un complemento de Blender desarrollado por el Content Team de la Foundation para este proceso, que se puede descargar desde el enlace a continuación.

Usa el [Complemento Particles to Bones para Blender](https://github.com/decentraland/docs/blob/main/creator/images/emotes/particle_system_to_bone_animation.py) ¡para empezar!

![](https://1216664193-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://1216664193-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)

El proceso de añadir partículas a tu emote implicará dos pasos; puedes seguir las instrucciones junto con estos videos:

* **Convirtiendo partículas en 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)

* **Fusionando el armature de partículas con el armature del 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" %}
**¡Atención!**

⚠️ La creación de un sistema de partículas no se cubrirá en esta documentación. El objetivo es ayudar a implementarlo en tu emote.
{% endhint %}

## Convirtiendo partículas en armature

Como se mencionó anteriormente, Emotes 2.0 no admite animación de objetos ni ningún tipo de sistema de partículas. Por eso necesitamos convertir las partículas en un armature.

Para empezar, necesitarás un sistema de partículas funcional y el complemento. El sistema de partículas que se muestra abajo es muy simple; es solo un ejemplo para mostrar cómo funciona el complemento. Asegúrate de que tu sistema de partículas coincida con las animaciones de tu emote para obtener un mejor resultado.

![](https://1216664193-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 simple.*

A continuación, descarga e instala el complemento. Para hacerlo, ve a Edit > Preferences > Add-ons y haz clic en Install para buscar el archivo en tu computadora.

![](https://1216664193-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)

*Haz clic en Edit > Preferences.*

![](https://1216664193-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)

*Selecciona Add-ons a la derecha y haz clic en Install.*

Una vez hecho esto, haz clic en la casilla para habilitarlo. Aparecerá una pestaña llamada Converter a la derecha del Viewport.

![](https://1216664193-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)

*Haz clic en la casilla para habilitar el complemento.*

![](https://1216664193-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)

*Encontrarás la pestaña Converter a la derecha del Viewport.*

A continuación, selecciona el objeto, ve a la pestaña Converter, renombra la Output Collection como prefieras, define Start y End Frames y haz clic en Particle System to Armature Converter, como se muestra abajo.

![](https://1216664193-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)

Notarás que se creó una colección en el Outliner, con el armature de partículas. También se creó un clip de animación, al hornear todo el movimiento de cada objeto.

![](https://1216664193-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 generado por el complemento.*

![](https://1216664193-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)

*Clip de animación generado por el complemento.*

¡Y eso es todo para convertir tus partículas en un armature! Recuerda guardar tu archivo con un nombre distinto (mantén el original como respaldo), lo necesitaremos para el siguiente paso.

{% hint style="info" %}
**¡Atención!**

⚠️ Las partículas deben ser el último elemento añadido a tu emote. Cuando el emote esté listo, tendrás la duración exacta de la animación, lo que hará más fácil sincronizar las partículas con la acción realizada.
{% endhint %}

## Fusionando el armature de partículas con el armature del prop

Emotes 2.0 solo pueden tener dos armatures y dos clips de animación por archivo. Si solo importamos las partículas, terminaremos con tres armatures y tres clips de animación. La forma de solucionarlo es fusionar el armature de partículas con el armature del prop. La razón para fusionarlo con el prop y no con el armature del avatar es muy simple: el rig del avatar no puede editarse de ninguna manera añadiendo o eliminando bones. Esto deja al armature del prop como la única opción.

## Fusionando el armature de partículas con el armature del prop

Emotes 2.0 solo pueden tener dos armatures y dos clips de animación por archivo. Si solo importamos las partículas, terminaremos con tres armatures y tres clips de animación. La forma de solucionarlo es fusionar el armature de partículas con el armature del prop. La razón para fusionarlo con el prop y no con el armature del avatar es muy simple: el rig del avatar no puede editarse de ninguna manera añadiendo o eliminando bones. Esto deja al armature del prop como la única opción.

Lo primero que tenemos que hacer es importar o anexar la colección generada por el complemento. Siempre podrías exportar el archivo glb para ello e importarlo en tu archivo de emote. O podrías simplemente anexar la colección, que es mucho más fácil y rápido, yendo a ***Archivo*** > ***Append***, navega hasta el archivo de partículas en tu computadora, selecciona la carpeta ***Collection*** y elige la colección deseada.

![](https://1216664193-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 una colección, ve a File > Append.*

![](https://1216664193-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)

*Una vez que busques el archivo de partículas, selecciona la carpeta Collection.*

![](https://1216664193-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)

*Elige la colección generada por el complemento (a la que pudiste renombrar). Particles\_Out es solo el nombre que se le dio para este ejemplo.*

A continuación, vamos a fusionar los armatures. En Object Mode, selecciona primero el armature de partículas, luego mantén presionado Shift para seleccionar el armature del prop y pulsa Ctrl+J para unirlos/fusionarlos, como se muestra abajo.

![](https://1216664193-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)

Una vez que hagas eso, las partículas pueden verse desordenadas, pero no te preocupes, esto forma parte del proceso. Para solucionarlo, selecciona cada objeto de partícula en el Outliner uno por uno, ve a Object Properties (ícono de cuadrado naranja) y, en Relations, comprueba si el parent es Armature\_Prop. Haz esto para todos los objetos de partícula. Esto significa que todos los objetos son hijos de Armature\_Prop.

![](https://1216664193-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)

*Asegúrate de que Armature\_Pop sea el parent de cada objeto de partícula.*

Después de hacer eso con todos los objetos de partícula, selecciona el primer objeto de partícula en el Outliner, ve a Modifiers (el ícono de llave inglesa azul) y el campo Object estará vacío. Como esta es la pestaña Modifiers, eso significa que aquí elegirás qué armature controlará el objeto. Así que solo haz clic en Object y selecciona Armature\_Prop, y repite esto para todos los objetos de partícula. A medida que lo hagas, notarás que los objetos de partícula volverán a sus tamaños originales, corrigiendo todo ese desorden creado cuando se fusionaron los armatures.

![](https://1216664193-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)

*Selecciona el armature adecuado para controlar los objetos.*

Ahora que el armature está correctamente fusionado y configurado, queda un último paso para que esto funcione. Si intentas reproducir la animación, notarás que las partículas no se mueven. Y eso se debe a que ahora forman parte de Armature\_Prop, y la animación que se reproduce con él es la del prop. ¿Recuerdas que las partículas tenían su propio clip de animación? Lo que tenemos que hacer ahora es copiar los keyframes del clip de animación de partículas y pegarlos en el clip de animación del prop.

Para hacerlo, ve a ***Pose Mode*** y en el Outliner, expande ***Armature\_Prop*** y luego ***Pose***. Selecciona todos los bones que pertenecen a las partículas.

![](https://1216664193-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)

*Seleccionando todos los bones de las partículas.*

Con los bones seleccionados, en el Action Editor, selecciona el clip de animación original de las partículas que tiene todos los keyframes. Selecciona todos los keyframes presionando A, haz clic derecho y copia los keyframes. Luego, selecciona la animación del prop, establece un keyframe en el primer frame y pega los keyframes del clip de animación de partículas.

![](https://1216664193-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 los keyframes de la animación de partículas a la animación del prop.*

¡Y listo! Guarda el archivo, asegúrate de borrar el clip de animación original de partículas y exporta como lo harías normalmente.

Si necesitas más información sobre cómo hacerlo, consulta la ***Exportación*** sección en la [Añadir props y sonidos a tus Emotes](https://docs.decentraland.org/creator/emotes/props-and-sounds/) documentación.


---

# 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-es/wearables-y-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.
