Creación de Emotes
Consejos y pautas para crear Emotes de Decentraland.
Esta documentación cubrirá las especificaciones del archivo, los conceptos básicos de la animación en Blender, la forma correcta de exportar un Emote y cómo importarlo en el Builder.
Tabla de especificaciones de animación
Longitud máxima
10 segundos (300 frames)
Animaciones por archivo
1
Formato de exportación
.glb
Tasa de muestreo
1 por defecto (2 o 3 si es necesario)
Tamaño máximo del archivo
1 MB
Distancia máxima de la animación
1 metro (frente/atrás, izquierda/derecha)
Altura máxima de la animación
4 metros
Puedes encontrar una explicación más detallada de las especificaciones de animación a continuación.
Recursos
Esta documentación explica la configuración de Rig 1.0, sus controles y sus funciones.
Si usas Maya, puedes descargar este Maya Rig y selector proporcionado por SparkleStudios ❤️.
Antes de empezar
Velocidad de fotogramas
Antes de empezar, es importante comprobar la velocidad de fotogramas. Las animaciones de Decentraland deben tener una velocidad de fotogramas de 30 fps. El archivo del rig proporcionado probablemente ya la tenga configurada, pero como el valor predeterminado de Blender es 24 fps, conviene comprobarlo antes de empezar (una velocidad de fotogramas incorrecta afectará la velocidad de la animación). Esa opción se puede encontrar en Output Properties (el icono de la impresora) dentro de Format, como se muestra a continuación:

Asegúrate de que la velocidad de fotogramas esté configurada en 30 fps antes de empezar.
Pose Mode
En Blender, un rig puede verse en tres modos diferentes: Object Mode, Edit Mode y Pose Mode. Las animaciones solo se pueden hacer en Pose Mode (en ese modo, los controles tienen colores). Con el rig seleccionado, encontrarás esa opción en un menú desplegable, en la parte superior derecha.

Cambiando a Pose Mode.
Interfaz para animaciones
En el archivo del rig, aparte de las dos ventanas de la viewport (vista frontal y lateral), hay tres más en la parte inferior: un Graph Editor, un Dope Sheet, y una Timeline.
Graph Editor: En este editor, es posible editar las curvas de animación de cada propiedad de transformación de los controles seleccionados. Esas curvas muestran cómo se está calculando la interpolación y pueden editarse para lograr el efecto deseado en la animación. Tanto aquí como en el dope sheet está activada la herramienta Only Show Selected lo que significa que solo incluirá los canales relacionados con el control seleccionado. Esto puede activarse o desactivarse simplemente haciendo clic en el icono de la flecha.
Dope Sheet: Aquí puedes editar los keyframes. También es donde puedes crear nuevas animaciones o recorrer las múltiples que se hayan creado. Ten en cuenta que para tener acceso a la animación, debe seleccionarse el Action Editor Esta opción está justo al lado del icono de Dope Sheet , en un menú desplegable.
Timeline: Aquí es donde se encuentran la Timeline y los controles de reproducción. Aquí, Auto Keying está activado, lo que significa que cada vez que se manipula un control se crea automáticamente un keyframe. Siempre puedes desactivar esa función haciendo clic en el punto junto a los controles de reproducción.
Con este espacio de trabajo, ¡tienes todo lo necesario para empezar a animar!

