Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Esqueletos 2D

Introducción

When working with 3D, skeletal deforms are common for characters and creatures and most 3D modeling applications support it. For 2D, as this function is not used as often, it's difficult to find mainstream software aimed for this.

Una opción es crear animaciones en software de terceros como Spine o Dragonbones. A partir de Godot 3.1, sin embargo, esta funcionalidad es soportada de forma integrada.

¿Por qué querrías hacer animaciones de esqueletos directamente en Godot? La respuesta es que tiene muchas ventajas:

  • Mejor integración con el motor, así que menos problemas para importar y editar desde una herramienta externa.

  • Capacidad de controlar los sistemas de partículas, shaders, sonidos, scripts de llamada, colores, transparencia, etc. en las animaciones.

  • El sistema esquelético incorporado en Godot es muy eficiente y está diseñado para el rendimiento.

El siguiente tutorial explicará las deformaciones esqueléticas en 2D.

Organización

Ver también

Antes de empezar, te recomendamos que repases el tutorial Animación de cortes para obtener una comprensión general de la animación dentro de Godot.

Para este tutorial, usaremos una sola imagen para construir nuestro personaje. Descárgalo de gBot_pieces.png o guarda la imagen de abajo.

../../_images/gBot_pieces.png

También se aconseja descargar la imagen del personaje final gBot_complete.png para tener una buena referencia para juntar las diferentes piezas.

../../_images/gBot_complete.png

Creando los polígonos

