CommunityImagengithub.com

Generar Sprite 2D

Crea personajes, criaturas, accesorios, iconos y efectos especiales listos para el juego como imágenes maestras, hojas de sprites o clips de animación.

¿Qué es Generar Sprite 2D?

Este skill de agente de IA te permite generar activos 2D listos para el juego, incluyendo personajes, criaturas, accesorios, iconos y efectos especiales (FX), en forma de imágenes fijas maestras, hojas de sprites o clips de animación. Está diseñado para planificar el tamaño, el movimiento y el acabado visual del activo, generando el arte a través del pipeline `generate2dmedia` (usando una API si hay clave configurada, o herramientas locales como Codex `image_gen` o Grok CLI). El flujo de trabajo principal implica: aprobar una imagen maestra por personaje, luego desglosarla en fotogramas clave, registrarlos, escalarlos, aplicar paletas, realizar control de calidad y exportar los fotogramas a un motor de juego (Aseprite JSON, Godot SpriteFrames o Sprite3D). El acabado por defecto es en alta definición (HD), y se puede solicitar un acabado pixel art. La animación de personajes se maneja externamente generando un clip de imagen a video por acción desde la imagen maestra (usando el skill `video2dsprite`), mientras que las hojas de sprites se reservan para FX, iconos y accesorios. El skill es compatible con Codex, Claude Code y Grok, y gestiona la selección automática de rutas de generación de imágenes (API, herramienta local o `codeart2d`). No debe usarse para mapas, tiles, fondos (usa `generate2dmap`), clips de video (usa `video2dsprite`), arte dibujado con código (usa `codeart2d`, solo a petición) o para llamar a una API de imagen/video directamente (usa `generate2dmedia`).

Compatible con✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/lyseocuonglauthingai-sketch/agent-sprite-skills/tree/HEAD/.agents/skills/generate2dsprite

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

¿Qué hace Generar Sprite 2D?

Crea el paquete de activos más pequeño que el juego necesita, a su tamaño de visualización real, cámara y estilo. La lógica del juego (colisiones, daño, tiempo) se mantiene independiente del arte.

Cuándo usar

  • Cuando se necesita un personaje, criatura, accesorio, objeto, icono o FX como imagen maestra, hoja de sprites o clips.
  • Cuando ya existen fotogramas (generados, pintados, dibujados con código) y necesitan clips, paletas o una exportación a un motor.

Cuándo no usar

Verificación de capacidad (una vez por sesión)

Ejecuta python "<skill-dir>/../generate2dmedia/scripts/forge_doctor.py" --host-tools <tools> --save <output>/doctor.json, donde <tools> enumera las herramientas de medios en tu propia lista de herramientas (image_gen, image_edit, image_to_video) o none. Su bloque ROUTES muestra qué claves de API están configuradas (sí o no), la preparación local y el orden resuelto. Si encoding.stdout falla, establece PYTHONUTF8=1.

Fuente de arte

La generación de imágenes es la fuente de arte predeterminada para personajes, criaturas, accesorios, iconos y FX. Regístrala como art_source (api, host_image, existing, o code solo a petición) y nombra la ruta en tu respuesta. Una ruta que el usuario nombre explícitamente tiene prioridad.

  1. API, cuando hay una clave configurada: OpenAI (OPENAI_API_KEY), Google Gemini (GEMINI_API_KEY), xAI (XAI_API_KEY), BytePlus Seedream (ARK_API_KEY) o fal.ai (FAL_KEY), en el entorno o en el archivo de configuración del usuario (route-media.md). La clave configurada es el consentimiento del propietario, por lo que no hay pregunta por llamada.
  2. Local: tu propia herramienta de imagen (Codex image_gen, herramienta nativa de Grok) cuando la tengas; de lo contrario, la CLI de Codex con sesión iniciada del usuario, luego la CLI de Grok.
  3. codeart2d solo cuando el usuario solicite explícitamente arte dibujado con código, o cuando route_media.py imprima no-route (código de salida 3). Entonces di "dibujado con código, sin modelo de imagen".

Los FX Hibit son la única excepción: fx_pixelfx.py check los envía a pixelfx cuando el usuario lo tiene instalado (ruta A, FX de terceros dibujados con código, acreditados y divulgados), de lo contrario a la ruta de imagen (ruta B). Consulta hibit.md.

