# Animaciones

La animación es el arte de dar vida a las cosas. Y no hay mejor manera de hacer que tu escena sea más animada que añadir algunas animaciones a tus modelos 3D.

Hay algunas formas de hacerlo: a través de **animación de objetos**, a través de un **rig (animación esquelética)**, o usando **shape keys (animación de morph target)**.

**Animación de objetos** es la mejor para modelos simples, como una pelota que rebota, un globo giratorio o una silla flotante, y no necesita una armature. Es importante mencionar que la animación de objetos es diferente de **animación de vértices**. En la animación de objetos, el modelo se animará como un todo, mientras que en la animación de vértices cada vértice del objeto puede animarse por separado.

**Las shape keys (también conocidas como morph targets o blend shapes)** son una forma de animación de vértices que está **soportada por el engine de Decentraland**. Son especialmente útiles para expresiones faciales, lip sync o cualquier deformación que sea difícil de lograr solo con huesos. Las animaciones de shape keys incrustadas en un archivo glTF/GLB se reproducirán en-world igual que las animaciones esqueléticas o de objetos.

Si tienes un modelo más complejo, como una persona, una criatura o maquinaria, entonces necesitarás un **rig**. Un rig no es más que un esqueleto digital que moverá y deformará el Mesh. El proceso de vincular el Mesh al esqueleto se llama Skinning, donde defines qué hueso afectará a cada grupo de vértices y cuán fuerte será esa influencia, asegurándote de que el modelo se deforme de la mejor manera posible.

Para cualquiera de los dos métodos, sin embargo, todas las animaciones de un modelo 3D deben estar incrustadas dentro de su *glTF* archivo, ya que no puedes referenciar animaciones en archivos separados.

## Crear una animación

Así es como creas animaciones usando Blender.

### Animación de objetos

* Asegúrate de tener la ***Dope Sheet*** > ***Action Editor*** pestaña abierta y haz clic en ***New*** para añadir un clip de animación.
* Renómbralo como prefieras y asegúrate de activar ***Usuario falso*** (el icono del escudo) para que tu animación se guarde.
* Establece un keyframe en el primer frame seleccionando el objeto y presionando ***I***. Luego mueve el objeto, gíralo o escálalo y, en otro frame de la timeline, presiona ***I*** de nuevo para establecer otro keyframe con los transforms actuales.
* El frame final de la animación debe ser igual al primero, así que simplemente copia el primer frame y pégalo en el último.

![](/files/6cec3eed0543f3125355e197b4c002914e37a21e)

*Creando un clip de animación y añadiendo keyframes.*

### Animación de rig

