CommunityImagengithub.com

sprite-generator

Crear, reparar, validar, previsualizar y empaquetar sprites listos para Godot a partir de referencias o descripciones detalladas.

¿Qué es sprite-generator?

El skill Sprite Generator está diseñado para desarrolladores de juegos que usan Godot y necesitan activos 2D profesionales, desde personajes y props hasta mapas y animaciones. Se encarga de planificar prompts, limpiar fondos de croma, extraer fotogramas, componer atlas, realizar control de calidad y generar recursos de integración para Godot, como archivos SpriteFrames y escenas AnimatedSprite2D. El skill delega la generación artística real en la herramienta de generación de imágenes instalada (como el skill `$imagegen` en Codex o la generación nativa de ChatGPT), usando scripts locales solo para pasos deterministas. Es agnóstico en cuanto a estilo: acepta imágenes de referencia, descripciones o briefs de dirección de arte, y produce activos con nombres predecibles, fondos transparentes, atlas limpios y metadatos de fotogramas. Su flujo de trabajo incluye preparación de carpetas, inspección de trabajos, generación visual, registro de resultados, finalización y empaquetado para Godot, con un proceso de reparación iterativo basado en una rúbrica de calidad estricta. Es compatible con entornos como Codex, Cursor y ChatGPT, y está optimizado para evitar costosos errores al solicitar aclaraciones solo cuando es necesario.

Compatible con~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Vel-Labs/Vel-Skills/tree/HEAD/skills/game/sprite-generator

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Sprite Generator

Salidas

Sprites generados y validados, previsualizaciones y artefactos de integración con Godot.

No objetivos

Usar scripts de dibujo locales como sustituto de la generación real de imágenes.

Propósito

Crear sprites 2D orientados a producción a partir de un concepto, una o más imágenes de referencia, o un brief detallado de dirección de arte. El skill es intencionalmente agnóstico en cuanto al estilo: el usuario puede proporcionar una imagen de referencia, una tarjeta de estilo, una captura de pantalla o una descripción vívida, y el flujo de trabajo la convierte en una ejecución reutilizable de generación de sprites con prompts, imágenes de anclaje, una referencia base generada, trabajos de animación/estado, extracción determinista, control de calidad y archivos iniciales para Godot.

El objetivo no es solo hacer una imagen bonita. El objetivo es producir activos que se puedan colocar en un proyecto de Godot con nombres de archivo predecibles, fondos transparentes, atlas limpios, metadatos de fotogramas, hojas de contacto de control de calidad y recursos iniciales de SpriteFrames.

Usa este skill para solicitudes como:

  • "Crea muebles para una casa con versiones limpia y sucia".
  • "Haz un personaje en este estilo artístico con animaciones de inactivo, caminar, señalar y limpiar".
  • "Crea un mapa de habitación de casa de muñecas en el mismo estilo que esta referencia".
  • "Genera variantes alternativas de vestimenta/color y mantén las mismas proporciones corporales".
  • "Convierte este boceto de objeto en un sprite de prop transparente listo para el juego".

Entradas

Acepta cualquier combinación de estas entradas:

  • Imágenes de referencia: hoja de estilo, personaje existente, prop, captura de pantalla, tablero de inspiración, paleta, sprite generado previamente o captura del juego.
  • Descripción vívida: nombre del activo, rol, forma, material, color, escala, ángulo de cámara, uso previsto y adjetivos de estilo.
  • Tipo de activo: character, npc, player, furniture, prop, object, map, room, dollhouse o sprite genérico.
  • Animaciones: acciones nombradas, recuentos de fotogramas, direcciones, comportamiento de bucle/una sola vez, duraciones o FPS, y notas de poses especiales.
  • Estados y variantes: limpio/sucio, abierto/cerrado, sano/marchito, vacío/lleno, vestimenta A/B, conjunto de colores, niveles de daño, etc.
  • Destino de integración: versión de Godot, tamaño de celda, columnas del atlas, escala, cámara de arriba hacia abajo/isométrica/vista lateral y ruta de importación preferida.

Si el usuario omite detalles, infiere valores predeterminados sensatos y facilita la iteración de la salida. No te detengas en cada detalle faltante. Haz una pregunta aclaratoria solo cuando la omisión cause un trabajo costoso incorrecto, como un estilo desconocido, una identidad de personaje desconocida o una lista de animaciones requerida.

Delegación de Generación Visual

El arte real debe generarse con la capacidad de generación de imágenes del entorno, no con scripts locales. En un entorno de skill tipo Codex, delega al skill $imagegen instalado si está disponible. En ChatGPT, usa la herramienta nativa de generación de imágenes cuando el usuario pida crear realmente el activo visual. Los scripts Python incluidos son solo para pasos de producción deterministas.

