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, executepython3 $MOTION_LIB/core/tools/catalog.py. Resolva$MOTION_LIBa partir do ambiente, senão da linhaMOTION_LIB=em~/.config/motion-explainer/config.env, senão pergunte uma vez. - Precisa de
narration/script.jsonevideo/STORYBOARD.mdcom o bloco HOOK e a tabela de staging (banner, cenário, adereço, momento de UI, mascote, piada por linha). Ausente: executemotion-hookemotion-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.
| Cena | Câmera (paper/camera.tsx) | Corte em (tipo CutSeries) |
|---|---|---|
| S01Hook | OrbitCamera + Depth, SnapZoom em "" | nenhum |
| S04Name | Crane sobe para <adereço focal> | tearAway |
| S09Peak | CrabTrack ao longo de | whip |
| S10CTA | RackFocus <adereço> para telefone | tapePull |
- Opções de câmera:
OrbitCamera+Depth,SnapZoom,Crane,CrabTrack,DollyZoom,RackFocus,ForegroundPass,DutchTilt,FocusPulse,FreezeFrame,PullBack,PovMask,TimeRamp,TiltShift,FocusHunt,HandheldeCameraPush(depaper/kit.tsx). A seçãopaper/camera.tsxdo catálogo diz quando cada uma se encaixa. - Opções de corte:
hard,whip,zoomThrough,pageTurn,tearAway,tapePull,stampCut,infiniteZoom,popUpBook,keyhole,burnAway. - Um
CameraPushsimples é 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.jsoncomo"cuts": {"S04Name": {"kind": "tearAway"}}(sem entrada significa corte seco), quemotion-buildpreenche.
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
labelopcional para imprimir uma palavra nela). - O corte de saída do gancho carrega movimento através dele. Aplique a regra de
motion-hooka 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.jsonpara 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.pyimprime 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.jsonantes da renderização de áudio. - Nomeie SFX de
$MOTION_LIB/core/audio/CATALOG.mdna linhaSFX:de cada bloco. Os agentes de cena escrevem as linhas reais emtools/cue_sheet.d/<Scene>.json. - Escolha o preset de fundo (
episode.json"bed") e definacutSfxpara corresponder aos tipos de corte:tearAwayrasgar,tapePulldescascar fita.
Portão
-
Cada cena tem uma câmera e um corte de entrada, e um
CameraPushsimples 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.