Communitygithub.com

storyboard-motion

Cria um storyboard detalhado para um script no estilo papercut antes de qualquer código. Especifica câmera, cortes, eventos por frame e plano de som.

O que é storyboard-motion?

Esta skill é usada para planejar a sequência visual de uma animação em papercut antes de qualquer implementação. Ela gera uma tabela de Câmera/Corte com uma linha por cena, nomeando o movimento de câmera (ex: OrbitCamera, SnapZoom, Crane) e o tipo de transição (ex: whip, tearAway, tapePull) para cada cena. Em seguida, expande cada cena em blocos com eventos quadro a quadro para cada palavra estressada, descrevendo ações, movimentos e efeitos sonoros. A skill é especialmente útil para desenvolvedores que usam agentes de IA como Claude Code, Cursor ou Codex, pois fornece um plano estruturado que o agente de cena pode seguir sem inventar movimentos. Ela funciona lendo os arquivos `narration/script.json` e `video/STORYBOARD.md` (gerados por outras skills) e consulta catálogos de componentes visuais e de áudio do estilo motion. O resultado é um storyboard completo que serve de entrada para a skill `motion-build`, que constrói o projeto e gera `episode.json` com os cortes e limites de cena. A skill também impõe regras de ritmo, transições e variedade de câmera, garantindo que no máximo um terço das cenas use o movimento genérico `CameraPush`.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/boytegar/motion-skills/tree/HEAD/skills/motion-storyboard

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Storyboard Papercut

O storyboard é o plano a partir do qual cada cena é construída. Ele nomeia o movimento de câmera e o corte para cada cena, para que o agente de cena não os invente. Um resumo que diz "CameraPush ou sua própria transformação" resulta em um push genérico ou um zoom manual em cada cena, e os movimentos de câmera do kit não são usados.

Pré-voo

  • Instalação: Mínimo é suficiente. Com uma biblioteca, verifique style/$MOTION_STYLE/remotion/CATALOG.md (seções "paper/camera.tsx" e "paper/transitions.tsx") para as props de cada movimento e quando ele se encaixa. Se o arquivo estiver ausente ou desatualizado, execute python3 $MOTION_LIB/core/tools/catalog.py. Resolva $MOTION_LIB a partir do ambiente, senão da linha MOTION_LIB= em ~/.config/motion-explainer/config.env, senão pergunte uma vez.
  • Precisa de narration/script.json e video/STORYBOARD.md com o bloco HOOK e a tabela de staging (banner, cenário, adereço, momento de UI, mascote, piada por linha). Ausente: execute motion-hook e motion-script.
  • Folha de fundo para escolher cenários: style/$MOTION_STYLE/remotion/public/bg/backdrops/_sheet.jpg. Abra apenas o que a etapa precisa.

1. Regras globais

Coloque estas no topo de STORYBOARD.md, abaixo do bloco HOOK. Paleta por função (rotacione cores de fundo por cenário): $MOTION_LIB/style/$MOTION_STYLE/docs/style-guide.md seção 5. Fontes: seção 6. Canvas e zonas: seção 4. Uma abertura de funcionalidade que se encaixe em uma metáfora estendida pode usar a seção 12.

  • 1080x1920, 30 fps. Banner a 14-21% de altura, faixa de legenda 68-80% (ela se desloca por cena para ficar longe dos rostos), 20% inferiores livres.
  • Luz do canto superior esquerdo. Saturação apenas em personagens, legendas e sinais.

2. Tabela de Câmera / Corte

Uma linha por cena, antes dos blocos de cena. Cada linha nomeia um componente do kit paper/camera.tsx e o tipo CutSeries (de paper/transitions.tsx) para o corte naquela cena.

CenaCâmera (paper/camera.tsx)Corte em (tipo CutSeries)
S01HookOrbitCamera + Depth, SnapZoom em ""nenhum
S04NameCrane sobe para <adereço focal>tearAway
S09PeakCrabTrack ao longo de whip
S10CTARackFocus <adereço> para telefonetapePull
  • Opções de câmera: OrbitCamera + Depth, SnapZoom, Crane, CrabTrack, DollyZoom, RackFocus, ForegroundPass, DutchTilt, FocusPulse, FreezeFrame, PullBack, PovMask, TimeRamp, TiltShift, FocusHunt, Handheld e CameraPush (de paper/kit.tsx). A seção paper/camera.tsx do catálogo diz quando cada uma se encaixa.
  • Opções de corte: hard, whip, zoomThrough, pageTurn, tearAway, tapePull, stampCut, infiniteZoom, popUpBook, keyhole, burnAway.
  • Um CameraPush simples é permitido em no máximo um terço das cenas.
  • Copie a câmera de cada linha para o cabeçalho do bloco de cena. A coluna de corte vai para episode.json como "cuts": {"S04Name": {"kind": "tearAway"}} (sem entrada significa corte seco), que motion-build preenche.

3. Blocos de cena

Um bloco por cena, 1,5-5 s cada, cortando em limites de frase:

## S03: <batida>  (5.6-8.2 s, 78 f)   BANNER: <CONCLUSÃO EM MAIÚSCULAS>
Local/fundo: <localização mundial + cor do fundo>     Câmera: <componente camera.tsx + params, da tabela>   Corte em: <tipo>
Elenco: <quem, acessórios>                            Faixa de legenda: y=0.76
| Palavra VO (estressada) | quadro | evento                                    | especificação de movimento        |
| "<palavra>"            | +6    | <adereço entra / estado muda / age>       | <spring/slide/swap + quadros>     |
Ambiente: <LED pisca, balanço parado, estrelas, forma de onda na tela>
Fervura: banner + rótulos, +-1.5 px a cada 2 quadros
SFX: <pop, chim, clique...>
  • Expanda cada linha da tabela de staging em eventos no nível do quadro: um por palavra estressada (a cada 0,4-0,8 s), movimento ambiente sempre ativo. Quadros são deslocamentos da palavra, lidos posteriormente com cueOf(ID)(word, n).
  • UI do produto é a reconstrução aproximada em um monitor ou laptop de papel, com interações falsas (clique do cursor, digitação, progresso, forma de onda, rolagem de lista).
  • Prova: uma vez por rolo, uma captura de tela real da página de origem (uma captura de navegador via $MOTION_LIB/core/tools/capture.mjs, não um redesenhado) colada em um cartão de papel, com um círculo de marcador vermelho se desenhando ao redor da linha-chave. Todo o resto permanece uma reconstrução aproximada em papercut.
  • Um callback para um cenário anterior antes do CTA.

4. Regras de câmera e transição

  • Cada cena tem um movimento. Um push lento é a linha de base. Adicione uma órbita com paralaxe em cenários iluminados para profundidade, um punch-in ou snap zoom na palavra estressada para números e piadas, um passe de primeiro plano (objeto de papel desfocado através da lente) ou rack focus, um pull-back para revelar escala e um freeze frame com um rótulo na batida do mascote em dificuldade.
  • Principalmente cortes secos na mudança de banner. Um whip-pan com desfoque de movimento em 2-3 mudanças de tópico, um zoom-through ao entrar "dentro" de uma tela, porta ou espelho, no máximo uma virada de página ou rasgo por rolo (na pegada ou em um contraste antes/depois) e o tape pull no CTA (uma tira de kraft lisa, com um label opcional para imprimir uma palavra nela).
  • O corte de saída do gancho carrega movimento através dele. Aplique a regra de motion-hook a S01 e S02.
  • As transições duram 6-12 quadros, cada uma com seu SFX (whip, zoom, virar página, rasgar, descascar fita).
  • Em um projeto de biblioteca, encadeie cenas com a série de transição do kit, que mantém cada início de cena em seu quadro plan.json para que a voz permaneça sincronizada.

5. Plano de SFX

  • Sons de ar (whoosh, slide, whip, zoom) juntos: no máximo um a cada 2,5 s de rolo. cues.py imprime uma nota acima disso. Para escala, 12 em 33 s é bom e 24 em 26 s é perturbador.
  • Entradas recebem sons de contato (pop, thud, stamp) ou silêncio. Conte-os em tools/cues.json antes da renderização de áudio.
  • Nomeie SFX de $MOTION_LIB/core/audio/CATALOG.md na linha SFX: de cada bloco. Os agentes de cena escrevem as linhas reais em tools/cue_sheet.d/<Scene>.json.
  • Escolha o preset de fundo (episode.json "bed") e defina cutSfx para corresponder aos tipos de corte: tearAway rasgar, tapePull descascar fita.

Portão

  • Cada cena tem uma câmera e um corte de entrada, e um CameraPush simples está em no máximo um terço delas.

  • Cada palavra estressada tem um evento; o movimento ambiente está listado.

  • Uma prova, um callback, o tape pull ou whip no CTA.

  • No máximo uma virada de página ou rasgo; sons de ar dentro do orçamento.

  • Nomeie a antecipação e a batida exagerada em cada tabela de eventos do bloco de cena. Os 12 princípios, mapeados para componentes do kit, estão em $MOTION_LIB/style/$MOTION_STYLE/docs/motion-principles.md.

Entrega

O próximo passo é motion-build, que estrutura o projeto e transforma a tabela de Câmera/Corte e os limites de cena em episode.json. Ele lê STORYBOARD.md e narration/script.json. A seção de Timing de STORYBOARD.md é gerada posteriormente, após a voz, então deixe-a de fora.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas