{
  "id": "clube-ae-sem-memoria",
  "titulo": "O After Effects travou",
  "categoria": "produto",
  "resumo": "loop quadrado de 9,3 s, sem narração, que conta a piada do After Effects travando por falta de RAM em telas claras da Apple. O ícone do Ae assenta entre os outros ícones da Adobe em cinza, uma barra fina vira o painel de arquivos, o aviso de \"travou\" entra no topo, uma mão em luva clica em \"Ver info\" e o aviso final sugere o upgrade de RAM. A câmera nunca para, e as trocas acontecem dentro de um desfoque de quadro inteiro tingido de lavanda. Um script do After Effects (`cenas.jsx`) monta o projeto do zero. Feito pelo Clube do Motion como recriação do estilo de @illdari.",
  "indicado": "humor de ofício para criadores, editores e designers; post de marca de software ou de hardware; portfólio de UI motion com piada de interface.",
  "estilo": [
    "interface da Apple",
    "modo claro",
    "câmera viva",
    "transição por desfoque tingido",
    "cor só no assunto",
    "texto em arco",
    "loop"
  ],
  "ficha": {
    "formato": "1080×1080, 30 qps, desfoque de movimento com obturador de 360° (fase −180°, 16 amostras)",
    "duracao": "9,3 s, sem narração; o trecho de 4,633 s (139 quadros) se repete a partir de 4,63 s e de 9,27 s",
    "motor": "ae",
    "voz": "ver o guia de estilo",
    "musica": "ver o guia de estilo",
    "fontes": "SF Pro Display (Bold, Semibold, Medium e Regular) e SF Pro Text"
  },
  "ferramentas": [
    "Claude Code",
    "After Effects"
  ],
  "ficha_tecnica": {
    "Duração": "9,3 s, sem narração; o trecho de 4,633 s (139 quadros) se repete a partir de 4,63 s e de 9,27 s",
    "Formato": "1080×1080, 30 qps, desfoque de movimento com obturador de 360° (fase −180°, 16 amostras)",
    "Ferramenta": "After Effects: um script ExtendScript (`cenas.jsx`) cria as comps `PAINEL`, `LOOP` e `RECRIACAO`; o `.aep` já vem montado",
    "Assets": "ícones oficiais da Adobe (Ae, Pr, Ai, Xd e An) e o logo vermelho da Adobe; mão em luva, lupa, ícone (i) e ícone de arquivo desenhados para o projeto",
    "Fontes": "SF Pro Display (Bold, Semibold, Medium e Regular) e SF Pro Text",
    "Som": "trecho de \"Better Now\" (Post Malone), a 95,7 BPM, recortado para as trocas caírem na batida, e 46 efeitos sonoros pela Mesa; −14,0 LUFS. A música fica fora do pacote",
    "Referência": "edit \"Buttery smooth motion in apple style\" de @illdari (23/07/2026)",
    "Arquivo final": "MP4 H.264 com áudio AAC"
  },
  "etapas": [
    {
      "titulo": "O roteiro",
      "texto": "**Resumo:** o vídeo não tem narração; o roteiro é a piada contada em cinco telas, com o texto que aparece e os tempos do `cenas.jsx`. A segunda passada repete tudo com +4,63 s.\n\n## De onde veio a estrutura\n\nO edit de @illdari faz uma piada que todo editor reconhece: o After Effects trava, alguém clica em \"Get Info\" e o sistema responde com uma provocação sobre a RAM. São cinco ideias, uma a cada 0,8 a 1 s, num trecho tocado duas vezes. Esta recriação mantém as telas, a câmera e os tempos, e escreve a piada em português.\n\n## Cenas por tempo\n\n | \n\n | Tempo (s)\n | Texto na tela\n | O que acontece\n\n | 0,00–0,33\n | —\n | a lavanda clareia; o ícone do Ae, enorme e desfocado, assenta no centro\n\n | 0,13–0,57\n | \"After Effects\"\n | os ícones cinza da Adobe fecham em volta; o nome chega letra por letra em arco\n\n | 0,55–1,40\n | —\n | o fundo pulsa em lavanda, o quadro desfoca de leve, a câmera abre e anda para a esquerda\n\n | 0,87–1,20\n | \"Arquivos\" · \"projeto 15MB\" · \"intro 12MB\" · \"apple 2MB\" · \"saas 1.6MB\"\n | uma barra fina ao lado do ícone abre e vira o painel; as linhas entram em cascata\n\n | 1,43–1,72\n | —\n | o painel cresce e engole a tela; o Ae sai pela esquerda\n\n | 1,67–2,48\n | \"After Effects travou\" · \"Arrume mais memória RAM.\"\n | o aviso vermelho entra no topo, os arquivos ficam vermelhos e a câmera mergulha; as linhas de baixo desfocam e o painel some\n\n | 2,40–2,75\n | \"Ver info\"\n | o \"(i)\", o \"Ver\" e o \"info\" caem girando; a pílula cinza aparece por trás\n\n | 2,75–3,20\n | —\n | a mão em luva entra pela direita, freia na pílula e clica\n\n | 3,05–3,55\n | —\n | brilho lavanda do clique, a pílula se enche de ciano e estica; o quadro inteiro desfoca\n\n | 3,53–4,20\n | \"Upgrade de RAM · 16GB\" · \"editar no AE com 8 GB de RAM é coragem\"\n | o aviso sai do desfoque; a câmera passa do ponto, assenta e desce\n\n | 4,20–4,63\n | —\n | o aviso desfoca e tudo volta à lavanda do primeiro quadro\n\n | 4,63–9,30\n | o mesmo\n | segunda passada e o começo da terceira\n\n## Momentos para o som\n\n- A música começa no primeiro quadro; o ícone, a barra que vira painel, o clique e o aviso final ficam perto das batidas, com desvio de até 0,2 s.\n\n- Pop para cada ícone que fecha em volta e para cada peça que cai; som de letras no nome em arco.\n\n- Alerta no \"travou\", mergulho na descida da câmera, clique e brilho no \"Ver info\" e um som de sucesso no aviso final.\n\n- Na segunda passada a música não repete; os eventos tocam de novo com +4,63 s."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** cinzas muito claros (`#E6E6E6` e `#EEEEEE`), lavanda (`#B7B4DA`) nas trocas, painel de contraste baixíssimo e sem sombra, só o ícone do After Effects colorido e um ciano no clique. Câmera viva em todas as cenas e transição por desfoque de quadro inteiro. Números tirados do `cenas.jsx`.\n\n## Palco\n\n | \n\n | Peça\n | Como é\n\n | Tela\n | 1080×1080, 30 qps\n\n | Desfoque de movimento\n | obturador 360°, fase −180°, 16 amostras (limite adaptativo 128)\n\n | Montagem\n | comp `LOOP` de 4,633 s; a `RECRIACAO` empilha três cópias em 0, 4,633 e 9,267 s\n\n | Pré-comp\n | `PAINEL` (1080×1080), desenhado no tamanho e no lugar em que aparece aos 1,20 s\n\n## Cores\n\n | \n\n | Peça\n | Valor\n\n | Fundo\n | `#E6E6E6`, que vira `#EEEEEE` entre 1,50 e 1,75 s\n\n | Tinta da abertura e do fim\n | `#B7B4DA`\n\n | Pulso no meio da cena 1\n | `#C3C0DC`\n\n | Painel e linha destacada\n | `#EFEFEF` · `#FBFBFB`\n\n | Tamanhos de arquivo\n | `#BDBDBD`\n\n | Vizinhos da Adobe\n | Tint com preto `#838383` e branco `#9D9D9D`\n\n | Arquivo travado\n | Tint `#E8302F` / `#FFC2C2`\n\n | Brilho do aviso\n | `#FF6B6B` a 28%\n\n | Pílula e aviso final\n | `#E3E3E5`\n\n | Clique\n | ciano `#86DCE8` e brilho `#CFCBE6`\n\n## Fontes\n\n | \n\n | Fonte\n | Onde\n\n | SF Pro Display Bold\n | \"After Effects\" (48 px, `#14143C`)\n\n | SF Pro Display Medium\n | \"Arquivos\" (34 px), \"Ver\" e \"info\" (34 px)\n\n | SF Pro Display Regular\n | linhas do painel (30 px), tamanhos (18 px), aviso de travou (22 e 15 px), \"Upgrade de RAM\" (36 px) e \"16GB\" (32 px)\n\n | SF Pro Text Regular\n | a piada do aviso final (19 px, `#6E6E73`)\n\n## Curvas\n\n | \n\n | Nome\n | Chaves\n | Uso\n\n | Saída rápida\n | saída 5% · chegada 85–90%\n | ícones, letras, peças que caem, aviso\n\n | Contínua (\"A\")\n | Bézier contínua e automática em cada chave\n | nulos de câmera e escala do painel: a velocidade nunca chega a zero entre chaves\n\n | Suave\n | 50/50\n | clique da mão, pulsos de desfoque\n\n## Cena a cena\n\n | \n\n | Cena\n | Números\n\n | Ícone Ae\n | 368 px; escala 200 › 100%, desfoque 130 › 0 e sobe 150 px em 0–0,33 s\n\n | Vizinhos\n | Pr, Ai, Xd e An a 314 px, a ±475 px do centro; entram de 140 px para fora com desfoque 70 › 0, um a cada quadro, a partir de 0,13 s\n\n | Nome em arco\n | animador com posição (70, −70), rotação 45°, opacidade 0 e desfoque 12; faixa de 40%; deslocamento −40 › 100 em 0,12–0,55 s (cada letra viaja ~6 quadros, ~1 quadro depois da anterior)\n\n | Câmera A\n | escala 100 › 95,7 › 87 › 85 › 84% e x 540 › 235 entre 0,30 e 1,43 s; depois volta a 100% e leva o Ae para x −170 até 1,67 s\n\n | Pulso\n | fundo lavanda de 0 a 100% em 0,55–0,85 s e de volta a 0 em 1,40 s; desfoque do quadro até 22 em 0,90 s\n\n | Painel\n | barra de 20×470 que abre para 444×490 em 0,87–1,10 s; linhas em cascata a cada quadro desde 0,97 s; cresce até 1400×1500 em 1,72 s\n\n | Travou\n | aviso de 370×85 entra em 1,67 s e desce 35 px; linhas descem 66–74 px; ícones ficam vermelhos em 1,80–2,04 s\n\n | Mergulho\n | escala do painel 100 › 103 › 112 › 118 › 165 › 170 › 173% e y até 990 entre 0,85 e 2,48 s; desfoque das linhas 2, 6, 14 e 22 de cima para baixo; o painel some em 2,36–2,48 s\n\n | Ver info\n | \"(i)\", \"Ver\" e \"info\" caem 60 px girando −25° › 0 em 0,2 s, com 2 quadros entre eles; pílula de 232×88 aparece em 2,65–2,72 s\n\n | Mão e clique\n | luva entra de (440, 260) até a pílula em 2,75–2,98 s, girando −20° › 0; aperta para 88% em 3,05–3,20 s; brilho de 820 px com desfoque 260 vai de 20 a 100% e de 0 a 38% de opacidade\n\n | Morph\n | ciano enche a pílula da esquerda para a direita (3,20–3,42 s), a pílula estica 130% na horizontal e o quadro desfoca até 80 (3,46–3,55 s)\n\n | Aviso final\n | card de 608×180, raio 50; câmera 112 › 96 › 97,5 › 97% entre 3,50 e 4,63 s e desce 53 px; desfoque 0 › 60 em 4,20–4,45 s e lavanda a 100% no último quadro\n\n## Som\n\n | \n\n | Item\n | Valor\n\n | Música\n | trecho a partir de 88,464 s de \"Better Now\", 95,7 BPM; ganho −10 dB antes da soma\n\n | Eventos\n | 46 (23 por passada): logo, pop, letras, transição, painel, item, zoom, alerta, mergulho, palavra, move, clique, brilho, sucesso e sai\n\n | Efeitos\n | um por evento, pelo mapa padrão da Mesa, sem tonais; barramentos ×4\n\n | Medido\n | final −14,0 LUFS, pico −1,3 dBFS; música −15,3 e efeitos −18,6 LUFS\n\n## O que é \"humano\" neste vídeo\n\n- Em nenhuma cena a câmera fica parada: abre, anda, mergulha ou assenta.\n\n- A câmera do aviso final passa do ponto e volta, em vez de quicar o card.\n\n- A mão segue derivando alguns pixels depois do clique."
    },
    {
      "titulo": "A montagem no After Effects",
      "texto": "| \n\n | Arquivo\n | O que faz\n\n | `ae/cenas.jsx`\n | apaga o que houver no projeto aberto e monta tudo. No topo ficam o bloco `CFG` (textos, cores, fontes, duração do loop) e o mapa das cenas em segundos. Ajudantes: `K` (chaves com influência, linear, hold ou \"A\", a curva contínua que não deixa a câmera parar), `retang`, `circulo`, `texto`, `textoDireita`, `animador`, `blur`, `tinge` (ícone colorido para cinza) e `rastro`. Cada cena tem um nulo de câmera próprio (`CAM A`, `CAM C`, `CAM D`)\n\n | `ae/ae-apple.aep`\n | o resultado do script, pronto para abrir e renderizar\n\n | `audio/trilha.py`\n | lê `eventos.json`, põe a música 10 dB abaixo antes da soma, coloca um efeito por evento pelo mapa padrão, reforça os efeitos ×4 e mixa para −14 LUFS\n\n | `audio/eventos.json`\n | tempos e tipos de cada evento (logo, pop, letras, transição, painel, item, alerta, mergulho, palavra, clique, brilho, sucesso…)\n\n- **Fontes:** instale SF Pro Display e SF Pro Text em `C:\\Program Files\\Common Files\\Adobe\\Fonts` e reinicie o After Effects.\n\n- **Abrir:** `projeto/ae/ae-apple.aep`. Se o AE pedir arquivos, aponte para `projeto/assets/`.\n\n- **Adaptar:** troque os textos em `CFG.textos` (nome do app, linhas do painel, aviso e piada final), as cores em `CFG.cor` e os ícones em `assets/`, mantendo os nomes. Abra um projeto vazio e rode File › Scripts › Run Script File › `cenas.jsx`.\n\n- **Render:** fila do AE com a comp `RECRIACAO` em H.264.\n\n- **Som:** no `audio/trilha.py`, troque o `sys.path` para a pasta `audio/mesa`, ponha a sua faixa em `audio/musica.wav` e rode `python audio/trilha.py`. Cole o `audio/mix.wav` no vídeo com o ffmpeg (`-c:v copy -c:a aac -shortest`).\n\n**Pegadinhas:** opacidade de nulo não chega aos filhos; por isso cada linha do painel aplica a opacidade em cada parte. O ícone de arquivo está a 17% de escala e o desfoque dele vai ×5,5 para bater com o texto. O Tint com Amount 0 deixa o ícone com a cor original; anime o Amount, e não o preenchimento. Sem a SF Pro instalada, o AE troca a fonte e os textos mudam de largura."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **A câmera nunca para.** Cada cena tem o seu nulo de câmera com chaves de curva contínua: abre de 100 a 84% e anda 300 px na primeira, mergulha de 100 a 173% no painel e passa do ponto e assenta (112 › 96 › 97,5%) no aviso final.\n\n- **A troca acontece dentro do desfoque.** Uma camada de ajuste desfoca o quadro inteiro nas trocas (até 80 no clique) e a lavanda tinge a abertura e o fim do loop.\n\n- **Só o assunto tem cor.** Os vizinhos da Adobe passam por um Tint cinza; o Ae fica azul-marinho e lilás.\n\n- **O painel nasce de uma linha.** Uma barra de 20 px abre para 444 px com a borda direita parada, e depois engole a tela.\n\n- **O erro tem consequência visível.** Quando o aviso entra, as linhas descem, os ícones de arquivo ficam vermelhos e as linhas de baixo desfocam com a distância.\n\n- **Texto que cai.** \"After Effects\" chega letra por letra em arco, girando; \"(i)\", \"Ver\" e \"info\" caem de cima com 2 quadros entre eles.\n\n- **O clique é um evento de luz.** A mão afunda, um brilho lavanda de 820 px cresce enquanto apaga e a pílula se enche de ciano antes do desfoque total.\n\n- **Loop barato.** O trecho toca duas vezes; o último quadro cai na mesma lavanda do primeiro.\n\nDetalhes de cores, tempos e números: estilo.md. Cenas por tempo: roteiro.md. Para fazer o seu com outra piada de interface: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | **v1**\n | recriação ajustada lado a lado com o original, com as medidas de câmera tiradas quadro a quadro; textos e piada em português"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`ae/cenas.jsx` (o gerador comentado), `ae/ae-apple.aep` (o projeto montado) e `assets/` (os 10 PNGs que o script importa)"
    },
    {
      "pasta": "audio/",
      "conteudo": "`trilha.py` (o som inteiro), `eventos.json` (os 46 eventos), `mix.wav`, `relatorio-som.json` e `mesa/`, com o motor de mix `mesa.py` e o `mapa_padrao.py`"
    },
    {
      "pasta": "referencias/",
      "conteudo": "`links.md` (o post original) e `fora-do-pacote.md`"
    },
    {
      "pasta": "render.mp4",
      "conteudo": "o vídeo final"
    },
    {
      "pasta": "ae/cenas.jsx",
      "conteudo": "apaga o que houver no projeto aberto e monta tudo. No topo ficam o bloco `CFG` (textos, cores, fontes, duração do loop) e o mapa das cenas em segundos. Ajudantes: `K` (chaves com influência, linear, hold ou \"A\", a curva contínua que não deixa a câmera parar), `retang`, `circulo`, `texto`, `textoDireita`, `animador`, `blur`, `tinge` (ícone colorido para cinza) e `rastro`. Cada cena tem um nulo de câmera próprio (`CAM A`, `CAM C`, `CAM D`)"
    },
    {
      "pasta": "ae/ae-apple.aep",
      "conteudo": "o resultado do script, pronto para abrir e renderizar"
    },
    {
      "pasta": "audio/trilha.py",
      "conteudo": "lê `eventos.json`, põe a música 10 dB abaixo antes da soma, coloca um efeito por evento pelo mapa padrão, reforça os efeitos ×4 e mixa para −14 LUFS"
    },
    {
      "pasta": "audio/eventos.json",
      "conteudo": "tempos e tipos de cada evento (logo, pop, letras, transição, painel, item, alerta, mergulho, palavra, clique, brilho, sucesso…)"
    }
  ],
  "prompt": "Quero um loop quadrado de piada de interface no mesmo método do projeto \"ae-sem-memoria\", que está em 07-videos/projetos/ae-sem-memoria/: telas claras da Apple, câmera viva, trocas dentro de um desfoque tingido e cor só no assunto.\n\nApp ou ferramenta da piada: {{APP}}\nA piada em 4 ou 5 telas (ex.: ícone › lista › erro › botão › aviso irônico): {{PIADA}}\nFamília do app (os vizinhos que ficam cinza): {{VIZINHOS}}\nCor da tinta das trocas (tom claro): {{COR_TINTA}}\nMúsica (arquivo e segundo de início): {{MUSICA}}\n(Se algum desses estiver vazio ou com as chaves, me pergunte antes de começar.)\n\n1. Estude o projeto antes de propor qualquer coisa. Leia LEIA-ME.md, estilo.md e roteiro.md e abra projeto/ae/cenas.jsx: o bloco CFG, a função K com a curva contínua \"A\", os nulos de câmera de cada cena, a pré-comp PAINEL e as camadas DESFOQUE e TINTA. Me diga em poucas linhas o que vai reaproveitar.\n\n2. Junte os ícones oficiais do app e da família dele (SVG ou PNG do site oficial ou da Wikimedia). Os vizinhos passam por um Tint cinza; só o assunto tem cor.\n\n3. Escreva a piada em português, com frases curtas de interface, e monte a tabela tempo › tela › texto, uma ideia a cada 0,8 a 1 s. Me mostre e espere meu ok.\n\n4. Construa copiando o projeto, sem editar o original. Cada cena ganha um nulo de câmera com chaves contínuas (zoom de 15 a 40% e deriva de centenas de pixels); nenhum trecho com a câmera parada por mais de 10 quadros. Trocas grandes acontecem dentro do desfoque do quadro inteiro; a tinta clara abre e fecha o loop. Painéis nascem de uma linha fina; texto entra letra por letra ou palavra por palavra caindo em arco.\n\n5. O erro precisa ter consequência visível (itens que mudam de cor, câmera que mergulha, profundidade de campo), e o clique precisa de um evento de luz antes da tela seguinte.\n\n6. Feche o loop no mesmo tom do primeiro quadro. Meça as batidas da música (librosa), escreva os eventos num eventos.json e faça o som pelo audio/trilha.py: um efeito por peça, música 10 dB abaixo antes da soma, final em −14 LUFS.\n\n7. Antes do render, me mostre uma folha de contato com 12 quadros, incluindo o meio dos movimentos, e confira se a câmera não para, se nenhum texto fica cortado e se a emenda do loop não aparece. Renderize a comp RECRIACAO em H.264, cole o som com o ffmpeg e entregue o MP4 com uma anotação do que mudou.",
  "campos": [
    "APP",
    "COR_TINTA",
    "MUSICA",
    "PIADA",
    "VIZINHOS"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=ae-sem-memoria",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}