Estas son las ventanas inferiores. La superior está en el Graph Editor, la del medio en el Dope Sheet, y la inferior es la Timeline. La flecha roja superior muestra la herramienta Only Show Selected y la inferior muestra la Auto Keying.
💡 ¡Consejo!
Como Blender es altamente personalizable, este también es un buen momento para configurar la distribución que mejor se adapte a ti, añadiendo, ajustando o eliminando ventanas. Cada animador tiene sus propias preferencias, así que siéntete libre de editar la distribución como quieras.
Primeros pasos
Pose inicial
En el archivo del rig proporcionado, ya hay una acción, la Starting_Pose. Considerando que todas las acciones del avatar comienzan desde la pose idle, realmente recomendamos empezar tu animación desde esa pose y usarla también en el último frame. Esto hará que la transición de Idle a Emote sea mejor y la animación más fluida.
💡 ¡Consejo!
Si quieres hacer una animación en loop, no hace falta empezar la animación desde la Starting Pose. ¡Siéntete libre de usar la pose que tenga más sentido en tu animación!**
Área de animación
En el archivo del avatar proporcionado, encontrarás una colección llamada Animation_Area_Reference. Está compuesta por tres objetos que ayudarán visualmente a establecer los límites de la animación: Animation_Area_Reference, Ground_Reference y Root_Animation_Area.
Animation_Area_Reference es un cubo de 4x4, que es la bounding box. La malla del Avatar y los props deben permanecer dentro de esta área durante toda la animación. Los props pueden moverse libremente siempre que permanezcan dentro del área del cubo.
Ground_Reference es un plano proporcionado para ayudar a comprobar si hay penetración en el suelo durante la animación. También contiene información importante: el círculo más pequeño, que tiene un diámetro de 2 metros, define el área donde se puede mover el root del avatar. Eso significa que, mientras esté en el suelo, el avatar solo puede moverse 1 metro en cada dirección: delante, detrás, izquierda y derecha.
Root_Animation_Area es un cilindro que define el área donde puedes mover el root/centro de gravedad del avatar (CTRL_Avatar_UpperBody o Avatar_Hips). El cilindro tiene 4 metros de alto, lo que significa que el root puede subir hasta arriba siempre que ninguna malla quede fuera de la bounding box. Las piernas, brazos y otras partes del cuerpo del avatar pueden quedar fuera del cilindro, siempre que nunca queden fuera de Animation_Area_Reference.

En resumen, el avatar puede moverse a la derecha, izquierda, delante y detrás siempre que el root permanezca dentro del cilindro, lo que significa 1 metro en cualquiera de las cuatro direcciones.

En cuanto a la altura, puede subir hasta arriba (máx. 4 metros) siempre que el avatar permanezca dentro de la bounding box. A continuación hay algunos casos de altura del avatar correctos (cuerpo completo dentro de la bounding box) y otros incorrectos (malla fuera de la bounding box).





Aquí hay algunos ejemplos de emotes que están dentro de los límites del área de animación.


💡 ¡Atención!
Ten cuidado con estos límites porque cruzarlos podría causar problemas de gameplay.
Crear una animación
El archivo blend tiene un clip de animación listo para editar: StartingPose_Avatar. Puedes duplicar y renombrar ese clip de animación como prefieras. ¡No hace falta crear uno desde cero!
En la sección Browse Action , simplemente haz clic en el botón Create A New Action para duplicar la animación actual. Para renombrar el clip, solo haz clic en el texto y escribe otro nombre.
Belnder 4.4 introdujo Slotted Actions, el icono a la derecha de la sección Browse Action de versiones anteriores. No hace falta tocar eso si estás creando un emote sin prop, así que puedes dejarlo tal como está. Si estás animando el avatar, asegúrate de que la slotted action sea Avatar_Animation.

Crea una nueva animación duplicando la existente o haciendo clic en Unlink Action y luego en New.
Explorar y eliminar animaciones
En Blender, puedes tener varias pistas de animación en el mismo archivo. Es posible explorarlas haciendo clic en el menú desplegable Browse Action. Todas las animaciones con una F (Fake User) se guardarán. Para eliminar una animación, pulsa Shift en el teclado y haz clic en la X. Después de hacer eso, la animación mostrará un 0 junto a ella, lo que significa que se eliminará la próxima vez que cierres Blender o vuelvas a abrir el archivo.

Explorando animaciones: las que tienen una F se guardarán, y las que tienen un 0 se eliminarán.
Otra forma de eliminar animaciones sin tener que recargar Blender es cambiando el Display Mode de View Layer a Blender File. Expande Actions y elimina cualquier animación no deseada haciendo clic derecho sobre ellas y seleccionando Delete.

Puedes eliminar animaciones directamente desde Blender File en Display Mode en el outliner.
💡 ¡Consejo!
No edites siempre la misma pista de animación. Antes de hacer cambios importantes, simplemente duplica la animación. Así tendrás una versión de respaldo por si te arrepientes de borrar o cambiar algo. ¡También es una buena forma de llevar un registro del progreso hecho hasta ahora!

Duplicando clips de animación.
Nombrado
El nombre de una animación debe empezar con una letra mayúscula y, si el nombre tiene más de una palabra, las palabras deben separarse con _. No uses espacios ni caracteres especiales. Aquí hay algunos ejemplos de nombres:
Snowfall
Rainbow_Dance
Throw_Money
Talk_To_Hand
Anulaciones de Emote
Las anulaciones de Emote ocurren cuando los deform bones no tienen un keyframe establecido en uno de los parámetros. Sin un keyframe, ese bone no tendrá la información de dónde debe estar, cuánto ha sido rotado y escalado, dejando ese canal abierto. La consecuencia es que si reproduces un emote en world y luego activas el tuyo mientras el anterior todavía se está reproduciendo, la información de ubicación, rotación y escala será sobrescrita por el emote anterior, lo que causará una combinación de ambos. A menos que esto se haga a propósito, afectará tu animación, a veces con un resultado divertido, pero otras veces dejando el emote completamente desordenado. A continuación hay un ejemplo de una anulación de emote.