Pasos deterministas permitidos:

  • crear carpetas de ejecución y archivos de prompt
  • copiar referencias estables en la ejecución
  • crear imágenes guía de diseño
  • registrar las salidas generadas seleccionadas
  • eliminar un fondo de croma plana
  • dividir tiras en fotogramas
  • recortar, escalar, rellenar y centrar fotogramas en celdas consistentes
  • componer atlas PNG/WebP
  • generar hojas de contacto y previsualizaciones GIF
  • escribir manifiestos JSON y recursos iniciales de Godot

Límite estricto: no dibujar, pintar, sintetizar, teselar, deformar ni inventar el arte del sprite con Pillow, SVG, CSS, HTML canvas o formas programáticas como sustituto de la generación de imágenes. Los scripts pueden procesar imágenes generadas; no pueden usarse como un generador de arte oculto.

Captura y Bloqueo de Estilo

Cuando se proporciona una referencia de estilo, trátala como la fuente de verdad. Extrae estas cualidades en el plan de prompt:

  • ángulo de cámara y perspectiva: frontal, lateral, de arriba hacia abajo, isométrica, 3/4, casa de muñecas, ortográfica
  • proporciones: chibi, realista, rechoncho, alto, de juguete, pixelado, pictórico, vectorial plano, renderizado de bajo polígono
  • tratamiento de línea y borde: sin contorno, contorno grueso, borde suave renderizado, borde pixelado, borde con sombreado cel
  • materiales e iluminación: arcilla, peluche, juguete de plástico, 3D pintado, cel plano, brillante, mate, acuarela, etc.
  • paleta y saturación
  • política de sombras: ninguna para sprites transparentes a menos que se retenga explícitamente como parte del objeto
  • política de fondo: transparente o croma plana para extracción
  • escala y legibilidad en el tamaño de celda objetivo

Una fila o estado falla si parece un activo relacionado en un estilo diferente en lugar del mismo activo en el estilo objetivo.

Valores Predeterminados por Tipo de Activo

Personajes/NPCs/Jugadores

Salidas predeterminadas si el usuario no especifica animaciones:

AnimaciónFotogramasPropósito
idle4Bucle de respiración/parpadeo; el primer fotograma funciona como pose estática
walk_down6Movimiento frontal/hacia abajo
walk_up6Movimiento trasero/hacia arriba
walk_left6Movimiento lateral hacia la izquierda
walk_right6Movimiento lateral hacia la derecha

Acciones comunes opcionales: point, talk, pickup, carry, clean, use_item, sit, sleep, cry, celebrate, fail, interact, attack, cast, jump, push, pull.

Muebles/Props/Objetos

Salidas predeterminadas si el usuario no especifica estados:

EstadoFotogramasPropósito
clean1Estado normal/ordenado
dirty1Estado sucio/desordenado del mismo objeto

Estados comunes opcionales: empty, half_full, full, overflowing, open, closed, on, off, healthy, wilted, broken, repaired, selected, highlighted, locked, unlocked.

Mapas/Habitaciones/Casas de Muñecas

La salida predeterminada es un sprite map_base grande o fondo. Para habitaciones, especifica si necesitas una sola capa de arte aplanada o capas separadas como floor, walls, furniture, interactables, path_overlay y collision_reference. No incluyas etiquetas de interfaz de usuario, flechas, líneas de ruta o superposiciones de tutoriales en el arte del mapa de producción a menos que se soliciten como una superposición separada.

Reglas de Fondo y Transparencia

Prefiere fondos de croma plana para la generación cuando la herramienta de imágenes no produzca un canal alfa confiable. La clave predeterminada es #00ff00. El atlas final debe ser PNG/WebP transparente después de la extracción.

Para imágenes fuente generadas:

  • usa un color de fondo plano en toda la tira o renderizado del objeto
  • mantén el activo visualmente separado de la croma
  • evita reflejos o materiales verdes cuando uses clave verde; elige clave magenta o azul si el activo necesita verde
  • sin fondo blanco, fondo de tablero de ajedrez, panel de interfaz de usuario, etiquetas, números de fotograma, cuadrícula visible, borde o paisaje
  • sin sombras proyectadas, sombras de piso, destellos, halos transparentes suaves, nubes de polvo, líneas de velocidad, estelas de movimiento o efectos sueltos y separados a menos que un efecto opaco pequeño y adjunto sea explícitamente parte del sprite
  • cada fotograma debe estar completo, separado, sin recortar y dentro de su ranura

