Long-Scroll Collage Motion Graphics: Linguagem de Design, Implementação no After Effects e Métodos de Replicação
Esta habilidade é resultado de uma replicação quadro a quadro completa (1920×1080, 24 fps, 272 quadros, 12 iterações). Ela responde a três questões: Como é a aparência e o movimento deste tipo de vídeo; como montá-lo no After Effects; e, ao receber um vídeo de referência, como medi-lo e alinhá-lo. As três partes podem ser usadas separadamente: para criação original, veja as seções 1–3; para montagem de projeto, veja a seção 4; para replicação, veja as seções 5–6.
Se o projeto atual contiver uma pasta rollback-replica/, esta é a implementação de referência: 拆解分析.md contém todos os valores medidos, scripts/ contém o gerador de cenas, e tools/ contém scripts de medição. Leia-os primeiro; não recomece do zero.
1. Linguagem de Design
1.1 Mundo e Câmera
- Todo o conteúdo é organizado em um rolo horizontal longo (o vídeo de referência tem 11000×1080). O espectador vê a câmera se movendo ao longo do rolo.
- A câmera faz apenas translação horizontal e zoom, sem rotação ou movimento vertical. Conversão:
X_tela = (X_mundo − cx)·s + 960,Y_tela = (Y_mundo − 540)·s + 540. - Uma régua de escala atravessa todo o rolo e permanece sempre no centro da tela (y=540, marcas pequenas com espaçamento de aproximadamente 7.27 px, a cada 5 marcas uma marca grande). Ela é o eixo do layout e a referência para medir a câmera.
- Sem desfoque de movimento em todo o vídeo: mesmo uma câmera que se move 500 px por quadro permanece nítida, esta é a origem do aspecto “rígido” deste estilo.
1.2 Layout
- Um eixo: o conteúdo se expande para cima e para baixo da régua; anos e números são colocados diretamente na régua como coordenadas.
- Real em cima, espelho embaixo: a régua funciona como um espelho; em cima estão as imagens originais e texto na orientação normal; embaixo estão suas silhuetas monocromáticas e texto invertido.
- Numeração entre parênteses: todas as anotações são colocadas entre parênteses, como
(1) (2),(crash),[cloud1]; palavras entre parênteses são frequentemente feitas como contorno vazado. - Contraste de espessura: círculos finos de 1 px, círculos concêntricos, texto em arco, linhas de referência contrastam com grandes blocos de cor sólida.
- Quadros aninhados: quadro preto dentro de outro quadro preto, rotacionado 90°, com a régua passando pelo meio.
- Ritmo de densidade: esparso → denso → muito denso → espaço em branco → preenchido → esparso. Não mantenha a mesma densidade o tempo todo.
1.3 Cores
Fundo cinza com preto e branco é o corpo principal; apenas três cores de destaque são usadas; outras cores aparecem apenas em fotografias.
| Nome | Valor | Uso |
|---|---|---|
| Cinza de fundo | #E6E6E6 | Fundo (com granulação muito leve) |
| Rosa magenta | #E8086D | Anéis, fitas, feixes de luz, flash de fundo |
| Azul claro / Azul royal | #1F86F0 / #0D3ED8 | Blocos, silhuetas espelhadas / círculos grandes, céu |
| Azul violeta | #6982F6 | Flash de fundo, cor de silhueta de placeholder |
| Verde menta | #19E6B4 | Pequenas áreas de bloco |
| Quase preto | #110D0C | Cenas escuras, encerramento |
A cor de fundo muda bruscamente por parágrafo: cinza → preto → rosa magenta → azul violeta, cada transição ocorre em um único quadro.
1.4 Combinação de Fontes
A mistura é intencional; cada tipo de informação tem uma fonte: serifa de transição (Times, anotações entre parênteses, contorno vazado), sem serifa geométrica fina (Montserrat, números de anos, kerning apertado), fonte técnica com cantos arredondados (Jura / OCR-A, comandos e pequenos rótulos), serifa moderna de alto contraste (Playfair/Bodoni, palavras de título grandes, letras justapostas), serifa grossa extra grossa (Lubalin/Rockwell, título principal, esticado horizontalmente), monoespaçada (Consolas/Courier, código e números grandes), Song / Ming (CJK, pode ser esticado até 3 vezes horizontalmente), pixel art. Textos pequenos devem ter 6–10 px, não aumente; eles são “textura” não “informação”.
1.5 Vocabulário de Assets
Fotografias recortadas (preto e branco de alto contraste, threshold), linhas de detecção de bordas (fundo branco com linhas pretas e pontos), capturas de tela de UI do sistema (pop-ups, ícones de arquivo, tabelas, texto de keyframes), scans de filme (base do filme, perfurações, códigos de borda), objetos 3D pequenos (metal líquido, tubos brilhantes, modelo branco, wireframe), gradiente cônico holográfico, padrão de 1-bit dithering, QR codes, homenzinhos pixel art. A mesma coisa frequentemente aparece em duas versões: o objeto real e sua silhueta de cor sólida.
1.6 Texturas
- Blocos de cor sólida permanecem limpos; gradientes e áreas cinzas têm granulação visível; uma camada de 2–3% de ruído monocromático é adicionada no topo de todo o vídeo.
- Fotos são tratadas como “fotocópia”: threshold, separação de tons, apenas 3–4 tons de cinza.
- Linhas de detecção de bordas são linhas pretas com preenchimento branco, não linhas cinzas; as linhas devem ser finas, permitindo pontos quebrados e fragmentados.
- Objetos com aspecto cromado parecem renderizações com separação de tons: um contorno branco fino ao redor do contorno preto, com realces brancos no centro e anéis concêntricos.
2. Linguagem de Movimento
2.1 Câmera
- Zoom: transições puramente lineares de 3–5 quadros entre algumas etapas fixas, parando abruptamente ao atingir o valor, sem easing. Em alguns poucos lugares, usa-se easing exponencial de saída (multiplicar a diferença por 0.6–0.75 a cada quadro) ou aceleração exponencial para aproximação. Também pode ser cortado diretamente.
- Translação é a soma de três componentes:
- Deriva constante, aproximadamente 4 px/mundo por quadro, contínua durante todo o vídeo;
- Impulso nos quadros de batida, seguido por decaimento de 0.6–0.8 a cada quadro (exemplo:
+195, +33, +20, +14, +11, +9, +7); - Corte abrupto, pulando centenas de pixels em um quadro.
- A câmera é assada em keyframes lineares quadro a quadro; não confie em easing Bezier para adivinhar essa curva.
2.2 Batida
Os eventos ocorrem em uma grade de 6 quadros por batida (0,25 s a 24 fps), podendo ter uma fase geral. Os elementos aparecem um por batida, não simultaneamente com fade-in.
2.3 Entrada de Elementos e Variações (Técnicas Principais)
- Silhueta de placeholder: primeiro, mostre uma silhueta de cor sólida por 1–2 quadros (branco → azul violeta → objeto real, ou rosa magenta → objeto real), depois substitua pela textura real. Use o efeito “Matiz” para mapear preto e branco para a mesma cor, com quantidade de 100 → 0 com hold.
- Flash de um quadro / alternância de tamanho: aparece → desaparece por um quadro → reaparece; ou grande, pequeno, grande, pequeno, três flashes e depois para.
- Wipe radial segmentado por batida: elementos anelares primeiro varrem um segmento, depois, a cada batida, o segmento inteiro salta para um novo ângulo, com apenas 1–2°/quadro de deriva entre segmentos.
- Duas partes de wipe linear: elementos em barra primeiro estendem a “cabeça” para frente, depois a “cauda” a alcança; o que sobra é o próximo elemento.
- Keyframes do tipo hold são predominantes: posição, escala e rotação saltam quadro a quadro; o único easing verdadeiro são 2–3 quadros de easing de saída.
- Efeito de mola: 0.3–0.7x → 1.0, 2–3 quadros, podendo ter overshoot de 1.1–1.2.
- Fixação na tela: elementos individuais fixados na tela enquanto a câmera se move (usando a transformação inversa da câmera para criar keyframes quadro a quadro), depois “devolvidos” ao mundo após um período.
- Taxa de quadros mista: pequenas animações 3D são frequentemente feitas a 30 fps e depois inseridas em uma timeline de 24 fps, resultando em passos de
1, 2, 1, 1a cada 4 quadros. Ao replicar, usequadro_fonte = ⌊1.25·(f − f0) + 0.5⌋, não interpole uniformemente. - Cópia espelhada e desalinhada: quando uma silhueta espelhada aparece, uma cópia branca é colocada abaixo, deslizando do desalinhamento para o alinhamento em 4–5 quadros.
2.4 Flash Global
| Efeito | Como Fazer |
|---|---|
| Corte brusco de cor de fundo (preto, rosa magenta, azul violeta) | Keyframe hold na camada de cor sólida de fundo |
| Flash de threshold (1 quadro, imagem se torna preto e branco binário) | Camada de ajuste no topo com efeito “Threshold” |
| Flash de threshold de diferença (tudo que é diferente da cor de fundo fica branco) | Uma camada de cor sólida igual ao fundo com modo de mesclagem “Diferença”, com “Threshold” acima |
| Inversão de tela inteira (alguns elementos mantêm a cor original) | “Inverter” no topo; elementos que devem manter a cor original aplicam “Inverter” a si mesmos primeiro |
| Arrasto horizontal local | Camada de ajuste estreita com “Transformar”, desmarque “Escala Uniforme”, largura para vários mil % |
| Virar | Escala X da camada com hold quadro a quadro (passando por zero para negativo), eixo também se move quadro a quadro, com um quadro de overshoot |
| Encerramento | Barras de gradiente preenchem a tela em etapas e depois saem, cor de fundo escurece gradualmente para quase preto, título é esticado horizontalmente como rastro |
3. Ordem para a Criação Original Deste Tipo de Vídeo
- Primeiro, desenhe o rolo longo: defina a largura do mundo (aproximadamente 800–1000 px/mundo por segundo), divida em 4 seções, cada seção com um tema e uma densidade.
- Crie a tabela de tomadas: para cada tomada, escreva o nível de zoom, cx inicial e final, cor de fundo, eventos que ocorrem; entre níveis, use apenas rampas lineares ou cortes bruscos.
- Alinhe os eventos à grade de 6 quadros: um novo elemento por batida; a cada 2–3 segundos, agende um flash global ou troca de cor de fundo.
- Cada elemento escolhe uma técnica de entrada da seção 2.3; não repita a mesma técnica mais de duas vezes na mesma seção.
- Prepare os assets de acordo com o vocabulário da seção 1.5; para cada asset, crie também uma versão de silhueta de cor sólida.
- Por fim, adicione granulação uniformemente, verifique se as cores de destaque ainda são apenas três.
4. Implementação no After Effects
4.1 Estrutura do Projeto
RB_REPLICA/
01_Comps/ RB_MAIN (1920×1080 palco final) RB_WORLD (rolo longo, ex. 14400×2600)
02_Assets/ Subpastas por seção (A_… B_… C_… D_…, régua e efeitos globais)
03_Solid/ Cores sólidas de fundo, camadas de ajuste, máscaras
RB_WORLDcontém todas as camadas no espaço do mundo; o ponto do mundo (x, y) corresponde ao pixel da composição (x + OX, y + OY), com margem ao redor.RB_MAINde baixo para cima: cor sólida de fundo →RB_WORLD(ativar colapso de transformações; a câmera são seus keyframes de posição/escala) → camadas sobrepostas no espaço da tela → camadas de ajuste (granulação, threshold, inversão…).- As camadas recebem tags de cor por seção; nomes de asset incluem prefixo de seção para facilitar a localização entre 500+ camadas.
4.2 Gerar com Script em Vez de Colocar Manualmente
O grande número de camadas e valores medidos torna mais adequado descrever a cena com um script e depois importá-la:
- Uma
Scenecontém uma lista de camadas; cada camada tem coordenadas mundiais, períodospan(f_in, f_out), keyframes de propriedade, lista de efeitos. - Os assets são desenhados por funções e armazenados em cache por hash de “código fonte da função + parâmetros”; só são redesenhados se alterados.
- Exportado como JSON de projeto AE, importado com o MCP aftereffects
ae_project_import_json; para reconstruir, apague a pasta raiz antiga por ID e importe novamente (a importação só anexa). - Os ajustes que o JSON não suporta (camadas de ajuste, colapso, modos de mesclagem) são listados separadamente; após a importação, use
layer.set_props/layer.set_blend_modepara aplicá-los. - Elementos com pose diferente a cada quadro (objetos 3D giratórios, gradientes que mudam quadro a quadro) são feitos como “uma camada por quadro”, cada camada com vida de apenas um quadro; isso é mais confiável do que acumular keyframes de efeitos em uma única camada.
4.3 Notas de Uso de Efeitos
- Wipe linear: o ângulo é a direção do movimento; +90 apaga da esquerda, −90 da direita, 180 de cima, 0 de baixo; o wipe é calculado no espaço da própria camada; ao girar a camada, compense o ângulo inversamente.
- Wipe radial: ângulo inicial 0 = para cima, sentido horário; “Ambos os lados” apaga dos dois lados a partir do ângulo inicial.
- Em projeto de 16 bpc, o nível do “Threshold” é preenchido como 0–1.
- Em camadas de ajuste com tamanho diferente da composição, os parâmetros de ponto nos efeitos são convertidos uma vez por “camada → composição”.
- Escala estática não uniforme deve ser assada no asset, não deixada na transformação da camada (a pré-visualização e a exportação podem ser inconsistentes).
4.4 Renderização e Saída
O H.264 nativo do AE pode escurecer o rosa magenta de alta saturação. Use AVI “sem perdas” e depois ffmpeg:
ffmpeg -i main.avi -vf "scale=in_range=full:out_range=tv:out_color_matrix=bt709,format=yuv420p" -c:v libx264 -crf 17 -preset slow -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -movflags +faststart out.mp4
4.5 Coleta e Organização do Projeto
Ao entregar ou arquivar, coloque o projeto e os assets realmente usados em uma pasta independente (equivalente a “Arquivo → Coletar Arquivos”):
- Copie apenas os assets referenciados por camadas, mantendo a estrutura de pastas do painel de projeto dentro de
(Footage)/; - Gere um projeto com caminhos de assets apontando para o diretório de coleta (novo projeto → importe o JSON com caminhos modificados → aplique ajustes → defina a mesma profundidade de bits e configurações de cor do projeto original → salve como);
- Escreva um relatório de coleta: especificações da composição, número e tamanho dos assets, arquivos ausentes, efeitos usados (se dependem de plugins de terceiros, fontes), o que não foi coletado;
- Verifique: renderize o mesmo quadro ou dois do projeto original e do projeto coletado; a comparação pixel a pixel deve ser idêntica; confirme que não há assets faltando;
- Após terminar, volte o AE para o projeto original. Não mexa nas composições e assets que o usuário colocou no projeto.
5. Método para Replicar um Vídeo de Referência
O objetivo é “parecer o mesmo vídeo”; os assets são redesenhados ou regenerados, não copiados pixel a pixel do original.
5.1 Ordem
- Extraia os quadros (todos os quadros, JPG é suficiente) e anote os parâmetros básicos: resolução, taxas de quadros, número de quadros, se há desfoque de movimento, se a trilha de áudio realmente tem som.
- Primeiro, resolva a câmera: encontre uma referência rígida que atravesse todo o vídeo (aqui, a régua), meça o zoom e a translação quadro a quadro e asse em uma tabela de câmera.
- Monte o mundo: com a câmera, qualquer quadro pode ser projetado de volta para as coordenadas do mundo; todas as medições subsequentes são feitas nas coordenadas do mundo.
- Liste os elementos: para cada elemento, registre a posição no mundo, quadro de aparecimento, quadro de desaparecimento, técnica de entrada, variação quadro a quadro.
- Monte a primeira versão, renderize, compare quadro a quadro e itere com base nas diferenças. Cada versão deve abordar um conjunto de problemas; depois de corrigir, renderize novamente e compare.
5.2 Disciplina de Medição
- Auditoria da câmera: localize cada marca da régua quadro a quadro, converta de volta para coordenadas do mundo e compare com a grade ideal. O resíduo deve ser constante dentro de uma mesma tomada; se não for constante, a tabela da câmera está errada. Esta etapa já detectou dois erros de registro de 8 px e 49 px que eram completamente invisíveis em uma comparação lado a lado, mas que faziam todas as medições subsequentes terem viés.
- Use detecção numérica em vez de inspeção visual: ler coordenadas de uma imagem recortada com grade tem um viés sistemático de 3–8 px. Para medições críticas, use detectores: threshold de cor + bounding box (cabeça e cauda de blocos), centróide de componentes conectados (realces, pontos de marcação), ajuste de círculo/elipse (esferas, anéis, órbitas), estatísticas linha por linha (número da linha e espessura). Execute o mesmo detector no original e na réplica e compare.
- Imagens recortadas alinhadas ao mundo: ao comparar, recorte o mesmo retângulo do mundo do original e da réplica lado a lado, em vez de comparar capturas de tela; especialmente em tomadas com câmera em movimento.
- Quadro a quadro, não a cada dois quadros: amostrar a cada 2 quadros já fez com que uma rotação de período de 4 quadros parecesse “quase parada”.
- Quando um elemento parece “estranho”, primeiro suspeite da câmera, depois do elemento.
5.3 Usar GPT / Codex para Redesenhar Assets a Partir de Quadros de Referência
Adequado para fotos, linhas, colagens, desenhos à mão:
- Recorte 1–2 quadros mais limpos do elemento, amplie 2–4 vezes como imagem de referência.
- Estrutura do prompt: “Redesenhe fielmente o X da imagem de referência” → descreva cada objeto e sua aparência item por item → liste o que deve ser removido (régua, linhas sobrepostas, elementos adjacentes, texto) → exija fundo transparente.
- O modelo tende a esticar o assunto para preencher a tela: adicione bordas à imagem de referência até a proporção do quadro de saída e especifique “mantenha a proporção, deixe margem”.
- A visualização não mostra o canal alfa; parece haver um halo; verifique o alfa antes de julgar e thresholdize antes de usar.
- Em imagens com vários objetos, o layout pode flutuar: divida a imagem em pedaços, cada pedaço colocado no retângulo do mundo medido, permitindo escala não uniforme por pedaço.
- Marcas comerciais de terceiros copiadas pelo modelo devem ser apagadas.
- As tarefas de geração podem ser executadas em segundo plano em paralelo; enquanto isso, continue com as medições e partes programáticas.
O que não é adequado para modelos de geração: coisas que exigem precisão de movimento ou topologia (anéis giratórios, contas fundidas, gradientes que mudam quadro a quadro, wireframes). Estes são renderizados programaticamente com parâmetros geométricos ajustados; modelos de geração são responsáveis apenas pela textura e pela imagem. Se desviar das ferramentas sugeridas pelo usuário, explique o motivo no relatório.
5.4 Abordagem para Ajustar Objetos 3D Pequenos
- Rastreie a posição quadro a quadro de características salientes (realces);
- Ajuste a órbita projetada (elipse) e, em seguida, use um modelo com perspectiva para explicar “maior perto, menor longe; mais denso perto, mais esparso longe”;
- Leia a velocidade de rotação e o ritmo da conversão de taxa de quadros da sequência de fase;
- Renderize quadro a quadro com os parâmetros ajustados e sobreponha o resultado ao quadro original para verificar a fase.
5.5 Comparação e Entrega
- Cada versão deve produzir: o vídeo final, um vídeo de comparação sincronizada com o original em cima e a réplica embaixo com números de quadro, e várias comparações de quadros-chave lado a lado.
- A documentação deve incluir: tabela de tomadas, curva da câmera, valores medidos elemento por elemento, o que foi alterado em cada versão, e as diferenças que ainda persistem.
- No relatório, descreva claramente o que não foi alinhado, especificando o tipo de diferença (forma, iluminação, posição, tempo); não apenas relatar o que foi corrigido.
6. Lista de Verificação
Antes da entrega, revise item por item:
- A câmera tem apenas translação e zoom; o eixo da régua está sempre no centro da tela; o resíduo da auditoria é constante dentro de cada tomada
- Sem desfoque de movimento; keyframes são principalmente do tipo hold, sem easing desnecessário
- Eventos estão na grade de 6 quadros, sem “fade-in simultâneo”
- Não mais que três cores de destaque; a troca de cor de fundo é abrupta
- Cada elemento real tem silhueta de placeholder ou outra técnica de entrada
- A ordem de sobreposição (quem está sobre quem) é consistente com o original, verificada elemento por elemento
- O número do quadro do flash global está correto; o nível de threshold é preenchido de acordo com a profundidade de bits do projeto
- Saída sem perdas e depois transcodificada; a cor corresponde à referência
- O painel de projeto está organizado em pastas; o diretório de coleta não tem assets faltando e a renderização foi verificada como idêntica
- A documentação lista as diferenças que ainda persistem
7. Problemas Comuns
- Cor de alta saturação fica escura após a renderização: não usou saída sem perdas + conversão bt709 do ffmpeg.
- Elemento desalinhado dezenas de pixels entre duas tomadas: a tabela da câmera errou um período de escala no corte abrupto.
- Direção do wipe errada: o ângulo do wipe linear é a direção do movimento; compense se a camada tiver rotação.
- Quadro de threshold totalmente preto ou branco: em 16 bpc, o nível foi escrito como 0–255.
- Proporção do asset gerada incorreta: a imagem de referência não teve bordas adicionadas para corresponder à proporção do quadro de saída.
- Elemento fixo na tela flutua durante o zoom: a transformação inversa deve usar os valores da câmera de cada quadro para criar keyframes hold quadro a quadro, não apenas keyframes no início e no fim.