Cada imagen pasa por un comando: python "<skill-dir>/../generate2dmedia/scripts/route_media.py" image --prompt-file <txt> --reference <png> --size 1024x1024 --out-dir <new>. Toma la ruta en ese orden e imprime una línea JSON con route, artifact, sha256 y estimateUsd; resolve --kind image dice qué ruta se ejecutaría. El arte existente que el usuario proporcione siempre es bienvenido. Nunca reclames una generación que no ocurrió; mantén el prompt y el contrato, e informa de una capacidad faltante.

  • Acabado: HD es el predeterminado: color completo, alfa limpio, un registro y una reducción de escala de área pre-multiplicada a la altura del juego. El acabado pixel (una paleta compartida, alfa binario, sin tramado) es una opción cuando el usuario solicita pixel art; el acabado hibit (arte plano sin líneas del modelo, luego una paleta de personaje, una reducción de escala por mayoría de votos y un color de contorno tomado de la imagen) cuando quieren el aspecto hi-bit (hibit.md). Nunca le pidas a un modelo de imagen una cuadrícula de píxeles lógica; el aspecto pixel proviene del acabado.
  • Personajes: aprueba una imagen maestra por personaje, luego anímalo con video2dsprite: un clip de imagen a video por acción, todos desde esa imagen maestra (sprite_set.py). Mantén la altura del cuerpo de cada acción desde la pose de reposo de la imagen maestra.
  • Hojas de sprites son para FX, iconos y accesorios (y fotogramas que el usuario proporcione), no para animación de personajes.

Imagen maestra (toda animación de personaje comienza aquí)

Una imagen maestra aprobada por personaje, luego un clip de imagen a video por acción a partir de ella (video2dsprite); las hojas son para FX, iconos y accesorios. Redacción: prompt-rules.md; comandos, encuadre y master.json: master-still.md.

  1. Especificación (--spec <json> y/o banderas): --name, --subject, --identity (largo y preciso), --facing left|right|front|back, --class hero|mob|boss|prop, --finish hd|pixel|hibit (HD predeterminado; pixel o hibit solo cuando se solicita; hibit hace la imagen plana y sin líneas), --identity-ref (PRIMERA imagen, copiada exactamente), --style-ref (SEGUNDA: un sprite par aprobado, solo estilo y encuadre), --key (predeterminado #FF00FF; verde o azul para diseños morados y rosas).
  2. Generar: python "<skill-dir>/scripts/master_still.py" generate --spec <json> --takes 3 --output-dir <new>. Cada toma pasa por generate2dmedia route_media.py (primero la clave API, luego el demonio local); takes.png las muestra una al lado de la otra. El código de salida 3 significa que no hay ruta: dilo; codeart2d es la alternativa ("dibujado con código, sin modelo de imagen"). Con la propia herramienta de imagen del anfitrión: ejecuta master_still.py prompt y adjunta las referencias listadas en ese orden.
  3. Elegir mirando: identidad, orientación, nada tocando un borde, sin texto.
  4. Corregir un casi acierto mediante edición, nunca mediante un nuevo intento: master_still.py edit --run <dir> --take N --change "<un cambio>" --output-dir <new> (o --master <dir>).
  5. Aprobar: master_still.py approve --run <dir> --take N --output-dir <new> (una imagen de otro lugar: --still <png> --route <lo que la creó>). Clavea la imagen, la recorta con un margen de 6 px, la escala con LANCZOS al encuadre de clase en 1024x1024 (héroe 788 px de alto, margen superior 138 px) y escribe master.png (opaco, clave pura), master_rgba.png y master.json (generate2dsprite.master.v1).
  6. Los pasos de movimiento leen master.json (identity_recap, facing, finish, class, framing, key, files, transform, route) y nunca vuelven a medir la imagen; cada prompt de clip comienza con "El mismo <identity_recap>".

Informa la ruta desde master.json route. Una advertencia FORGE_ROUTE_MEDIA_FAKE significa que la imagen no es una generación real.

Notas del anfitrión

  • Codex: image_gen es tu propia herramienta de imagen; sin una clave configurada, úsala y mira los resultados con view_image. Una imagen hecha en esta sesión que no está en el proyecto: python "<skill-dir>/../generate2dmedia/scripts/cli_media.py" adopt --codex-thread <thread-id> --output-dir <new>, luego procesa generated.png. codeart2d y generate2dmedia son solo explícitos: abre su SKILL.md cuando este skill redirija allí.
  • Claude Code: no tiene generador de imágenes integrado: route_media.py toma la API o las CLIs locales. Mira cada PNG que hagas con Read; ejecuta herramientas con Bash; <skill-dir> es ${CLAUDE_SKILL_DIR}.
  • Grok: sus herramientas nativas de imagen y video son tus propias herramientas; usa su esquema real.

Comandos

Ejecuta cada herramienta como una sola línea desde la raíz del proyecto del usuario: python "<skill-dir>/scripts/<tool>.py" .... <skill-dir> es la carpeta de este skill; los skills hermanos están a su lado (<skill-dir>/../video2dsprite). Mantén las entradas y salidas dentro del proyecto. Cada herramienta escribe un nuevo --output-dir: rechaza uno existente, se prepara a su lado y publica solo después de sus comprobaciones (--strict-qc / --strict no publica nada en caso de fallo). El éxito imprime una línea JSON; los errores imprimen error: ... y salen con código 1; los errores de uso salen con código 2. Necesita Python 3.10+, numpy y Pillow (se recomienda scipy). --help enumera todas las banderas.

Planificar el activo

Registra identidad y referencia, cámara y orientación, estilo, tamaño de visualización del juego, acabado (HD por defecto, pixel a petición), lista de acciones y fases, bucle o de un solo uso, envolvente de movimiento, raíz compartida y formato de salida. Mantén una imagen maestra aceptada y una escala de fuente a visualización por personaje; los mobs no son más altos que el héroe a menos que se planifique. Una cuadrícula no es suavidad: la separación de poses, el tiempo, la costura del bucle y el contacto con el suelo importan más. Poses, piernas CERCA/LEJOS y tiempo: animation-planning.md.

  • Alfa: native_alpha mantiene la transparencia real (un tablero de ajedrez pintado no es alfa); chroma_key usa magenta plano solo cuando el sujeto no tiene ninguno; opaque mantiene imágenes completas (assemble_frames.py).
  • Muestreo: lanczos o un cambio de tamaño de área pre-multiplicada para arte generado; nearest solo para una cuadrícula de píxeles verificada. Una pintura de alta resolución similar a píxeles no es arte limpio de 32 px.
  • Una raíz compartida no es un fondo de bbox alfa por fotograma: mantén vuelo intencional, saltos, balanceo y retroceso.

Generar (rutas de imagen)

Escribe el prompt tú mismo (prompt-rules.md; cuadrículas, fases y preajustes en action-recipes.md). Adjunta referencias a través de --reference (o la entrada de imagen real de tu herramienta); una ruta en prosa no es una referencia. Mantén la imagen maestra aceptada en cada generación y describe fases absolutas, no ediciones encadenadas; una corrección es una edición de la imagen aprobada que nombra el único cambio. Genera una familia de acciones a la vez y mantiene los cortes amplios, estelas y proyectiles fuera de la hoja del cuerpo. Verifica la ruta real, el modelo y el tamaño devuelto; nunca los reclames a partir del prompt.

Pipeline

Hojas de sprites (FX, iconos, accesorios): sheet_qc.py spill en la hoja sin procesar, luego generate2dsprite.py process, luego sheet_qc.py frames, luego scale_frames.py, luego build_animation_clips.py, luego export_engine.py. Las acciones de personaje regresan de video2dsprite como clips empaquetados.

NecesidadRuta
Planificar una hoja para una herramienta de imagen (aspecto, cuadrícula, guía, prompt)plan_guide.py --frames N --cycle run --output-dir <new>; adjunta guide.png, pega prompt.txt. Escala fija y línea de pies: make_anchor_layout.py; fotograma seguro vacío: make_layout_guide.py
Verificar una hoja sin procesar antes de cortarsheet_qc.py spill --input <sheet> --rows R --cols C --output-dir <new>; partes que se cruzan significan regenerar con más margen o cortar por propiedad, nunca un filtro de componente más grande
Clavear, cortar y registrar una hojagenerate2dsprite.py process --input <sheet> --target asset --mode <mode> --rows R --cols C --output-dir <new> --strict-qc (geometría v2; processing.md)
Pixel art dibujado a M px fuente por px de arteprocess --resampler nearest --logical-pixel M --pixel-scale N (solo escalas enteras)
Saltos, balanceo o retroceso en un punto de registroprocess --scale-strategy registered (o --anchor-px X,Y)
Escala de un personaje entre accionesprocess --write-scale-profile <p.json> en la referencia conectada a tierra, luego --scale-profile <p.json> --max-profile-scale-drift 0.08
El lienzo no se divide en la cuadrícula; otro orden de filasprocess --grid-rounding nearest o --pad-to-grid; --direction-order down,up,left,right (modes.md)
Identidad, alternancia CERCA/LEJOS, deriva, líneas de basesheet_qc.py frames --sheet <sheet> --rows R --cols C --cycle run --output-dir <new>; un medio ciclo duplicado significa regenerar la segunda mitad. En fotogramas dibujados con código (art_source=code) identity_residual y torso_drift son informativos
Tamaño del juego en un lienzo y raíz, nunca fijadoscale_frames.py --frames <pngs> --root-lock torso-x --row-baseline --emit-clips --ticks N --output-dir <new>; las acciones posteriores agregan --profile <first>/scale-frames.json --action-padding L,T,R,B
Clips con tiempo, eventos, transicionesbuild_animation_clips.py --manifest clips.json --output-dir <new>; lee las advertencias y review/ (frames-and-clips.md)
Fotogramas completos o un bucle de escena (sin claveo)assemble_frames.py (--key chroma, --slice ownership; --loop-overlap K --ambient solo para bucles ambientales)
Paleta compartida, bloqueos, variantes, parpadeo (acabado pixel)palette_tool.py build, apply, lock, quantize-seq, variants, luts; cuadrícula lógica estricta: pixel_reduce.py (palette-and-pixels.md)
Exportación a motorexport_engine.py --clips <animation-clips.json> --target all --output-dir <new>; Sprite3D: --target godot-sprite3d --world-height <units> (engine-export.md)
Reproducir clips en un juego (marcha, pausa de impacto, transiciones)runtime-integration.md
Sprites, rigs o FX dibujados con código, solo a peticióncodeart2d render_pixelspec.py, rig_animate.py o fx_build.py con --build-clips (nunca process), luego export_engine.py; divulgar como dibujados con código
FX para un juego hibitfx_pixelfx.py check elige la ruta (una ruta que el usuario nombre gana). A, pixelfx instalado (recomendado): fx_pixelfx.py render --pixelfx <checkout> --id <effect> --ramp ... --snap <palette.json>, pixelfx por Patch (MIT, un proyecto separado que el usuario clona), envía CREDITS.txt y divulga como dibujado con código por pixelfx. B, de lo contrario: una hoja FX 2x2 de la ruta de imagen, process --scale-strategy registered --cell-size 512, luego hibit_fx.py pixelize --palette <palette.json> (hibit.md)

Aceptación

  • Revisa en el tamaño del juego: silueta e identidad, contacto y vuelo, costura del bucle o recuperación de un solo uso, alfa sobre claro y oscuro, extremidades, escala entre acciones, raíz y colisionador.
  • Cita números para afirmaciones de calidad: pipeline-meta.json matte.qa (una advertencia key_ring_spill: agrega --despill-radius 1 o --key-quality soft), sheet-qc.json, las advertencias del constructor de clips. El control de calidad numérico encuentra síntomas; nunca aprueba anatomía o movimiento.
  • Informa cada verificación WARN o FAIL literalmente (id, valor, umbral, archivos) de cada envolvente de QA publicada; nunca digas "todas las verificaciones pasaron" cuando cualquier envolvente publicada tenga una advertencia.
  • Entrega el arte fuente aceptado, fotogramas o clips en tiempo de ejecución, vista previa, prompt y procedencia (ruta, modelo, estimateUsd), QA y límites restantes. Mantén el último paquete aceptado al revisar.

Referencias

processing.md (banderas de proceso, cambios heredados), modes.md, prompt-rules.md, action-recipes.md, frames-and-clips.md, palette-and-pixels.md, engine-export.md, hibit.md, runtime-integration.md, master-still.md, video-handoff.md.

Skills relacionados