Para evitar eso, selecciona todas las layers que tengan bones en ellas (que se pueden encontrar en Object Data Properties > Skeleton > Layers). Luego, en Pose Mode, deja el cursor de la Timeline en el primer frame de tu animación y, con el mouse en Viewport Display, presiona A para seleccionar todo. En Graph Editor, haz doble clic en el icono de Eye junto al canal del armature para hacer visibles todos los canales. Con todos los bones seleccionados, presiona I para establecer un keyframe. Haz lo mismo para el último frame.
Asegúrate de seleccionar los deform bones, ¡esto es especialmente importante! Los deform bones se pueden encontrar en la última layer inferior y se muestran como bones verdes en el Viewport.
Establecer keyframes en todos los bones en el primer y último frame evita las anulaciones de Emote.
Las especificaciones de animación
La duración de la animación
La duración máxima de una animación es 10 segundos o 300 frames. Recuerda crear keyframes para las propiedades de cada control en el primer y último frame.
⚠️ Los canales con la visibilidad desactivada en el Graph Editor no tendrán keyframes, no se eliminarán ni siquiera se mostrarán en el Action Editor. A menos que se haya hecho intencionalmente de esa manera, presta especial atención a la visibilidad.

¡Haz visibles los canales antes de crear keyframes!
Número de animaciones
Si se trata de un emote estándar (sin prop), el archivo exportado solo puede tener una animación. Para los emotes 2.0 puedes tener un clip para el avatar y un clip para el prop. Si se duplicaron animaciones durante el proceso, asegúrate de eliminarlas todas antes de exportar. Conserva solo la versión final. Los emotes en secuencia que necesitan muchas animaciones para funcionar (action start, action loop y action end) no son compatibles por ahora.
Formato
Las animaciones deben exportarse como .GLB. El archivo solo puede contener el esqueleto deformador y la animación. La malla, los controles y cualquier otro objeto no deben exportarse. Se pueden encontrar más detalles sobre cómo exportar a continuación.
Muestreo
Como las constraints no se pueden exportar, la única forma de exportar el clip de animación es horneándolo, lo que significa que las posiciones, rotación y escala de todos los deform bones tendrán keyframes en cada frame de la animación. Si el clip es demasiado largo, como hasta 300 frames, tendrá 300 keyframes después de exportarlo, y cuantos más keyframes tenga, más pesado será el archivo.
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, el inconveniente 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 manera 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 trabajo. Esos valores pueden optimizar la animación sin comprometer la calidad.
💡 ¡Consejo!
Si el número de frames de la animación puede dividirse por la tasa de muestreo, ¡eso es bueno! Significa que el frame final se horneará, preservando la transición del final al inicio de la animación.
Tamaño del archivo
El tamaño máximo del archivo es 3 MB. Si el archivo supera ese tamaño después de exportarlo, intenta comprobar si la malla no se exportó por accidente o si la animación no supera los 10 segundos. Si aún supera los 3 MB, intenta experimentar con la tasa de muestreo, ya que los valores más altos mejorarán la optimización.
Si el emote contiene algún modelo 3D adicional, las texturas de estos modelos no pueden exceder un tamaño de 1024 píxeles.
Exportando
Como solo queremos exportar el armature y la animación, desactiva la visibilidad de la malla y de cualquier objeto que no sea el armature antes de exportar, como se muestra a continuación:

¡Desactiva la visibilidad de la malla antes de exportar!
Para exportar, ve a File > Export > glTF2.0 (.glb, .gltf)

En la configuración de exportación, expande Include y en Limit to activa Visible Objects. Luego, expande la pestaña Data, expande Armature y habilita Export Deformation Bones Only.


Si necesitas muestrear la animación, expande la pestaña Animation, expande Sampling Animations y elige el número de samples deseado.


¡Eso es todo para exportar la animación!
Referencias
Si aún no estás seguro de por dónde empezar o necesitas alguna referencia o inspiración, aquí tienes algunos clips de animación para ayudarte con eso. ¡Pueden servirte como buen material de estudio!
Última actualización