Communitygithub.com

kelvinmacaco/short-animation

Úsalo para dibujar las escenas animadas de un Short en generate.py: elegir la pieza correcta de lib_short para cada fragmento (título del cuadro 0, palabras, contadores, objetivos, flechas, banderas SVG, mecha de progreso, revelación con pantalla que se llena, final calmado o enérgico, loop) y garantizar una interacción por escena en el tono del video.

¿Qué es short-animation?

Esta skill está diseñada para desarrolladores e integradores de agentes de IA que trabajan con animación procedural de Shorts en Python. Su objetivo principal es orquestar la generación de escenas animadas a partir de un guion estructurado, eligiendo la pieza correcta de la librería `lib_short` para cada tipo de fragmento: desde el gancho inicial y frases habladas hasta progreso de lista, conflictos visuales y finales pesados o ligeros. La skill se apoya en las skills complementarias `hyperframes` (contrato de render, líneas de tiempo y reglas de clip), `hyperframes-registry` (para reutilizar bloques predefinidos como glitch o CRT) y `graphify` (para buscar piezas en la biblioteca). El flujo de trabajo parte de `template/build/generate.py`, que ya contiene una escena de ejemplo para cada parte del guion. Las reglas de animación incluyen cambios cada 1,5–2,5 segundos, tiempos locales y globales, área segura para texto, y reglas de clip que prohíben animar visibility/opacity directas y recomiendan `immediateRender:false` con fromTo. La skill es útil tanto para videos pesados (tono oscuro, pulso rojo máximo 0,32) como ligeros (colores vivos, pop y brillo).

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kelvinmacaco/kit-shorts-virais/tree/HEAD/.claude/skills/short-animation

Preguntar en tu IA favorita

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

Documentación

Animación de las escenas

Apoyo: las skills hyperframes (contrato de render, líneas de tiempo, reglas de clip), hyperframes-registry (busca un bloque listo antes de dibujar a mano, ej.: glitch, CRT, gráficos) y graphify, para encontrar una pieza en la lib (graphify explain "pavio_scene").

Parte de template/build/generate.py, que ya tiene una escena de ejemplo para cada parte del guion.

Pieza correcta para cada fragmento

FragmentoPiezaObservación
Cuadro 0 / ganchohook_html + shake + driftEl mismo título vuelve en el loop
Frase habladakline + words_js; slam en la palabra claveUna línea por fragmento de 2–4 palabras
MisterioLuces que se encienden, slam en "PEOR"/"FECHA"Calendario que gira ("20??")
Númeroscounter(...) + escala de impacto + shakeFormato es-ES (toLocaleString)
Lugar o destinoAnillos ping pulsandoCon una fecha o fuente en mono
ConflictoFlechas que chocan + flash hitLado A × lado B
Lados o paísesBanderas SVG + líneas que se dibujan (pathLength="1") + puntos viajando con etiquetasSin escudos
Progreso de la listapavio_scene, una mecha que arde con cada ítem y explota en el clímaxEn lugar de "1/3"; step_badge solo en último caso
Daño, escalaPantalla que se llena de puntos (clip-path) + contador giganteFuente del dato en mono
Ventana de TVtvv + enter_tvPara clips tumbados
Final pesadoPregunta suave, corazón que se llena despacio, follow_card oscuro, fundido a negroSin pop, destello, flash ni corte
Final ligerolike_block + plane_svg + follow_cardPuede tener pop y brillo
LoopClip invertido del gancho terminando en el cuadro 0 + el mismo títuloDesde negro (pesado) o con osd_rewind (ligero)

Reglas

  • Algo cambia cada 1,5–2,5 s y cada escena tiene una interacción.
  • Tiempos: locales dentro de scene() y globales en SCENES, cortes, efectos y leyendas.
  • Área segura: texto en x 90–900 e y 170–1330. Línea larga: reduce la fuente (Archivo Black ocupa ~0,75 em por letra).
  • Marca @: la lib la coloca debajo de la leyenda (WM_TOP); no dibujes otra.
  • Reglas de clip:
    • no animar visibility/opacity del propio clip;
    • usar immediateRender:false en fromTo posteriores;
    • repeat con yoyo para efectos continuos (chispa, pulso);
    • nada aleatorio (el grano usa semilla).
  • Tono: en video pesado, un pulso rojo de máximo 0,32 de opacidad; en un video ligero, colores más vivos.

Individual skills in this repo

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

Skills relacionados