Reglas de Prompting de Animación

Para cada fila/tira de animación:

  • solicita exactamente el número de fotogramas declarado
  • especifica el diseño: generalmente tira horizontal de izquierda a derecha
  • usa una imagen base canónica e imágenes de referencia como entradas de anclaje
  • mantén la identidad, proporciones, paleta, material, estilo de contorno/borde y ángulo de cámara consistentes
  • comunica el movimiento a través de cambios de pose, no a través de desenfoque, líneas de velocidad, polvo o sombras
  • el primer y el último fotograma deben hacer bucle limpiamente cuando loop=true
  • para animaciones direccionales, solicita la dirección explícitamente y evita detalles reflejados accidentales si el personaje tiene accesorios laterales

No aceptes una fila si cambia la cara, forma del cuerpo, vestimenta, diseño del prop, estilo de material o escala del personaje en relación con la base.

Plan de Progreso Visible

Para una ejecución normal de activos, mantén una lista de verificación visible para el usuario:

  1. Preparando la solicitud de activo.
  2. Creando el aspecto canónico.
  3. Creando estados y filas de animación.
  4. Empaquetando para Godot.

Qué significa cada paso:

  • Preparando la solicitud de activo: establecer nombre del activo, tipo de activo, fuente de estilo, salidas, tamaño de celda, croma y directorio de ejecución.
  • Creando el aspecto canónico: generar o elegir la referencia base que se convierte en el bloqueo de identidad/estilo.
  • Creando estados y filas de animación: generar cada trabajo de salida usando la base y las referencias; reparar solo las filas/estados que fallan.
  • Empaquetando para Godot: extraer fotogramas, componer atlas, crear hoja de contacto de control de calidad, escribir manifiestos, escribir recurso inicial de SpriteFrames e informar rutas de archivo.

Solo marca un paso como completo cuando el archivo o decisión real exista.

Flujo de Trabajo

1. Preparar una carpeta de ejecución

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Caja de Mercado" \
  --asset-type prop \
  --description "caja de madera legible con contenido colorido" \
  --style-notes "coincidir con la referencia de arte del juego proporcionada" \
  --reference /ruta/absoluta/a/la/referencia_de_estilo.png \
  --state full:1:"caja llena de artículos":single:once \
  --state empty:1:"la misma caja vacía":single:once \
  --cell-size 256x256 \
  --columns 2 \
  --output-dir /ruta/absoluta/a/la/ejecucion

Para un personaje:

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Jugador" \
  --asset-type character \
  --description "personaje jugador amigable con una silueta clara" \
  --reference /ruta/absoluta/a/la/referencia_de_estilo.png \
  --animation idle:4:"respiración suave y parpadeo" \
  --animation walk_down:6:"caminando hacia la cámara" \
  --animation walk_up:6:"caminando alejándose de la cámara" \
  --animation walk_left:6:"caminando vista lateral izquierda" \
  --animation walk_right:6:"caminando vista lateral derecha" \
  --cell-size 256x320 \
  --columns 6 \
  --output-dir /ruta/absoluta/a/la/ejecucion

Las ejecuciones avanzadas se pueden describir con un archivo de configuración JSON y pasarse con --config.

2. Inspeccionar trabajos listos

python3 ./scripts/sprite_job_status.py --run-dir /ruta/absoluta/a/la/ejecucion

El trabajo base debe generarse primero. Registra la imagen base generada seleccionada antes de generar trabajos dependientes. El registrador escribe references/canonical-base.png, que los trabajos posteriores deben usar como imagen de entrada.

3. Generar cada trabajo visual

Para cada trabajo listo, usa el archivo de prompt listado en imagegen-jobs.json más todas las imágenes de entrada listadas. Selecciona la mejor imagen original generada, luego regístrala:

python3 ./scripts/record_imagegen_result.py \
  --run-dir /ruta/absoluta/a/la/ejecucion \
  --job-id id-del-trabajo-desde-estado \
  --source /ruta/absoluta/a/la/salida-generada.png

No registres accesorios editados a mano, miniaturas o archivos de las carpetas finales/fotogramas de la ejecución como arte fuente. Registra la salida generada original seleccionada.

4. Finalizar

python3 ./scripts/finalize_sprite_run.py --run-dir /ruta/absoluta/a/la/ejecucion

Salida esperada:

ejecucion/
  asset_request.json
  imagegen-jobs.json
  prompts/
  references/
  decoded/
  frames/frames-manifest.json
  final/spritesheet.png
  final/spritesheet.webp
  final/validation.json
  qa/contact-sheet.png
  qa/previews/*.gif
  qa/run-summary.json
  godot/<activo>_spriteframes.tres
  godot/<activo>_animated_sprite_2d.tscn
  godot/godot_import_manifest.json
  godot/README_GODOT.md

5. Copiar a Godot

python3 ./scripts/package_godot_assets.py \
  --run-dir /ruta/absoluta/a/la/ejecucion \
  --project-dir /ruta/absoluta/al/proyecto-godot \
  --dest assets/sprites

Revisa godot/README_GODOT.md después del empaquetado. Si copias archivos a una ubicación res:// diferente, actualiza la ruta de textura dentro del archivo .tres generado.

Flujo de Trabajo de Reparación

Si el control de calidad falla, repara primero el alcance más pequeño:

  1. Un solo estado o fila de animación malo.
  2. Un solo fotograma malo solo si tu herramienta de imágenes admite la edición a nivel de fotograma de manera confiable.
  3. La base canónica solo si la identidad/estilo está mal en todas partes.
  4. El atlas completo solo como último recurso.

Prompts de reparación comunes:

  • "Regenera solo walk_left; conserva el personaje canónico exacto, vestimenta, proporciones y estilo de renderizado de juguete."
  • "Regenera solo dirty; debe ser el mismo sofá que clean, pero con la manta/almohadas desordenadas."
  • "Regenera la tira con exactamente 6 fotogramas y sin números de fotograma ni etiquetas."
  • "Usa croma magenta porque el objeto necesita material verde."

Después de registrar la imagen de reparación, vuelve a ejecutar la finalización.

Rúbrica de Control de Calidad

No aceptes un activo hasta que estas comprobaciones se superen:

  • La base generada coincide con el estilo solicitado o las referencias de estilo proporcionadas.
  • Cada estado/animación es la misma identidad de activo, no un rediseño.
  • Los recuentos exactos de fotogramas están presentes.
  • La extracción transparente no elimina partes importantes del sprite.
  • Los fotogramas están completos, centrados, rellenados y no recortados.
  • Sin etiquetas, números de fotograma, líneas de cuadrícula, marcas de agua, paneles de interfaz de usuario o paisajes filtrados en el arte de producción.
  • Sin sombras no deseadas, destellos, polvo, líneas de velocidad, desenfoque o efectos separados que permanezcan después de la extracción.
  • La hoja de contacto se lee visualmente correctamente en el tamaño objetivo.
  • final/validation.json no tiene errores; las advertencias han sido revisadas visualmente.
  • Los nombres del manifiesto de Godot coinciden con los nombres de animación que pretendes llamar en el código.

Criterios de Aceptación

Una ejecución completada debe incluir:

  • una referencia base canónica en references/canonical-base.png
  • fuentes generadas seleccionadas registradas en imagegen-jobs.json
  • PNG de fotogramas transparentes extraídos
  • final/spritesheet.png y, cuando sea compatible, final/spritesheet.webp
  • qa/contact-sheet.png
  • previsualizaciones GIF para animaciones de múltiples fotogramas
  • final/validation.json sin errores
  • archivos iniciales de Godot en godot/
  • un informe breve para el usuario que mencione cualquier fila/estado reparado o aceptado manualmente a pesar de las advertencias

Reglas

  • Usa generación visual para imágenes; usa scripts solo para procesamiento determinista.
  • Siempre usa una base canónica para activos de múltiples salidas.
  • Mantén las referencias adjuntas para cada trabajo visual dependiente cuando la herramienta de imágenes admita referencias.
  • Prefiere salida transparente o compatible con croma sobre ilustraciones de escena.
  • No pongas etiquetas de interfaz de usuario, flechas instructivas, líneas de ruta o guías de colisión en los sprites de producción a menos que se soliciten como activos de superposición separados.
  • Para Godot, mantén los nombres de animación estables y en minúsculas con espacios reemplazados por guiones bajos.
  • Prefiere AnimatedSprite2D sobre AnimationPlayer para assets de sprites simples.
  • El método de importación preferido es texture/atlas copiado con archivo .tres.
  • Los PDF de hojas de sprites no son compatibles; convierte a PNG/WebP antes de la extracción.

Precauciones de Costos y Tiempo

  • Una ejecución de activo simple: ~5-10 generaciones de imágenes.
  • Una ejecución de personaje completa con 8+ animaciones: ~15-25 generaciones de imágenes.
  • Las reparaciones son más baratas que las regeneraciones completas; usa el flujo de reparación.
  • Cada generación desperdiciada debido a un prompt incompleto o incorrecto cuesta tiempo; revisa los prompts en imagegen-jobs.json antes de enviar.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados