Docs Salida

Exportar un esqueleto para motores de juego

Archivo ▸ Exportar ▸ Esqueleto (JSON)… escribe un rig de huesos y sus animaciones como datos que un motor de juego puede reproducir, en lugar de renderizarlos como imágenes.

Una hoja de sprites guarda cada fotograma como una imagen. Una exportación de esqueleto guarda en cambio el rig: los huesos, las imágenes colgadas de ellos y cómo se mueven los huesos con el tiempo. El motor dibuja entonces al personaje por su cuenta, así que la animación ocupa poco y se reproduce con fluidez a cualquier tamaño y velocidad de fotogramas.

Exportar

  1. Elige Archivo ▸ Exportar ▸ Esqueleto (JSON)….
  2. Elige una carpeta. La exportación escribe varios archivos, así que pide una carpeta en lugar de un nombre de archivo.
  3. Los archivos se escriben al momento. No hay ajustes que elegir.

La carpeta recibe skeleton.json, una imagen de atlas skeleton.png con las imágenes adjuntas a los huesos y un PNG por malla, con el nombre de la capa de malla. Un carácter que no cabe en un nombre de archivo se sustituye, y cuando dos mallas comparten nombre, el segundo archivo recibe un número añadido. Los nombres son fijos, así que exportar otra vez el mismo proyecto sustituye los mismos archivos.

Qué contiene el archivo

La estructura se inspira en la de Spine: huesos, slots, adjuntos y animaciones. No es un archivo de Spine, y ningún runtime oficial de Spine lo lee, pero su forma es lo bastante conocida como para que un importador para tu motor solo haya que escribirlo una vez.

ParteQué contiene
HuesosCada hueso de cada capa de hueso, con su pose de reposo relativa a su padre. Los huesos estáticos, los objetivos de IK, se dejan fuera: su efecto ya está en los huesos que mueven
Adjuntos de mallaCada capa de malla, con sus vértices en reposo, sus triángulos y el peso de cada hueso sobre cada vértice
Adjuntos de regiónLas capas que siguen a un hueso de forma rígida mediante Vincular capa, colocadas en el atlas con su desfase fijo respecto al hueso
AnimacionesUna animación por cada marcador de grupo de la línea de tiempo, con el nombre del marcador. Sin marcadores de grupo hay una sola animación llamada default, del punto de entrada al punto de salida

Todo lo que el motor tendría que reproducir por su cuenta se hornea en números sencillos: el IK, la dinámica de huesos, los huesos de control y las acciones se convierten en claves normales de rotación, traslación y escala. Cuando una acción da forma a una malla de una manera que los pesos de los huesos no pueden expresar, esa animación guarda en cambio las posiciones de los vértices de la malla fotograma a fotograma, así que el motor no necesita saber cómo funcionan las acciones.

Lo que todavía no se incluye

  • Las capas que se mueven con sus propios fotogramas clave y no están vinculadas a ningún hueso. Expórtalas como hoja de sprites o como secuencia PNG.
  • El seguimiento automático dentro de una capa de huesos. Solo se exportan los pesos que vinculaste o pintaste y las capas vinculadas con Vincular capa, así que una capa que sigue al rig solo mediante la vinculación Flexible o Región no se mueve en la exportación.
  • Una malla que además tiene su propia posición, rotación o escala por encima de sus huesos.
  • Las restricciones de IK, de transformación, de trazado y de física como restricciones dinámicas, los eventos y las skins para cambiar de vestuario.
Solo los huesos que se desplazan reciben claves de traslación y de escala; la mayoría de los huesos solo giran, así que sus animaciones llevan solo rotación. Eso mantiene el archivo pequeño.