Create a new scene for your model (if it's going to be an animated character, you may want to use a CharacterBody2D). For ease of use, an empty 2D node is created as a root for the polygons.

Comienza con un nodo Polygon2D. No hay necesidad de colocarlo en ningún lugar de la escena por ahora, así que simplemente créalo así:

../../_images/skel2d1.png

Selecciónelo y asigne la textura con las piezas del personaje que ha descargado antes:

../../_images/skel2d2.png

No se aconseja dibujar un polígono directamente. En su lugar, abra el cuadro de diálogo "UV" para el polígono:

../../_images/skel2d3.png

Diríjase al modo Puntos, seleccione el lápiz y dibuje un polígono alrededor de la pieza deseada:

../../_images/skel2d4.png

Duplica el nodo poligono y dale un nombre propio. Luego, entra de nuevo en el cuadro de diálogo "UV" y reemplace el antiguo polígono por otro en la nueva pieza deseada.

Cuando duplicas los nodos y la siguiente pieza tiene una forma similar, puedes editar el polígono anterior en lugar de dibujar uno nuevo.

After moving the polygon, remember to update the UV by selecting Edit > Copy Polygon to UV in the Polygon 2D UV Editor.

../../_images/skel2d5.png

Sigue haciendo esto hasta que hayas mapeado todas las piezas.

../../_images/skel2d6.png

Notarán que las piezas para los nodos aparecen en la misma disposición que en la textura original. Esto se debe a que por defecto, cuando se dibuja un polígono, el UV y los puntos son los mismos.

Reorganizar las piezas y construir el personaje. Esto debería ser bastante rápido. No hay necesidad de cambiar los pivotes, así que no te molestes en asegurarte de que los pivotes de rotación de cada pieza son los correctos; puedes dejarlos así por ahora.

../../_images/skel2d7.png

Ah, el orden visual de las piezas no es correcto todavía, ya que algunas están cubriendo piezas equivocadas. Reorganiza el orden de los nodos para arreglar esto:

../../_images/skel2d8.png

¡Y ahí lo tienes! Definitivamente fue mucho más fácil que en el tutorial de recortes.

Creando el esqueleto

Crear un nodo Skeleton2D como hijo del nodo raíz. Esta será la base de nuestro esqueleto:

../../_images/skel2d9.png

Crear un nodo Bone2D como un hijo del esqueleto. Ponlo en la cadera (normalmente los esqueletos empiezan aquí). El hueso estará apuntando a la derecha, pero puedes ignorar esto por ahora.

../../_images/skel2d10.png

Sigue creando huesos en jerarquía y nombrándolos como corresponde.

../../_images/skel2d11.png

Al final de esta cadena, habrá un nodo de mandíbula. Es, de nuevo, muy corto y apunta a la derecha. Esto es normal para los huesos sin hijos. La longitud de los huesos de la punta puede ser cambiada con una propiedad en el inspector:

../../_images/skel2d12.png

En este caso, no necesitamos rotar el hueso (casualmente la mandíbula apunta justo en el sprite), pero en caso de que lo necesites, siéntete libre de hacerlo. Una vez más, esto sólo es realmente necesario para los huesos de las puntas ya que los nodos con hijos no suelen necesitar una longitud o una rotación específica.

Sigue adelante y construye todo el esqueleto:

../../_images/skel2d13.png

Notarán que todos los huesos levantan una molesta advertencia sobre la falta de una postura de descanso. Esto significa que es hora de establecer una. Ve al nodo esqueleto y crea una pose de descanso. Esta pose es la predeterminada, puedes volver a ella cuando quieras (lo cual es muy útil para la animación):

../../_images/skel2d14.png

Las advertencias desaparecerán. Si modificas el esqueleto (añadir/quitar huesos) tendrás que volver a establecer la pose de descanso.

Deformando los polígonos

Selecciona los polígonos previamente creados y asigna el nodo esqueleto a su propiedad Skeleton. Esto asegurará que eventualmente puedan ser deformados por ella.

../../_images/skel2d15.png

Haga clic en la propiedad resaltada arriba y seleccione el nodo esqueleto:

../../_images/skel2d16.png

De nuevo, abre el editor de UV para el polígono y ve a la sección Bones.

../../_images/skel2d17.png

No podrás pintar pesas todavía. Para esto necesitas sincronizar la lista de huesos del esqueleto con el polígono. Este paso se hace una sola vez y manualmente (a menos que modifiques el esqueleto añadiendo/quitando/renombrando huesos). Asegura que la información de tu aparejo se mantenga en el polígono, incluso si un nodo del esqueleto se pierde accidentalmente o el esqueleto se modifica. Presiona el botón "Sincronizar Huesos a Polígono" para sincronizar la lista.

../../_images/skel2d18.png

La lista de huesos aparecerá automáticamente. Por defecto, su polígono no tiene asignado ningún peso a ninguno de ellos. Selecciona los huesos a los que quieres asignar peso y píntalos:

../../_images/skel2d19.png

Los puntos en blanco tienen un peso completo asignado, mientras que los puntos en negro no están influenciados por el hueso. Si el mismo punto se pinta de blanco para varios huesos, la influencia se distribuirá entre ellos (por lo que normalmente no hay tanta necesidad de usar tonos intermedios a menos que se quiera pulir el efecto de flexión).

../../_images/skel2d20.gif

Después de pintar los pesos, animar los huesos (¡NO los polígonos!) tendrá el efecto deseado de modificar y doblar los polígonos en consecuencia. Como sólo necesitas animar los huesos en este enfoque, el trabajo se hace mucho más fácil!

Pero no todo son rosas. Tratar de animar los huesos que doblan el polígono a menudo dará resultados inesperados:

../../_images/skel2d21.gif

Esto sucede porque Godot genera triángulos internos que conectan los puntos al dibujar el polígono. No siempre se doblan de la manera que se esperaría. Para resolver esto, necesitas establecer pistas en la geometría para aclarar cómo esperas que se deforme.

Vértices internos

Abre el menú de UV para cada hueso de nuevo y ve a la sección de Puntos. Añade algunos vértices internos en las regiones donde esperas que la geometría se doble:

../../_images/skel2d22.png

Ahora, ve a la sección Polígono y redefine tus propios polígonos con más detalle. Imagina que, a medida que tus polígonos se doblan, necesitas asegurarte de que se deformen lo menos posible, así que experimenta un poco para encontrar la configuración correcta.

../../_images/skel2d23.png

Una vez que empiece a dibujar, el polígono original desaparecerá y usted será libre de crear el suyo propio:

../../_images/skel2d24.png

Esta cantidad de detalles suele estar bien, aunque puede que quieras tener un control más fino sobre dónde van los triángulos. Experimenta por ti mismo hasta que obtengas los resultados que te gustan.

Nota: ¡No olvides que tus nuevos vértices internos también necesitan ser pintados con peso! Ve a la sección de "Huesos" de nuevo para asignarlos a los huesos correctos.

Una vez que esté todo listo, obtendrá resultados mucho mejores:

../../_images/skel2d25.gif