Para una animación de rig, necesitarás una armature. Si quieres hacerlo tú mismo, consulta [Crear un Rig](https://www.notion.so/686e6f59a1604585b059f990a36b2d55) para obtener instrucciones sobre cómo configurar una armature coherente.

Cuando el rigging esté hecho y el skinning tenga deformaciones agradables, ¡estarás listo para empezar tu animación! El proceso es muy similar a la Animación de objetos, pero en lugar de hacerlo en ***Object Mode***, la animarás en ***Pose Mode***.

* Ve a ***Pose Mode*** y asegúrate de tener la ***Dope Sheet*** > ***Action Editor*** pestaña abierta y haz clic en ***New*** para añadir un clip de animación.
* Renómbralo como prefieras y asegúrate de activar ***Usuario falso*** (el icono del escudo) para que tu animación se guarde.
* Con el ratón sobre la ***Viewport***, presiona ***A*** para seleccionar todo y luego ***I*** para establecer un keyframe para toda la armature.
* Pasa a otro frame en la timeline y manipula el hueso como quieras para obtener la pose que deseas. Puedes cambiar la ubicación, rotación y escala de un hueso según cómo hayas configurado tu rig.
* Cuando tengas un buen resultado, establece otro keyframe para toda la armature. Sigue haciendo eso hasta terminar tu animación. Recuerda que el primer y el último frame deben ser iguales si la animación va a hacer loop.

![](/files/74e0985c94e8d74fe1569ca77db3c4c60b6e9fce)

Si eres nuevo en el proceso de animación, revisa este tutorial con algunos buenos consejos para principiantes:

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

## Animaciones con skinning vs animaciones de transform

**Las animaciones de transform suelen ser mejores que las animaciones de skinned mesh en términos de rendimiento porque implican menos sobrecarga en cuanto a los recursos computacionales necesarios para mostrar la animación.**

La animación de skinned mesh implica usar un Mesh con un esqueleto de huesos ponderados a los vértices del Mesh. El esqueleto se anima y, a su vez, anima el Mesh. Este proceso puede ser bastante intensivo computacionalmente, especialmente cuando hay un gran número de vértices que animar.

Las animaciones de transform, por otro lado, implican animar directamente las propiedades de transform de un objeto (como su posición, rotación y escala). Esto puede hacerse con menos recursos computacionales que la animación de skinned mesh, ya que normalmente hay menos propiedades de transform que animar que vértices en un Mesh.

Además, las animaciones de transform a menudo pueden precalcularse y almacenarse en un formato más compacto, como datos de keyframes, a los que se puede acceder y reproducir rápidamente sin necesidad de cálculos intensivos en tiempo real.

En general, aunque la animación de skinned mesh puede producir animaciones más detalladas y realistas, las animaciones de transform suelen preferirse para aplicaciones críticas para el rendimiento, como los videojuegos.

## Crear y exportar múltiples clips de animación

Puedes tener tantos clips de animación como quieras para tu modelo. Puedes consultar cómo crear, explorar y eliminar animaciones en [esta sección aquí](https://www.notion.so/5e962e5d54a24bcb9b906748007eb4cc).

En el video de abajo, aprenderás cómo exportar múltiples animaciones desde Blender en un solo archivo GLB.

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

## Exportar muchas animaciones como una sola

A diferencia de una animación esquelética, donde puedes hacer rig de múltiples objetos y combinar sus animaciones en un solo clip de animación, en la animación de objetos no puedes hacerlo. Las animaciones se exportarán por separado y solo se reproducirá un objeto a la vez. Una solución para eso es combinar muchas animaciones en una sola, de modo que tengas un clip de animación que tenga todos los objetos moviéndose al mismo tiempo.

Para hacerlo, baja al ***Nonlinear Animation Track*** la animación de cada objeto, como se muestra abajo.

![](/files/bcf7e1ec5c9e233f2fc46632bafb2579188d72af)

*Baja la animación de cada objeto al NLA Track.*

Una vez que todas las animaciones estén listadas en el NLA Editor, selecciona todos los objetos, ve a **File > Export > glTF2.0**. Expande Include y marca Selected Objects. Expande Animation, vuelve a expandir Animation y desmarca **Group by NLA Track**. Puedes renombrar el clip de animación en Merged Animation Name y luego simplemente presionar **Export glTF 2.0**.

![](/files/7a0e2b008de3befa4ee06893208d965151470af4)

*Settings para exportar múltiples animaciones como una sola.*

Ten en cuenta que esto solo funcionará si los objetos tienen una sola animación cada uno. Si los objetos tienen múltiples clips de animación, lo mejor es exportarlos por separado.

{% hint style="info" %}
**💡 Consejo**: En lugar de crear tus propias animaciones, también puedes descargar animaciones genéricas y aplicarlas a tu modelo. Por ejemplo, para personajes 3D con características humanas, puedes descargar animaciones gratuitas o de pago desde [Mixamo](https://www.mixamo.com/#/).
{% endhint %}

## Muestreo

A veces tu archivo de animación puede acabar siendo demasiado pesado debido a la cantidad de animaciones o a la combinación de animación+modelo.

El muestreo es una buena forma de optimizar la animación. La tasa de muestreo definirá con qué frecuencia se horneará un keyframe en la animación. Por ejemplo, si la tasa de muestreo se establece en 2, significa que se creará un keyframe cada dos frames. Una tasa de muestreo de 3 horneará un keyframe cada tres frames y así sucesivamente. Cuanto mayor sea la tasa de muestreo, más ligero será el archivo.

Sin embargo, la desventaja es que la animación empezará a ser cada vez menos fluida, ya que pierde algunos keyframes importantes (se distribuyen a lo largo de la animación de una manera desigual). También es importante notar que **el sampling NO consiste en dividir el número de frames de la animación por la tasa de sampling**.

Normalmente, una **tasa de muestreo de 2 o 3** hará el trabajo. Esos valores pueden optimizar la animación sin comprometer la calidad.

Puedes encontrar ***Tasa de muestreo*** en los ajustes de exportación, bajo ***Animación***.

![](/files/93a3387788edc0f3977cccd6c622570e8881c79e)

{% hint style="info" %}
**💡 Consejo**: Si el número de frames de la animación puede dividirse por la tasa de sampling, ¡eso es bueno! Significa que el frame final se horneará, preservando la transición del final al inicio de la animación.
{% endhint %}

## Implementar animaciones

Este documento explica cómo añadir animaciones a un modelo 3D. Consulta [**manejar animaciones**](https://docs.decentraland.org/creator/development-guide/3d-model-animations/) para obtener instrucciones sobre cómo activar y manejar animaciones en una escena.

## Mejores prácticas para animaciones

* Mantén la armature lo más simple posible, crea solo huesos para las partes del modelo que intentes animar. Los huesos pueden afectar el rendimiento, así que asegúrate de añadir solo lo que realmente sea necesario.
* Si la animación va a hacer loop en tu escena, asegúrate de que la pose final sea idéntica a la inicial para una mejor transición.
* Nunca dejes a un personaje sin animación, incluso si en realidad no está haciendo nada. Crea una animación de "idle" para cuando el personaje esté quieto. El idle puede incluir movimientos sutiles como respirar y quizá miradas ocasionales.
* No dejes huesos sin posar, como manos, dedos, cabeza o cuello. Los detalles son realmente importantes en una buena animación y un movimiento rígido solo hará que sea menos creíble.
* Evita demasiados keyframes, a menos que sea extremadamente necesario. Cuantos más keyframes añadas, mayores serán las posibilidades de obtener una mala interpolación y una animación más pesada.
* Selecciona todos tus huesos (incluidos los que deforman) y establece un keyframe en los primeros y últimos frames de tu animación. Esto evitará tener huesos sin información, haciendo que una animación afecte a la otra de forma no intencionada.
* Asegúrate de que tu archivo solo tenga una armature cuando lo exportes. Al importar animaciones, también se importará una armature con ellas. Todas las animaciones deben ser realizadas por la misma armature base, así que elimina todo lo que no necesites.
* Renombra siempre tus huesos y animaciones. ¡Mantén todo organizado!
* Al exportar el *glTF* modelo, confirma que estás exportando todos los objetos y animaciones. Algunos exportadores solo exportarán los ***actualmente seleccionados*** por defecto.
* Después de exportar el modelo, inspecciónalo en [Babylon Sandbox](https://sandbox.babylonjs.com/) y comprueba si todas las animaciones funcionan y tienen el nombre esperado.


---

# Agent Instructions: 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:

```
GET https://docs.decentraland.org/creator/content-creator-es/modelado-3d-y-animaciones/animations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
