Animaciones

Aprende cómo crear animaciones que pueden incrustarse en modelos 3D importados a Decentraland.

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ñadiendo algunas animaciones a tus modelos 3D.

💡 Consejo: Instala el plugin Blender de Decentraland Tools. Incluye varias funciones útiles para ayudarte a editar y exportar modelos 3D, wearables y emotes.

Hay varias formas de hacerlo: mediante animación de objeto, mediante un rig (animación esquelética), o usando shape keys (animación de morph target).

La animación de objeto es la mejor opción para modelos simples, como una pelota que rebota, un globo giratorio o una silla flotante, y no necesita armature. Es importante mencionar que la animación de objeto es diferente de la animación de vértices. En la animación de objeto, 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 son compatibles con el motor de Decentraland. Son especialmente útiles para expresiones faciales, sincronización labial 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 el mundo igual que las animaciones esqueléticas o de objeto.

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á la malla. El proceso de vincular la malla al esqueleto se llama Skinning, donde defines qué hueso afectará a cada grupo de vértices y cuánta 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.

Creando una animación

Así es como creas animaciones usando Blender.

Animación de objeto

  • Asegúrate de tener abierta la pestaña Dope Sheet > Action Editor y haz clic en New para añadir un clip de animación.

  • Renómbralo como prefieras y asegúrate de activar Fake User (el icono del escudo) para que tu animación se guarde.

  • Establece un keyframe en el primer frame seleccionando el objeto y pulsando I. Luego mueve el objeto, rótalo o escálalo y, en otro frame de la línea de tiempo, pulsa I de nuevo para establecer otro keyframe con las transformaciones actuales.

  • El frame final de la animación debería ser igual al primero, así que simplemente copia el primer frame y pégalo en el último.



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

Animación de rig

Para una animación de rig, necesitarás un armature. Si quieres hacerlo tú mismo, consulta Crear un Rig para obtener instrucciones sobre cómo configurar un armature consistente.

Cuando el rigging esté terminado y el skinning tenga buenas deformaciones, ¡ya estás listo para empezar tu animación! El proceso es muy similar al de la Animación de objeto, pero en lugar de hacerlo en Object Mode, la animarás en Pose Mode.

  • Ve a Pose Mode y asegúrate de tener el Dope Sheet > Action Editor y haz clic en New para añadir un clip de animación.

  • Renómbralo como prefieras y asegúrate de activar Fake User (el icono del escudo) para que tu animación se guarde.

  • Con el mouse sobre el Viewport, pulsa A para seleccionar todo y luego I para establecer un keyframe para todo el armature.

  • Muévete a un frame diferente en la línea de tiempo y manipula el hueso como quieras para conseguir 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 todo el armature. Sigue haciéndolo hasta terminar tu animación. Recuerda que el primer y el último frame deben ser iguales si la animación va a repetirse en bucle.



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

Video Preview

Animaciones con skinning vs Animaciones de transform

Las animaciones de transform suelen ser mejores que las animaciones de mallas con skinning en términos de rendimiento porque implican menos sobrecarga en recursos computacionales necesarios para mostrar la animación.

La animación de malla con skinning implica usar una malla con un esqueleto de huesos ponderados a los vértices de la malla. El esqueleto se anima, lo que a su vez anima la malla. Este proceso puede ser bastante costoso en términos computacionales, 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 malla con skinning, ya que normalmente hay menos propiedades de transform que animar que vértices en una malla.

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

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

Creando y exportando 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í.

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

Video Preview

Exportando muchas animaciones como una sola

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

Para hacer eso, desplaza hacia abajo a la Nonlinear Animation Track la animación de cada objeto, como se muestra abajo.



Desplaza hacia abajo la animación de cada objeto a la 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 solo pulsa Export glTF 2.0.



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 varios clips de animación, lo mejor es exportarlos por separado.

💡 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 similares a las humanas, puedes descargar animaciones gratuitas o de pago de Mixamo.

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, eso 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.

La desventaja, sin embargo, es que la animación empezará a ser cada vez menos fluida, ya que pierde algunos keyframes importantes (se distribuyen por la animación de forma desigual). También es importante notar que el muestreo NO consiste en dividir el número de frames de la animación por la tasa de muestreo.

Normalmente, una tasa de muestreo de 2 o 3 hará el truco. Esos números pueden optimizar la animación sin comprometer la calidad.

Puedes encontrar la Sampling Rate en la configuración de exportación, dentro de Animation.



💡 Consejo: ¡Si el número de frames de la animación puede dividirse por la tasa de muestreo, eso es algo bueno! Significa que el frame final se horneará, preservando la transición del final al inicio de la animación.

Implementando animaciones

Este documento cubre cómo añadir animaciones a un modelo 3D. Consulta manejar animaciones para obtener instrucciones sobre cómo activar y manejar animaciones en una escena.

Mejores prácticas para animaciones

  • Mantén el armature lo más simple posible, crea solo huesos para las partes del modelo que pretendes animar. Los huesos pueden afectar al rendimiento, así que asegúrate de añadir solo lo que realmente sea necesario.

  • Si la animación va a reproducirse en bucle 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, aunque en realidad no esté haciendo nada. Crea una animación "idle" para cuando el personaje esté quieto. El idle puede incluir movimientos sutiles como respirar y quizás 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 la hará menos creíble.

  • Evita demasiados keyframes, a menos que sea extremadamente necesario. Cuantos más keyframes añadas, mayores serán las probabilidades de obtener una mala interpolación y una animación más pesada.

  • Selecciona todos tus huesos (incluidos los deformadores) y establece un keyframe en el primer y último frame de tu animación. Esto evitará tener huesos sin información, causando que una animación afecte a la otra de forma no intencionada.

  • Asegúrate de que tu archivo solo tenga un armature cuando lo exportes. Al importar animaciones, también se importará un armature junto con ellas. Todas las animaciones deben ser realizadas por el mismo armature base, así que elimina cualquier cosa 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 el actualmente seleccionado por defecto.

  • Después de exportar el modelo, inspecciónalo en Babylon Sandbox y comprueba si todas las animaciones funcionan y tienen los nombres esperados.

Última actualización