primocode 10.13.0 → 10.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -12
- package/bin/primocode.js +148 -8
- package/lib/act.js +48 -1
- package/lib/catalogo.js +12 -1
- package/lib/config.js +1 -0
- package/lib/estudio/cota.js +150 -0
- package/lib/estudio/dados/projetos/clube-ad5.json +105 -0
- package/lib/estudio/dados/projetos/clube-ae-sem-memoria.json +107 -0
- package/lib/estudio/dados/projetos/clube-agent.json +120 -0
- package/lib/estudio/dados/projetos/clube-antes-e-agora.json +86 -0
- package/lib/estudio/dados/projetos/clube-apresentando-clube.json +110 -0
- package/lib/estudio/dados/projetos/clube-bluevisa.json +106 -0
- package/lib/estudio/dados/projetos/clube-caught-in-the-fire.json +127 -0
- package/lib/estudio/dados/projetos/clube-chat-cliente-satisfeito.json +98 -0
- package/lib/estudio/dados/projetos/clube-chatgpt-anuncios.json +120 -0
- package/lib/estudio/dados/projetos/clube-claude-dj.json +140 -0
- package/lib/estudio/dados/projetos/clube-claude-mcp.json +142 -0
- package/lib/estudio/dados/projetos/clube-cleanui.json +106 -0
- package/lib/estudio/dados/projetos/clube-clinica-take-unico.json +128 -0
- package/lib/estudio/dados/projetos/clube-clinica.json +104 -0
- package/lib/estudio/dados/projetos/clube-clube-opener.json +125 -0
- package/lib/estudio/dados/projetos/clube-clube.json +108 -0
- package/lib/estudio/dados/projetos/clube-codigo.json +101 -0
- package/lib/estudio/dados/projetos/clube-distilbook.json +104 -0
- package/lib/estudio/dados/projetos/clube-drive-upload.json +115 -0
- package/lib/estudio/dados/projetos/clube-dub.json +119 -0
- package/lib/estudio/dados/projetos/clube-enxovaly.json +105 -0
- package/lib/estudio/dados/projetos/clube-fecha7.json +118 -0
- package/lib/estudio/dados/projetos/clube-filatov.json +128 -0
- package/lib/estudio/dados/projetos/clube-frame.json +108 -0
- package/lib/estudio/dados/projetos/clube-glass.json +118 -0
- package/lib/estudio/dados/projetos/clube-letra-em-apps.json +84 -0
- package/lib/estudio/dados/projetos/clube-letra-globo-3d.json +111 -0
- package/lib/estudio/dados/projetos/clube-letra-nos-apps.json +146 -0
- package/lib/estudio/dados/projetos/clube-letra-seis-mundos.json +100 -0
- package/lib/estudio/dados/projetos/clube-lula-3.json +146 -0
- package/lib/estudio/dados/projetos/clube-morph.json +119 -0
- package/lib/estudio/dados/projetos/clube-motion-designer.json +115 -0
- package/lib/estudio/dados/projetos/clube-motion-pacote.json +112 -0
- package/lib/estudio/dados/projetos/clube-movimento.json +103 -0
- package/lib/estudio/dados/projetos/clube-not-like-us.json +117 -0
- package/lib/estudio/dados/projetos/clube-pinterest-inspiracao.json +86 -0
- package/lib/estudio/dados/projetos/clube-pixel-e-tinta.json +108 -0
- package/lib/estudio/dados/projetos/clube-ponte.json +118 -0
- package/lib/estudio/dados/projetos/clube-processo-edit-tonal.json +126 -0
- package/lib/estudio/dados/projetos/clube-processo-motion-100-ia.json +109 -0
- package/lib/estudio/dados/projetos/clube-promo.json +114 -0
- package/lib/estudio/dados/projetos/clube-proposito.json +115 -0
- package/lib/estudio/dados/projetos/clube-rankhog.json +128 -0
- package/lib/estudio/dados/projetos/clube-recursao.json +116 -0
- package/lib/estudio/dados/projetos/clube-revelar.json +118 -0
- package/lib/estudio/dados/projetos/clube-robo.json +125 -0
- package/lib/estudio/dados/projetos/clube-shelby-ep2.json +144 -0
- package/lib/estudio/dados/projetos/clube-shelby.json +97 -0
- package/lib/estudio/dados/projetos/clube-solar-eclipse.json +96 -0
- package/lib/estudio/dados/projetos/clube-soldier.json +128 -0
- package/lib/estudio/dados/projetos/clube-som-de-cena.json +108 -0
- package/lib/estudio/dados/projetos/clube-spotify-candidatura.json +112 -0
- package/lib/estudio/dados/projetos/clube-tda-app.json +118 -0
- package/lib/estudio/dados/projetos/clube-tda-ia.json +75 -0
- package/lib/estudio/dados/projetos/clube-telegram-chat.json +118 -0
- package/lib/estudio/dados/projetos/clube-telegram-ilha.json +106 -0
- package/lib/estudio/dados/projetos/clube-tennessee-nike.json +132 -0
- package/lib/estudio/dados/projetos/clube-tudo-se-move.json +112 -0
- package/lib/estudio/dados/projetos/clube-uiad.json +107 -0
- package/lib/estudio/dados/projetos/clube-viralgrow.json +108 -0
- package/lib/estudio/dados/projetos/clube-whose-side.json +140 -0
- package/lib/estudio/dados/projetos/clube-youtube-inscrever.json +108 -0
- package/lib/estudio/dados/projetos/elementos-do-site-em-movimento.json +49 -0
- package/lib/estudio/dados/projetos/explainer-narrado.json +51 -0
- package/lib/estudio/dados/projetos/lancamento-de-produto.json +51 -0
- package/lib/estudio/dados/projetos/motion-so-com-sons.json +50 -0
- package/lib/estudio/dados/projetos/titulo-em-after-effects.json +51 -0
- package/lib/estudio/dados/projetos/tour-de-saas.json +50 -0
- package/lib/estudio/dados/projetos-ae/antes-e-agora/ae/cenas.jsx +733 -0
- package/lib/estudio/dados/projetos-ae/antes-e-agora/assets/fazer_assets.py +88 -0
- package/lib/estudio/dados/projetos-ae/letra-em-apps/ae/cenas.jsx +402 -0
- package/lib/estudio/dados/projetos-ae/letra-em-apps/assets/preparar_assets.py +17 -0
- package/lib/estudio/dados/projetos-ae/letra-em-apps/assets/svg_para_ae.py +25 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/BRIEF-AGENTES.md +31 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/README.md +53 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ROTEIRO-CENAS.md +69 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/A-agenda.jsx +148 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/B-docs.jsx +174 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/C-alttab.jsx +113 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/D-spotify.jsx +118 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/E-notas.jsx +146 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/F-jornal1.jsx +144 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/G-google.jsx +153 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/H-mapa.jsx +176 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/I-imagens.jsx +132 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/J-jornal2.jsx +191 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/K-maps.jsx +184 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/camera-movimentos.jsx +48 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/camera.jsx +57 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/card-spotify.jsx +98 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/digitar.jsx +38 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/jornal-comum.jsx +196 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/letra.jsx +23 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/letra_automatica.py +83 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/montagem.jsx +74 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-agenda/render_html.py +13 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-agenda/util.jsx +162 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-midia-comum.jsx +114 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/wg-util.jsx +360 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/F-jornal1/render_html.py +13 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/render_w-midia.py +26 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/inclin.py +30 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_d.py +36 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_e.py +27 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/ajustar_movimentos.py +61 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/ancorar.py +74 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/assar.py +47 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/camera3d_jornal.py +172 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/comparar.py +32 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/dados_ae_jornal.py +46 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/folha_contato.py +28 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/homografia_jornal.py +74 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/integrar.py +44 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/medir_quadro_a_quadro.py +32 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/mesa_2d.py +64 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/plot_cenas.py +11 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/retificar_quadros.py +38 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/w-agenda/assar_ab.py +52 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/w-agenda/medir_ab.py +59 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_ajustar_h.py +111 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_corrige_cam.py +17 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_ecc_cadeia.py +80 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_finalizar_cam.py +65 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_mosaico.py +61 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/01-gramatica-e-roteiro.md +55 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/02-camera.md +66 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/03-montagem-no-ae.md +50 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/04-render-e-conferencia.md +43 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/05-abertura-celular-mergulho.md +43 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces.md +42 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/atraso_imagem.py +31 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/fundo.py +56 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/juntar.py +45 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/montar.py +177 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/rastreio.py +74 -0
- package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/sincronia.py +18 -0
- package/lib/estudio/dados/projetos-ae/pinterest-inspiracao/ae/cenas.jsx +530 -0
- package/lib/estudio/dados/projetos-ae/pinterest-inspiracao/assets/fazer_assets.py +107 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/assets/pessoas/figurinha.py +46 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/BRIEF-A.md +83 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/audio.py +179 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/confere.py +20 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte1.js +1 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte2.js +1 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/gerar_emojis.py +11 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/img/filmes/_indice.js +122 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/base.js +380 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/main.js +86 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1a.js +169 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1b.js +455 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1c.js +389 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p2.js +379 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/video.py +62 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/README.md +65 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/oraculo_take.py +137 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/render_take.py +388 -0
- package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/take.js +235 -0
- package/lib/estudio/editor.js +285 -0
- package/lib/estudio/effectcraft.js +152 -0
- package/lib/estudio/exportar.js +181 -0
- package/lib/estudio/index.js +90 -2
- package/lib/estudio/kit-ae/base.jsx +1146 -0
- package/lib/estudio/kit-ae/cenas.jsx +395 -0
- package/lib/estudio/kit-ae/primitivas.jsx +911 -0
- package/lib/estudio/maquina-diretor.js +393 -0
- package/lib/estudio/maquina-elementos.js +134 -0
- package/lib/estudio/maquina-layout.js +198 -0
- package/lib/estudio/maquina-som.js +478 -0
- package/lib/estudio/maquina-trilha.js +160 -0
- package/lib/estudio/maquina-voz.js +429 -0
- package/lib/estudio/maquina.js +516 -0
- package/lib/estudio/projetos.js +60 -0
- package/lib/headless.js +71 -0
- package/lib/hooks.js +72 -0
- package/lib/local/cerebro.json +398 -12
- package/lib/local/entrada.js +46 -2
- package/lib/marca-kit.js +309 -0
- package/lib/mcp.js +286 -6
- package/lib/perigo.js +31 -3
- package/lib/planos.js +47 -19
- package/lib/preparar.js +111 -0
- package/lib/retomar.js +55 -0
- package/lib/sandbox.js +197 -0
- package/lib/skills.js +3 -1
- package/lib/tools.js +13 -4
- package/lib/ui.js +1 -1
- package/package.json +4 -2
- package/skills/after-effects/SKILL.md +52 -0
- package/skills/maquina-de-motion/SKILL.md +84 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "clube-caught-in-the-fire",
|
|
3
|
+
"titulo": "Música vira trailer",
|
|
4
|
+
"categoria": "sound",
|
|
5
|
+
"resumo": "Reel vertical de 60,5 s, sem narração, que mostra \"Caught In The Fire\" (Tommee Profitt, com Sam Tinnesz) duas vezes: primeiro como ela é, depois no remix cinematográfico que o Claude montou com efeitos tonais no tom da música. O gancho é texto na tela, a música já toca abafada por baixo dele e a diferença aparece numa timeline de editor com a onda real de cada camada. O edit acontece num mundo de fogo e brasa sobre a noite azul da capa do álbum. Tudo é um take único em HTML com o quadro calculado pelo tempo, renderizado a 60 qps com desfoque de movimento. Feito pelo Clube do Motion e publicado no Instagram.",
|
|
6
|
+
"indicado": "criador, produtora, estúdio de som ou marca que quer mostrar o que uma trilha muda num vídeo para quem não é técnico; lançamento de skill, ferramenta ou serviço de áudio; série de Reels de música.",
|
|
7
|
+
"estilo": [
|
|
8
|
+
"timeline viva",
|
|
9
|
+
"antes e depois",
|
|
10
|
+
"sound design tonal",
|
|
11
|
+
"mundo de fogo e brasa",
|
|
12
|
+
"íris de seis lâminas",
|
|
13
|
+
"texto que nasce em brasa e esfria",
|
|
14
|
+
"take único"
|
|
15
|
+
],
|
|
16
|
+
"ficha": {
|
|
17
|
+
"formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 51,4 MB",
|
|
18
|
+
"duracao": "60,5 s (3.630 quadros), sem narração",
|
|
19
|
+
"motor": "html",
|
|
20
|
+
"voz": "ver o guia de estilo",
|
|
21
|
+
"musica": "\"Caught In The Fire\" (Tommee Profitt, com Sam Tinnesz): o original no gancho e no normal, o remix cinematográfico v4 no edit (Lá menor, 130,4 BPM, drop em 37,68 s do remix)",
|
|
22
|
+
"fontes": "ver o guia de estilo"
|
|
23
|
+
},
|
|
24
|
+
"ferramentas": [
|
|
25
|
+
"Claude Code"
|
|
26
|
+
],
|
|
27
|
+
"ficha_tecnica": {
|
|
28
|
+
"Duração": "60,5 s (3.630 quadros), sem narração",
|
|
29
|
+
"Formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 51,4 MB",
|
|
30
|
+
"Ferramenta": "HTML + canvas num take único, motor `take-unico` (render no Chromium sem janela, obturador de 180°); trilha e dados em Python",
|
|
31
|
+
"Música": "\"Caught In The Fire\" (Tommee Profitt, com Sam Tinnesz): o original no gancho e no normal, o remix cinematográfico v4 no edit (Lá menor, 130,4 BPM, drop em 37,68 s do remix)",
|
|
32
|
+
"Timeline": "22 clipes do remix e a música original inteira, com a onda calculada do áudio de cada camada",
|
|
33
|
+
"Som": "44 eventos exportados da composição; −14,0 LUFS, pico verdadeiro de −1,2 dBFS",
|
|
34
|
+
"Referência": "um short do Multiply Sound que compara, na mesma timeline, efeitos comuns e efeitos tonais no tom da música"
|
|
35
|
+
},
|
|
36
|
+
"etapas": [
|
|
37
|
+
{
|
|
38
|
+
"titulo": "O roteiro",
|
|
39
|
+
"texto": "**Resumo:** o Reel não tem narração; o roteiro é a sequência de telas, com o texto exato que aparece, e os momentos da trilha. A ideia do vídeo cabe no gancho: pedir ao Claude que transforme uma música num trailer de filme. Os tempos são os do vídeo final (v2); no edit, o segundo do remix é o segundo do vídeo menos 12,48.\n\n## De onde veio a estrutura\n\nO formato vem de um short do Multiply Sound que toca, na mesma timeline, efeitos comuns e efeitos tonais no tom da música, e deixa o ouvinte perceber a diferença sozinho. Aqui a comparação é entre a música normal e a música que o Claude editou. A primeira versão explicava cada elemento com uma frase na tela; a versão final trocou as frases por uma etiqueta curta presa ao clipe, porque quem não é técnico entende pelo som e pelo elemento, e não pela leitura.\n\n## Textos na tela\n\n | \n\n | Onde\n | Texto\n\n | Gancho\n | \"POV: você pediu pro Claude transformar uma música num trailer de filme\"\n\n | Normal\n | \"Música normal\"\n\n | Cartela de trailer\n | \"Agora, o edit do Claude\", que vira a pílula \"Edit do Claude\"\n\n | Etiquetas (uma por vez)\n | \"Piano: abre o clima de filme\" · \"Fundo: dá peso de cinema\" · \"Só a voz do Sam Tinnesz\" · \"Violoncelo: responde a voz\" · \"Piano: acompanha a música\" · \"Subida: prepara a explosão\" · \"A música inteira explode aqui\"\n\n | Notas\n | ♪ Lá, Lá/Mi; Am, B♭, Dm, G, F\n\n | Crédito\n | \"Tommee Profitt – Caught In The Fire (feat. Sam Tinnesz)\" com a capa do álbum\n\n | CTA\n | \"Comenta DJ que eu te mando o passo a passo\" e o comentário \"DJ\" digitado e enviado\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | O que acontece\n\n | 1\n | 0,20–3,45\n | o gancho cai palavra por palavra na mesa creme, cada palavra nascendo argila e esfriando para a tinta; \"Claude\" (1,35 s) pulsa o símbolo; \"filme\" (3,45 s) pisca as barras de cinema; a música já toca abafada por baixo\n\n | 2\n | 3,90–4,45\n | \"música\" vira o clipe azul e a câmera mergulha; o cursor nasce e o rótulo \"Música normal\" entra\n\n | 3\n | 4,45–12,00\n | **Música normal**: ambiente cinza, o cursor toca o refrão original (\"We're caught in the fire / and it burns right through the bones\")\n\n | 4\n | 12,00–12,48\n | a fita rebobina com tape stop até o zero do remix\n\n | 5\n | 12,42–13,22\n | íris de seis lâminas abre do cursor para a noite com brasas; o clipe se divide (a voz fica adormecida, o instrumental cai)\n\n | 6\n | 12,56–14,1\n | a cartela \"Agora, o edit do Claude\" encolhe e vira a pílula da timeline (13,88 s)\n\n | 7\n | 14,1\n | Piano Ping: \"Piano: abre o clima de filme\"\n\n | 8\n | 16,6\n | fundos graves (Atlantic e Soft Circuit): \"Fundo: dá peso de cinema\"\n\n | 9\n | 22,2\n | a voz entra: \"Só a voz do Sam Tinnesz\", e a foto dele sai do clipe da voz\n\n | 10\n | 25,0\n | violoncelo nos respiros da voz: \"Violoncelo: responde a voz\"\n\n | 11\n | 28,1\n | acordes de piano seguindo a harmonia: \"Piano: acompanha a música\"; as letras dos acordes rolam dos clipes\n\n | 12\n | 45,1–50,16\n | subida (Activation e Breathe): \"Subida: prepara a explosão\"; a câmera empurra e o cursor vai ao centro\n\n | 13\n | **50,16**\n | **drop** seco no bumbo: clarão, brasas que explodem, tremor; \"A música inteira explode aqui\"; a timeline pulsa nos bumbos\n\n | 14\n | 53,9–55,9\n | a capa e o crédito saem do clipe da música\n\n | 15\n | 56,0–58,5\n | CTA: o símbolo da pílula voa para o cartão; \"Comenta DJ que eu te mando o passo a passo\"; \"DJ\" digitado em 0,6 s e enviado (58,5 s); marca do Claude Code\n\n | 16\n | 58,5–60,5\n | a música segue e some\n\n## Momentos para a trilha\n\n- 0,2–4,3 s: a música abafada abrindo até cheia; um glock por palavra, harpa em \"música\", golpe de trailer em \"filme\".\n\n- 4,45 s: o refrão original, sem corte.\n\n- 12,00 s: tape stop de 0,48 s.\n\n- 12,48 s: o remix do zero, com piano e drones; o começo é baixo de propósito.\n\n- 22,2 s: a voz entra quase sozinha.\n\n- **50,16 s: drop do remix**, sem efeito por cima.\n\n- 56–58,5 s: pop, glock, digitação e envio do comentário.\n\nA lista completa dos 44 eventos, com tempo, tipo e pan, está em `audio/eventos.json`; os 22 clipes do remix, com trilha e começo e fim, em `comp/dados/timeline-resumo.md`."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"titulo": "A identidade visual",
|
|
43
|
+
"texto": "**Resumo:** três ambientes: a mesa creme do Claude no gancho, o cinza sem brilho na música normal e, no edit, fogo e brasa sobre a noite azul da capa do álbum. A argila do Claude já é cor de brasa, por isso faz a ponte entre os dois mundos. A timeline mantém as cores do editor dos shorts do Multiply Sound, e a brasa fica no ambiente e no brilho de quem toca. Cores medidas por k-means nas imagens oficiais; números tirados do `index.html`, do `trilha.py` e da revisão do projeto.\n\n## Cores medidas\n\n- **Capa do Cinematic Songs Vol. 1:** noite `#010103` e `#040911`, azul-aço `#091622` e `#162D3B`, título vermelho `#C55350`, borda vinho `#673034`.\n\n- **Foto do Tommee Profitt:** vermelho `#C2070F`, `#890308`, `#570405`.\n\n- **Foto do Sam Tinnesz:** sombra `#171815`, couro `#3D322B`, pele quente `#A2694C` e `#E1AD88`.\n\n## Paleta\n\n | \n\n | Papel\n | Cor\n | Origem\n\n | Mesa do Claude (gancho e CTA)\n | creme `#F4F0E8` · argila `#D97757` · tinta `#1F1E1D`\n | Reel do DJ\n\n | Trecho normal\n | cinza `#2A2A2E` · onda `#B9B9BE`\n | Reel do DJ\n\n | Fundo do edit\n | noite `#040911` → azul-aço `#0A1D2B`\n | capa\n\n | Brasa (partículas e brilho dos clipes)\n | `#F26B1D` → chama `#FFB547` → faísca `#FFE3A3`\n | o fogo da letra, puxado da argila\n\n | Calor do drop\n | `#C2070F` com brilho `#D03324`, no fogo e no clipe da música\n | foto do Tommee Profitt\n\n | Luzes do fundo\n | fogo no pé da tela, fumaça azul, clarão do drop e pulso nos bumbos\n | capa e letra\n\n## Tipografia\n\n- **Source Serif 4, Inter e Geist Mono** na parte do Claude, como no Reel do DJ.\n\n- **Cinzel** na cartela de trailer \"Agora, o edit do Claude\".\n\n- **Michroma**, larga e em caixa-alta como a fonte da capa, só no nome da faixa no crédito.\n\n- Nomes dos clipes em 31 px; etiquetas de 46 px presas ao clipe.\n\n## Timeline\n\n- Cores do editor como assinatura do formato: música em azul, tonais em verde-água, efeitos do Reel em argila, cursor vermelho.\n\n- 22 clipes do plano do remix e a música original inteira, com onda a 40 pontos por segundo, escala de −42 a 0 dB.\n\n- Nove trilhas: música, voz, Piano Ping, Atlantic, Soft Circuit, violoncelo, Electric Wave (os acordes), Activation e Breach, Breathe.\n\n- Cada camada chega à sua trilha quando começa (nunca surge do nada) e acende pelo nível real no cursor.\n\n- Na v2, sem a faixa de textos, a timeline subiu e cresceu (zoom de 0,98 a 1,0), com a pílula \"Edit do Claude\" em y 404.\n\n## Elementos do edit\n\n | \n\n | Peça\n | Como é\n\n | Etiqueta\n | uma por elemento, presa ao clipe, entra com ele e sai em 2,5 s; no máximo uma na tela\n\n | Notas\n | saem de cada clipe tonal nos golpes medidos na onda real: \"♪ Lá\" no Piano Ping, nos drones (a cada 2 compassos), nos risers e no Breach; \"Lá/Mi\" no violoncelo; a letra do acorde nos Electric Wave (Am, B♭, Dm, G, F)\n\n | Foto do cantor\n | sai do clipe da voz quando ele começa a cantar (22,2 s)\n\n | Brasas\n | partículas determinísticas que sobem devagar do pé da tela, em duas camadas (atrás e na frente da timeline), numa deriva que nunca para\n\n | Voz\n | na separação, o clipe da voz fica adormecido; ele acende quando o cantor entra, com o brilho de brasa de quem toca\n\n## Texto que nasce em brasa e esfria\n\nCada palavra nasce em `#F26B1D` com desfoque de 12 px e esfria para o branco em ~0,5 s; a palavra-chave esfria para `#FFB547`. No gancho, sobre a mesa creme, a palavra nasce argila e esfria para a tinta.\n\n## Transições\n\n- **Gancho → normal:** a palavra \"música\" vira o clipe azul e a câmera mergulha.\n\n- **Normal → edit:** a fita rebobina com tape stop até o zero do remix; uma íris de seis lâminas, com as arestas visíveis, abre a partir do cursor girando 0,9 rad, com pouso macio; o clipe se divide (a voz fica adormecida, o instrumental cai); a cartela \"Agora, o edit do Claude\" encolhe e vira a pílula da timeline.\n\n- **Drop → crédito:** a capa sai do clipe da música com \"Tommee Profitt – Caught In The Fire (feat. Sam Tinnesz)\".\n\n- **Crédito → CTA:** o símbolo da pílula voa para o cartão do CTA.\n\n## Câmera\n\n- No gancho, a palavra \"Claude\" pulsa o símbolo e \"filme\" pisca as barras de cinema.\n\n- No normal, zoom 2,0 no clipe azul; segue o cursor com mola.\n\n- Na subida até o drop, empurra de 0,90 para 0,97 e o cursor vai para o centro.\n\n- No drop, clarão laranja seco, tremor curto e a timeline pulsando nos bumbos medidos, com ataque de ~30 ms.\n\n- Segura de propósito em três trechos, para o vídeo respirar; fora isso, nunca para.\n\n## Render\n\n60 qps, obturador de 180°, em dois trechos (0 a 30 s e 30 s em diante) juntados sem recomprimir; um grão fixo leve no final. H.264 CRF 16, BT.709, AAC de 256 kbps a 48 kHz.\n\n## Trilha\n\n | \n\n | Trecho\n | Som\n\n | Gancho\n | a própria faixa (segundo da música = segundo do vídeo + 38,10), com passa-baixa de 350 Hz abrindo até cheio em 4,3 s e uma sala que some junto\n\n | Normal\n | o refrão original, sem corte depois do gancho\n\n | Virada\n | tape stop real de 0,48 s\n\n | Edit\n | o remix v4 do zero em 12,48 s; o drop do remix casa com o mesmo trecho do original\n\n | CTA\n | a música segue e some\n\nO começo do edit fica baixo de propósito: o remix abre só com piano e drones, cerca de 12 dB abaixo do refrão normal, até a voz entrar.\n\n## Sound design\n\n | \n\n | Evento\n | Som\n\n | Cada palavra do gancho\n | glock na escala pentatônica de Lá menor e um pop\n\n | \"Claude\"\n | sino tonal e glock em Mi\n\n | \"música\"\n | arpejo de harpa em Lá, Dó e Mi\n\n | \"trailer\" · \"filme\"\n | piano grave em Lá; no \"filme\", golpe de trailer, impacto e acorde de piano\n\n | Carry, rebobinada e íris\n | whoosh longo; fita; whoosh grave com clique\n\n | Etiquetas\n | pop ao entrar (com o tom alternando) e whoosh curto ao sair\n\n | Foto e capa\n | pop e whoosh curto\n\n | Drop\n | nada: o drop é do remix\n\n | CTA\n | pop e glock; digitação real do \"DJ\" em 0,6 s; envio com clique, glock e whoosh\n\n- Cada efeito entra num nível relativo à música do instante, medido em curto prazo com ponderação K: 4 a 9 dB abaixo no gancho (o \"filme\" fica 4 dB acima, é o golpe de trailer), 9 a 16 dB abaixo no edit e 1 a 9 dB abaixo no CTA.\n\n- A IR da sala foi normalizada antes da mix.\n\n- **Final:** −14,0 LUFS, pico verdadeiro de −1,2 dBFS.\n\n## O que é \"humano\" neste vídeo\n\n- As brasas sobem o tempo todo, mesmo quando a câmera segura.\n\n- A íris pousa macia e o CTA entra devagar (mola com ζ 0,74 e ω 8,5).\n\n- O \"DJ\" do comentário é digitado em 0,6 s, no ritmo de uma pessoa.\n\n- Os clipes acendem pelo nível real do som, e não por uma animação fixa."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"titulo": "A montagem em HTML",
|
|
47
|
+
"texto": "| \n\n | Arquivo\n | O que faz\n\n | `comp/index.html`\n | no cabeçalho fica a folha de batidas; no topo, `N0` (normal), `RB` (rebobina), `E0` (início do edit) e `R(r)`, que converte segundo do remix em segundo do vídeo; `seek(t)` monta o quadro; a timeline é um canvas desenhado com a matriz da câmera; `window.__events()` devolve os eventos\n\n | `take-unico/render_take.py`\n | renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos` e `--retomar`\n\n | `take-unico/oraculo_take.py`\n | confere continuidade, enquadramento, respiros e saltos; `--eventos` exporta os eventos para a trilha\n\n | `audio/timeline_dados.py`\n | renderiza cada camada do remix sozinha, com o mesmo ganho e filtro da mixagem, e grava `comp/dados/timeline.js` e o resumo\n\n | `audio/batidas.py`\n | mede os bumbos depois do drop (beat_this) para `comp/dados/batidas.js`\n\n | `audio/trilha.py`\n | música abafada no gancho abrindo até o normal, tape stop, remix do zero, um efeito por palavra e por elemento, cada um num nível relativo à música do instante; mix em −14 LUFS\n\n | `render/final.sh`\n | final a 60 qps em dois trechos com a trava entre agentes, junção com grão e som; `remendo.sh` refaz só os trechos corrigidos\n\n | `revisao/carga_texto.py`\n | conta, quadro a quadro, quantos textos estão na tela\n\n | `audio/remix/`\n | o plano do remix (`cinematografico-v4.json`), a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v4` roda tudo)\n\n- **Junte as pastas:** descompacte `projeto/` dentro de `07-videos/projetos/caught-in-the-fire/` e ponha `audio/` ao lado de `comp/`. Copie `projeto/take-unico/` para `07-videos/biblioteca/take-unico/`: o `index.html` carrega `../../../biblioteca/take-unico/take.js`.\n\n- **Imagens:** baixe a capa e as fotos pelos links de `referencias/fontes.md` com os nomes que o `index.html` espera, ou troque pelas do seu artista.\n\n- **Instale:** Python 3.11 com numpy, scipy, soundfile, librosa, pyloudnorm e playwright (`playwright install chromium`), o beat_this e o ffmpeg.\n\n- **Aponte os caminhos:** no topo de `audio/trilha.py`, `timeline_dados.py` e `batidas.py`, troque o `sys.path` por `audio/motor/`, `N` por `audio/sfx/`, `TON` pela sua pasta de efeitos tonais e `FONTE` pela pasta da sua música e do seu remix.\n\n- **Ver no navegador:** `comp/index.html?t=50.2&hud` para parar no drop ou `?play` para tocar.\n\n- **Conferência:** `python ../../biblioteca/take-unico/oraculo_take.py comp/index.html` (precisa dar PASSA) e `python revisao/carga_texto.py comp/index.html`.\n\n- **Som:** `oraculo_take.py comp/index.html --eventos audio/eventos.json` e, em `audio/`, `python trilha.py`.\n\n- **Vídeo:** `bash render/rascunho.sh v3` (30 qps com som) para conferir e `bash render/final.sh v3` para o final.\n\n**Pegadinhas:** os `.sh` usam uma trava entre agentes em `C:/Dev/_tools/.lock-render` e esperam 8 GB de memória livre pelo Windows; troque pelo que fizer sentido na sua máquina. A sala (IR) dos efeitos precisa estar normalizada: com a IR crua, o hall ficava 13 dB acima do som seco e a cama do gancho saía mais alta que o normal. O AAC passa de 0 dBFS no gancho se a mix não tiver folga."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"titulo": "As decisões de direção",
|
|
51
|
+
"texto": "- **A mesma frase nas duas versões:** o refrão \"We're caught in the fire / and it burns right through the bones\" no normal e no edit.\n\n- **A música nunca para.** No gancho, a faixa já toca abafada (passa-baixa de 350 Hz que abre até cheio em 4,3 s) e vira o refrão normal sem corte.\n\n- **Para quem não é técnico.** Nenhuma frase explicativa: só uma etiqueta simples presa ao clipe (\"Piano: abre o clima de filme\"), no máximo uma por vez, e as notas saindo de cada clipe tonal (♪ Lá, Lá/Mi, Am, B♭, Dm, G, F). Conferido quadro a quadro.\n\n- **A virada abre outro mundo.** Tape stop de 0,48 s, íris de seis lâminas que gira enquanto abre do cursor e a noite com brasas no lugar do cinza.\n\n- **O texto nasce em brasa e esfria:** cada palavra nasce laranja (`#F26B1D`) com desfoque e passa para o branco em ~0,5 s; no gancho, nasce argila e esfria para a tinta.\n\n- **A timeline é a estrela:** as cores do editor (música em azul, tonais em verde-água), a brasa no ambiente e no brilho de quem toca.\n\n- **A foto do cantor sai do clipe da voz** quando ele começa a cantar.\n\n- **Drop seco no bumbo:** clarão, brasas que explodem, tremor e a timeline pulsando nos bumbos medidos; nenhum efeito por cima, porque o drop é do remix.\n\n- **Efeitos no nível da música do instante:** 4 a 9 dB abaixo dela no gancho, 9 a 16 dB no edit e 1 a 9 dB no CTA.\n\n- **Câmera que segura de propósito em três trechos**, para o vídeo respirar sem parar morto.\n\nDetalhes de cores, curvas e som: estilo.md. Cenas por tempo e textos: roteiro.md. Para fazer o mesmo com a sua música: PROMPT.md."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"titulo": "As versões até o final",
|
|
55
|
+
"texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | gancho, normal, rebobinada, edit com oito frases explicando cada elemento e uma fita de acordes, drop e CTA; a revisão com uma IA que assiste com áudio pediu tape stop mais longo, nomes dos clipes maiores, menos textos juntos e íris mais macia\n\n | **v2**\n | aprovada e publicada: saíram as frases explicativas e a fita de acordes; entraram as notas saindo dos clipes e uma etiqueta por elemento; a timeline subiu e cresceu (zoom de 0,87–0,90 para 0,98–1,0)"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"pacote": [
|
|
59
|
+
{
|
|
60
|
+
"pasta": "projeto/",
|
|
61
|
+
"conteudo": "`comp/index.html` (o Reel inteiro), `comp/dados/` (`timeline.js`, `batidas.js`, `timeline-resumo.md`), `comp/fonts/` (Cinzel, Michroma, Source Serif 4, Inter, Geist Mono, Material Icons), `comp/assets/` (símbolo do Claude, ícones do Claude Code, After Effects e Instagram), `render/` (`rascunho.sh`, `final.sh`, `remendo.sh`, `trava.sh`), `revisao/carga_texto.py`, `take-unico/` (o motor), `roteiro.md` e `legenda.md`"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"pasta": "audio/",
|
|
65
|
+
"conteudo": "`trilha.py` (o som inteiro), `timeline_dados.py`, `batidas.py`, `eventos.json`, `mix.wav`, `notas/` (glock, harpa e piano gerados), `sfx/` (os efeitos de interface usados), `motor/` (`orquestra.py`, `trilha_momentos.py`) e `remix/` (o plano v4, a medição e os scripts do remix)"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"pasta": "referencias/",
|
|
69
|
+
"conteudo": "identidade visual, fontes dos assets com os links, o brief dos Reels musicais, o estudo do remix, o tutorial do take único, `links.md` e `fora-do-pacote.md`"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"pasta": "render.mp4",
|
|
73
|
+
"conteudo": "o Reel final (v2)"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"pasta": "comp/index.html",
|
|
77
|
+
"conteudo": "no cabeçalho fica a folha de batidas; no topo, `N0` (normal), `RB` (rebobina), `E0` (início do edit) e `R(r)`, que converte segundo do remix em segundo do vídeo; `seek(t)` monta o quadro; a timeline é um canvas desenhado com a matriz da câmera; `window.__events()` devolve os eventos"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"pasta": "take-unico/render_take.py",
|
|
81
|
+
"conteudo": "renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos` e `--retomar`"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"pasta": "take-unico/oraculo_take.py",
|
|
85
|
+
"conteudo": "confere continuidade, enquadramento, respiros e saltos; `--eventos` exporta os eventos para a trilha"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"pasta": "audio/timeline_dados.py",
|
|
89
|
+
"conteudo": "renderiza cada camada do remix sozinha, com o mesmo ganho e filtro da mixagem, e grava `comp/dados/timeline.js` e o resumo"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"pasta": "audio/batidas.py",
|
|
93
|
+
"conteudo": "mede os bumbos depois do drop (beat_this) para `comp/dados/batidas.js`"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"pasta": "audio/trilha.py",
|
|
97
|
+
"conteudo": "música abafada no gancho abrindo até o normal, *tape stop*, remix do zero, um efeito por palavra e por elemento, cada um num nível relativo à música do instante; mix em −14 LUFS"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"pasta": "render/final.sh",
|
|
101
|
+
"conteudo": "final a 60 qps em dois trechos com a trava entre agentes, junção com grão e som; `remendo.sh` refaz só os trechos corrigidos"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"pasta": "revisao/carga_texto.py",
|
|
105
|
+
"conteudo": "conta, quadro a quadro, quantos textos estão na tela"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"pasta": "audio/remix/",
|
|
109
|
+
"conteudo": "o plano do remix (`cinematografico-v4.json`), a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v4` roda tudo)"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"prompt": "Quero um Reel musical vertical, sem narração, no mesmo método do projeto \"Caught In The Fire\", que está em 07-videos/projetos/caught-in-the-fire/, com a minha música.\n\nMúsica (arquivo original, com o nome do artista e da faixa): {{MUSICA}}\nFrase do refrão que toca nas duas versões: {{FRASE}}\nVersão editada, se já existir (senão, monte com os scripts de audio/remix/): {{VERSAO_EDITADA}}\nTexto do gancho (o texto é meu; não reescreva): {{GANCHO}}\nFotos e capa do artista (links oficiais ou arquivos): {{IMAGENS}}\nChamada final (palavra para comentar e o que a pessoa recebe): {{CTA}}\nFormato: 1080×1920, 60 qps · Duração: {{DURACAO}} (a referência tem 60,5 s)\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, nesta ordem: LEIA-ME.md, estilo.md e roteiro.md. Depois abra comp/index.html e leia a folha de batidas do cabeçalho, os tempos do topo (N0, RB, E0, R()), como a timeline é desenhada em canvas, as brasas, a íris de seis lâminas, as etiquetas, as notas que saem dos clipes e window.__events(). Leia também audio/timeline_dados.py, audio/trilha.py e take-unico/README.md. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Meça a música e o remix: tom, BPM, bumbos (beat_this), o refrão do normal, o drop e a relação entre o segundo da música e o segundo do remix. A frase do normal e a do edit têm de ser a mesma.\n\n3. Tire a identidade do mundo da música, não da imaginação: meça as cores da capa e das fotos do artista (k-means), escolha um clima que venha da letra ou do título (aqui, fogo e brasa sobre a noite da capa) e uma fonte que lembre a da capa só para o nome da faixa. Mantenha as cores do editor na timeline (música em azul, tonais em verde-água, cursor vermelho). Me mostre a paleta e espere meu ok.\n\n4. Gere os dados da timeline com timeline_dados.py: um clipe por camada do remix, com o nome do arquivo e o tom no nome, e a onda calculada do áudio dela. Nada de onda inventada.\n\n5. Escreva a folha de batidas no cabeçalho do index.html antes de animar: tempo, batida, câmera e o que passa para a próxima cena. Uma palavra do gancho vira o clipe azul; a cartela do edit vira a pílula; a pílula vira o crédito; o símbolo voa para o CTA.\n\n6. Construa copiando o projeto, sem editar o original. Para quem não é técnico: nenhuma frase explicativa, só uma etiqueta simples por elemento, presa ao clipe e no máximo uma por vez, e as notas saindo de cada clipe tonal nos golpes medidos. A foto do cantor sai do clipe da voz. Rode revisao/carga_texto.py e confira.\n\n7. Som pelos eventos, num subagente: oraculo_take.py --eventos audio/eventos.json e trilha.py. A música abafada por baixo do gancho, abrindo até o normal sem corte; tape stop; o remix do zero, intocado; um efeito por palavra do gancho e efeitos esparsos no edit, cada um num nível relativo à música do instante; nada por cima do drop. Normalize a IR da sala antes. Final a −14 LUFS, pico verdadeiro abaixo de −1 dBFS.\n\n8. Revise antes do final: stills de cada etiqueta, oráculo com PASSA, rascunho a 30 qps com som e uma IA que assista com áudio, perguntando onde há texto demais, onde o movimento para morto e onde a troca para o edit não fica clara. Confira cada apontamento nos quadros ou medindo antes de mexer.\n\n9. Final a 60 qps (render/final.sh), confira duração, qps e −14 LUFS e entregue o MP4, uma cópia leve para o celular e uma anotação do que mudou em relação à referência.",
|
|
113
|
+
"campos": [
|
|
114
|
+
"CTA",
|
|
115
|
+
"DURACAO",
|
|
116
|
+
"FRASE",
|
|
117
|
+
"GANCHO",
|
|
118
|
+
"IMAGENS",
|
|
119
|
+
"MUSICA",
|
|
120
|
+
"VERSAO_EDITADA"
|
|
121
|
+
],
|
|
122
|
+
"fonte": {
|
|
123
|
+
"nome": "Clube do Motion",
|
|
124
|
+
"url": "https://clubedomotion.com/projeto/?id=caught-in-the-fire",
|
|
125
|
+
"uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "clube-chat-cliente-satisfeito",
|
|
3
|
+
"titulo": "Cliente satisfeito",
|
|
4
|
+
"categoria": "elementos",
|
|
5
|
+
"resumo": "vídeo de 37,4 s em 16:9, sem narração, em que uma conversa de WhatsApp com o cliente abre um portfólio de motion. Os balões chegam um a um, a imagem perde a cor enquanto o cliente digita, a resposta \"Ficou bom, mas...\" gera tensão e o \"IRMÃO, COMO VOCÊ FAZ ESSE VÍDEO? FICOU FODA 🔥🔥\" solta 16 s de cortes rápidos no tempo da música, até a assinatura com o seu perfil. A comp inteira do After Effects sai de um script (`cenas.jsx`, 39 camadas em cerca de 9 s), com os números medidos no projeto que o criador do reel original liberou. A montagem usa 20 trechos de projetos do próprio Clube e duas cenas feitas no script: a vitrine do Clube do Motion num celular e o perfil entre linhas tracejadas. Feito pelo Clube do Motion.",
|
|
6
|
+
"indicado": "portfólio de editor ou motion designer, reel de agência mostrando entregas, apresentação de estúdio, prova social de quem vende serviço criativo; qualquer conta que queira mostrar trabalhos como resposta a um cliente.",
|
|
7
|
+
"estilo": [
|
|
8
|
+
"chat do WhatsApp em modo escuro",
|
|
9
|
+
"balões com encaixe seco",
|
|
10
|
+
"câmera que nunca para",
|
|
11
|
+
"cor como termômetro da tensão",
|
|
12
|
+
"montagem rápida na batida",
|
|
13
|
+
"colunas verticais",
|
|
14
|
+
"assinatura com mola por letra"
|
|
15
|
+
],
|
|
16
|
+
"ficha": {
|
|
17
|
+
"formato": "1920×1080, 60 qps, 16:9, desfoque de movimento ligado",
|
|
18
|
+
"duracao": "37,42 s (2.245 quadros), sem narração",
|
|
19
|
+
"motor": "ae",
|
|
20
|
+
"voz": "ver o guia de estilo",
|
|
21
|
+
"musica": "ver o guia de estilo",
|
|
22
|
+
"fontes": "SF Pro Display (chat), Plus Jakarta Sans e Cormorant Infant (cena do Clube), Tw Cen MT Condensed Bold (assinatura)"
|
|
23
|
+
},
|
|
24
|
+
"ferramentas": [
|
|
25
|
+
"Claude Code",
|
|
26
|
+
"After Effects"
|
|
27
|
+
],
|
|
28
|
+
"ficha_tecnica": {
|
|
29
|
+
"Duração": "37,42 s (2.245 quadros), sem narração",
|
|
30
|
+
"Formato": "1920×1080, 60 qps, 16:9, desfoque de movimento ligado",
|
|
31
|
+
"Ferramenta": "After Effects: um script ExtendScript (`cenas.jsx`) monta a comp `RECRIACAO` do zero; o `.aep` já vem montado",
|
|
32
|
+
"Chat": "7 balões (4 de quem envia, \"digitando\" e 2 do cliente), cada um numa precomp; fundo de padrão de WhatsApp com Motion Tile",
|
|
33
|
+
"Montagem": "22 cortes de 0,4 a 3,6 s; 20 trechos de projetos do Clube (`videos/01.mp4` a `20.mp4`) e 2 cenas feitas no script",
|
|
34
|
+
"Fontes": "SF Pro Display (chat), Plus Jakarta Sans e Cormorant Infant (cena do Clube), Tw Cen MT Condensed Bold (assinatura)",
|
|
35
|
+
"Trilha": "a do reel original (música e efeitos já mixados, ~123 BPM), com um engasgo de 93 ms da gravação cortado em 19,8 s; fica fora do pacote",
|
|
36
|
+
"Referência": "reel \"How it feels when the client is satisfied\", de @rafikmotion, e o projeto do AE que ele liberou",
|
|
37
|
+
"Arquivo final": "MP4 H.264 com áudio AAC, −13,6 LUFS"
|
|
38
|
+
},
|
|
39
|
+
"etapas": [
|
|
40
|
+
{
|
|
41
|
+
"titulo": "O roteiro",
|
|
42
|
+
"texto": "**Resumo:** o vídeo não tem narração; o roteiro é a conversa na tela e a lista de cortes da montagem, com os tempos do `cenas.jsx` e do vídeo final. Os textos são um exemplo: troque pelos seus e mantenha a quantidade de mensagens e a virada do cliente.\n\n## De onde veio a estrutura\n\nO reel estudado tem três atos: uma conversa curta com tensão (o editor manda o vídeo, o cliente demora e começa com \"It's good but...\"), a rendição do cliente (\"BRO WHY DO YOU COOK SO HARD?\") e a resposta em forma de portfólio, fechando com o nome do criador. Este projeto mantém os três atos, os tempos e a edição, com a conversa em português, outros trabalhos e a assinatura com o seu perfil.\n\n## A conversa\n\n | \n\n | #\n | Quem\n | Texto na tela (exemplo)\n | Entra em (s)\n\n | 1\n | você\n | \"Opa, tudo certo?\"\n | 0,00\n\n | 2\n | você\n | \"seu vídeo tá pronto...\"\n | 0,52\n\n | 3\n | você\n | link de entrega (2 linhas pequenas, verde)\n | 1,30\n\n | 4\n | você\n | \"o que achou??\"\n | 2,08\n\n | —\n | cliente\n | \"digitando\" (três bolinhas)\n | 2,53–9,03\n\n | 5\n | cliente\n | \"Ficou bom, mas...\"\n | 9,03\n\n | 6\n | cliente\n | \"IRMÃO, COMO VOCÊ FAZ / ESSE VÍDEO? / FICOU FODA\" + 🔥🔥\n | 12,70\n\nTodas as mensagens marcam 15:00. As suas levam os dois tiques de lido.\n\n## Cenas por tempo\n\n | \n\n | Tempo (s)\n | O que acontece\n\n | 0,00–5,25\n | as quatro mensagens chegam com encaixe seco; a conversa sobe e encolhe de 110% para 98%; as bolinhas começam em 2,53\n\n | 5,25\n | recuo seco: num quadro a conversa vai a 51% e a câmera dá um pulo de 5%, que volta devagar\n\n | 5,33–9,03\n | a imagem perde a cor aos poucos e as bordas escurecem enquanto o cliente digita\n\n | 9,03\n | \"Ficou bom, mas...\" chega; a cor volta de uma vez e a vinheta pisca\n\n | 12,70\n | corte seco: a câmera vai a 191% sobre o balão do cliente, a vinheta pisca de novo e a mensagem final entra\n\n | 12,70–16,77\n | a câmera sobe devagar sobre os dois balões cinzas\n\n | 16,77–32,51\n | portfólio: 22 cortes (lista abaixo)\n\n | 32,51–37,42\n | clarão branco; o perfil entra letra a letra; o crédito aparece 0,8 s depois; a estrela gira atrás\n\n## Os cortes da montagem\n\n | \n\n | Tempo (s)\n | Enquadramento\n | O que aparece (projeto do Clube)\n\n | 16,77–17,37\n | cena própria\n | a vitrine do Clube do Motion num celular girando, nome digitado e dois benefícios\n\n | 17,35–17,82\n | tela cheia\n | Tennessee sound design\n\n | 17,82–18,28\n | tela cheia\n | Barbearia Shelby, ep. 1 (título da marca)\n\n | 18,28–18,80\n | tela cheia\n | Whose Side (linha do tempo brilhando)\n\n | 18,80–19,23\n | tela cheia\n | Raio-X do Lula 3 (\"32,4% do PIB em impostos\")\n\n | 19,25–19,67\n | tela cheia\n | abertura do Clube (\"Com um método\")\n\n | 19,60–20,16\n | tela cheia\n | Soldier (linha do tempo)\n\n | 20,08–20,57\n | tela cheia\n | Barbearia Shelby, ep. 2 (notas 4,9)\n\n | 20,56–21,17\n | cena própria\n | o perfil entre linhas tracejadas, terminando num mergulho com uma bolinha roxa\n\n | 21,12–21,84\n | tela cheia\n | Caught in the Fire\n\n | 21,84–24,79\n | repetido lado a lado\n | processo do edit tonal (\"efeito comum × tonal sound\")\n\n | 24,79–25,27\n | tela cheia\n | clínica em take único\n\n | 25,22–25,69\n | tela cheia\n | referências de motion com IA\n\n | 25,69–26,76\n | horizontal\n | AI World PT-BR\n\n | 26,74–30,34\n | tela cheia (fundo)\n | Clube do Motion dentro do Claude\n\n | 27,97–30,36\n | coluna esquerda\n | Barbearia Shelby, ep. 1\n\n | 28,55–30,36\n | coluna direita\n | Whose Side\n\n | 29,12–30,36\n | coluna central\n | Claude DJ\n\n | 30,36–32,51\n | tela cheia (fundo)\n | Tennessee recriado\n\n | 30,92–32,51\n | coluna esquerda\n | Barbearia Shelby, ep. 2\n\n | 31,47–32,51\n | coluna direita\n | site do Clube\n\n | 31,86–32,51\n | coluna central\n | logo do Clube do Motion\n\n## Momentos para a trilha\n\n- A trilha do reel original já traz os efeitos: um toque a cada mensagem, impacto no recuo de 5,25 s e no corte de 12,7 s.\n\n- A batida (~123 BPM, 488 ms) segura o portfólio; os cortes seguem os tempos que o criador montou sobre essa trilha.\n\n- Com outra música, marque a batida e encaixe o início do portfólio (16,77 s) num tempo forte; mantenha o impacto no corte de 12,7 s."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"titulo": "A identidade visual",
|
|
46
|
+
"texto": "**Resumo:** WhatsApp em modo escuro (verde `#134C37`, cinza `#363837`), SF Pro Display, balões com encaixe seco e uma câmera de dois nulls; depois, cortes rápidos de trabalhos e uma assinatura em Tw Cen MT Condensed Bold itálica com mola por letra sobre uma estrela roxa e verde desfocada. Números tirados do `cenas.jsx`, que reproduz o projeto do criador original.\n\n## Palco\n\n | \n\n | Peça\n | Como é\n\n | Tela\n | 1920×1080, 60 qps, desfoque de movimento ligado em tudo\n\n | Fundo do chat\n | imagem de padrão do WhatsApp a 90%, opacidade 39%, Motion Tile 250% × 190%, presa à rolagem\n\n | Acabamento\n | camada de ajuste sobre o chat e a assinatura: Sharpen 10, Exposure +0,2, Levels (preto 5, gama 0,93), CC Vignette e Glow\n\n | Glow\n | sem Deep Glow 2: Glow nativo com limite 35%, raio 180, intensidade 0,15 (calibrado contra o reel; com o Deep Glow 2 instalado, o script usa exposição 0,025)\n\n## Cores\n\n | \n\n | Peça\n | Valor\n\n | Balão de quem envia\n | `#134C37`\n\n | Balão do cliente\n | `#363837`\n\n | Hora e tiques no verde\n | `#9CB7AB` (tiques com traço de 7 px, pontas redondas)\n\n | Hora no cinza\n | 55% e 49% de cinza\n\n | Link\n | `#249068`, SF Pro Display Medium 68 px, entrelinha 100\n\n | Bolinhas de \"digitando\"\n | 47% de cinza, 76 px\n\n | Cena do Clube\n | fundo `#090A0A`, verde `#49E498`, aro do celular `#73998A`\n\n | Cena do perfil\n | degradê radial de `#130B29` a preto\n\n | Estrela da assinatura\n | degradê linear de `#7800FF` (embaixo à esquerda) a `#12D82A` (em cima à direita), opacidade 53%\n\n## Fontes\n\n | \n\n | Fonte\n | Onde\n\n | SF Pro Display Regular\n | textos dos balões (110–116 px)\n\n | SF Pro Display Medium\n | hora (56 px) e link\n\n | SF Pro Display Light\n | o perfil entre linhas (98 px)\n\n | Plus Jakarta Sans Regular e ExtraBold\n | \"Clube do\" + \"Motion\" (96 px) e benefícios (46 px)\n\n | Cormorant Infant SemiBold Italic\n | \"abertos por dentro\" (62 px)\n\n | Tw Cen MT Condensed Bold, itálico falso\n | a assinatura (56 px a 365%)\n\n## O balão\n\n | \n\n | Item\n | Valor\n\n | Anatomia\n | precomp 1920×1080 com um null que leva retângulo, rabinho, texto, hora e tiques\n\n | Retângulo\n | arredondamento 52; altura 263 px (1 linha), 388 px (2 linhas) e +125 px por linha a mais\n\n | Ancoragem\n | verde preso pela borda direita (cresce para a esquerda); cinza espelhado, preso pela borda esquerda\n\n | Largura\n | largura do texto + folga (553, 477, 193, 476, 316, 133 px nos balões do exemplo)\n\n | Encaixe\n | o null sobe de 719,7 para 617,7 em 0,78 s; chave de saída com velocidade ~970× a média e 0,1% de influência; chegada com 64%\n\n | Entrada\n | balão, rabinho e texto de 0 a 100% em 0,25 s; hora e tiques 0,28 s depois, com o mesmo encaixe\n\n | Digitando\n | três bolinhas com `value + Math.sin(time*4+index)*20` no Y\n\n | Emojis\n | dois PNGs a 70%, logo depois do fim da última linha (1º centro 70,5 px depois; 110 px entre eles)\n\n## Câmera (dois nulls)\n\n | \n\n | Null\n | O que faz\n\n | rolagem\n | âncora (921,4; −235,1); sobe com a conversa (Y −220 › −311 › −527 › −768, eases de 66%); escala 110% › 98% entre 1,05 e 1,8 s; em 5,25 s, num quadro, vai a 51%\n\n | câmera\n | em 5,25 s pula para 105% e volta a 100% até 12,25 s; em 12,7 s, num quadro, vai a 191% e para o balão do cliente, depois sobe 188 px até 17,6 s (saída com 0,1%, chegada com 75%)\n\n## Tensão e cortes do chat\n\n | \n\n | Momento\n | Números\n\n | Preto e branco\n | opacidade do efeito de 0 a 100% entre 5,33 e 8,97 s; volta a 0 em 9,03 s\n\n | Vinheta\n | 102 › 211 (5,33–8,02 s); em 9,03 e 12,72 s vai a −242 por um quadro e volta a 102 em 0,22 s\n\n## Montagem\n\n | \n\n | Item\n | Valor\n\n | Velocidades\n | 39%, 52%, 68%, 71%, 72%, 73%, 79%, 85% e 100%, como no projeto original\n\n | Tela cheia\n | vídeo vertical a 177,78% (faixa do meio, 1080×608 do vídeo); horizontal a 100%\n\n | Colunas\n | verticais a 59,25%: âncora na borda esquerda e posição x=0, ou na direita e x=1920, ou no centro\n\n | Repetido\n | vertical a 90,67% com CC RepeTile (expandir 541 e 554 px, modo repetir)\n\n## Cena do Clube (no lugar de uma vitrine de canal)\n\n- Celular 3D (precomp 1250×2620 a 52%) girando de −96° a −30° em Y em 0,42 s, com X 9° e Z −9°; uma cópia preenchida atrás, 34 px no Z, dá a espessura.\n\n- A tela é o print do site em tamanho de iPhone, rolando 320 px em 1,25 s.\n\n- Texto digitado letra a letra (Range Selector com Start de 0 a 100 e suavidade 0); ícones verdes entram com escala 0 › 112% › 100%.\n\n- Fumaça de Fractal Noise tingida de verde e uma cópia em pontinhos (CC Ball Action, grade 12, bola 42) em modo Adicionar.\n\n## Assinatura\n\n | \n\n | Peça\n | Números\n\n | Clarão\n | sólido branco de 100% a 0% em 0,1 s\n\n | Nome\n | animador com posição Y +179 e opacidade 0; expression selector: atraso de 0,02 s por letra, subida de 0,12 s, depois `-100*sin(0,5·t·2π)/e^(4t)`\n\n | Crédito\n | SF Pro Display 34 px, 62% de cinza, tracking 20, entra 0,8 s depois do nome\n\n | Estrela\n | 5 pontas (raio 220/441), Optics Compensation 60, Fast Box Blur 92, dois Wave Warp (290/475 e 200/906), girando 50°/s\n\n## O que é \"humano\" neste vídeo\n\n- A câmera nunca fica parada depois dos pulos: volta devagar ao lugar ou continua subindo.\n\n- As bolinhas de \"digitando\" flutuam em onda; a estrela gira e ondula sem parar.\n\n- O texto da cena do Clube deriva 24 px para a esquerda enquanto é digitado."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"titulo": "A montagem no After Effects",
|
|
50
|
+
"texto": "| \n\n | Arquivo\n | O que faz\n\n | `ae/cenas.jsx`\n | cria um projeto novo e monta tudo. No topo: `CHAT` (texto, lado, segundo e folga de cada balão), `HORA`, `PERFIL`, `PORTFOLIO` (vídeo, segundo de início, velocidade, escala e posição de cada corte), `ASSINATURA` e `TRILHA`. `balao()` monta cada balão; `cenaClube()` e `cenaPerfil()` fazem as duas cenas próprias; `T()` corrige os tempos depois do engasgo cortado da trilha\n\n | `ae/recriacao.aep`\n | o resultado do script, para abrir e renderizar direto\n\n- **Fontes:** instale SF Pro Display (Regular, Medium e Light), Plus Jakarta Sans (Regular e ExtraBold), Cormorant Infant SemiBold Italic e Tw Cen MT Condensed Bold em `C:\\Program Files\\Common Files\\Adobe\\Fonts` e reinicie o After Effects.\n\n- **Arquivos de fora:** crie `autor/(Footage)/` ao lado de `ae/` com a sua música, uma imagem de padrão de WhatsApp e um PNG do emoji (ou troque os nomes no topo do script).\n\n- **Abrir:** `projeto/ae/recriacao.aep`. Se o AE pedir arquivos, aponte para `projeto/videos/` e `projeto/assets/`.\n\n- **Adaptar:** troque os textos em `CHAT`, o `PERFIL`, os vídeos em `PORTFOLIO` (os seus trabalhos) e rode File › Scripts › Run Script File › `cenas.jsx`. O balão se ajusta à largura do texto novo; com mais de duas linhas, cresce 125 px por linha.\n\n- **Render:** fila do AE em H.264. Se renderizar em trechos, cole o áudio depois com o ffmpeg, direto do arquivo de música, para não acumular atraso entre os trechos.\n\n**Pegadinhas:** comentário com arroba (`// @...`) num `.jsx` vira diretiva do ExtendScript e dá \"Syntax error\". Uma variável `var forma` no nível de cima apaga a função de mesmo nome. O Gradient Fill de camada de forma não aceita cores por script: a estrela usa um sólido com Gradient Ramp recortado pela forma. O `aerender` não abre caminho com acento: renderize de uma pasta sem acento."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"titulo": "As decisões de direção",
|
|
54
|
+
"texto": "- **O portfólio entra como resposta.** A conversa cria a pergunta (\"o que achou??\"), a espera e a quase recusa (\"Ficou bom, mas...\"); os trabalhos entram quando o cliente se rende.\n\n- **Encaixe seco nos balões.** Cada mensagem sobe 102 px em 0,78 s saindo a quase mil vezes a velocidade média e freando com 64% de influência: chega como notificação, não como animação.\n\n- **A cor mede a tensão.** O preto e branco entra devagar enquanto o cliente digita (5,3–9,0 s) e some num quadro quando a resposta chega, com a vinheta piscando nas bordas.\n\n- **Corte de câmera em um quadro.** O recuo de 5,25 s e o corte de 12,7 s são chaves a 1 quadro de distância com desfoque de movimento; dá energia sem transição.\n\n- **A câmera nunca para.** Depois do recuo, a escala volta de 105% a 100% em 7 s; depois do corte, a câmera sobe 188 px até o fim do chat.\n\n- **Montagem no tempo do autor.** Os 22 cortes mantêm os tempos e as velocidades do projeto original (39% a 85%), só com outros vídeos; o trecho de cada vídeo foi escolhido pelo quadro mais forte.\n\n- **Vertical em vídeo horizontal sem barra preta:** faixa do meio a 177,78%, colunas a 59,25% e um reel repetido lado a lado com CC RepeTile.\n\n- **Assinatura com mola por letra.** Cada letra sobe 179 px e assenta com um seno amortecido (expression selector), seguida de um crédito pequeno e cinza.\n\nDetalhes de cores, curvas e números: estilo.md. Textos e cortes por tempo: roteiro.md. Para fazer o seu com os seus trabalhos: PROMPT.md."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"titulo": "As versões até o final",
|
|
58
|
+
"texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | recriação fiel em inglês, com os clipes do criador original; geometria e tempos iguais ao reel, glow nativo calibrado contra o original\n\n | v2\n | chat em português, vitrine do Clube do Motion no lugar da cena do Telegram e o perfil no lugar do nome do criador\n\n | v3\n | os 20 cortes de trabalhos viraram projetos do Clube; link do Drive de volta; assinatura com crédito do reel original\n\n | **v4**\n | final: balão do link com a altura certa e trilha sem o engasgo de 19,8 s, com os cortes seguintes acompanhando"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"pacote": [
|
|
62
|
+
{
|
|
63
|
+
"pasta": "projeto/",
|
|
64
|
+
"conteudo": "`ae/cenas.jsx` (o gerador comentado), `ae/recriacao.aep` (o projeto já montado), `assets/` (prints do site no tamanho de iPhone para a tela do celular) e `videos/` (os 20 trechos da montagem, de 1 a 4 s cada)"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"pasta": "referencias/",
|
|
68
|
+
"conteudo": "`estudo-da-referencia.md` (a estrutura do reel e do projeto do criador, medida camada por camada), `links.md` e `fora-do-pacote.md`"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"pasta": "render.mp4",
|
|
72
|
+
"conteudo": "o vídeo final"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"pasta": "ae/cenas.jsx",
|
|
76
|
+
"conteudo": "cria um projeto novo e monta tudo. No topo: `CHAT` (texto, lado, segundo e folga de cada balão), `HORA`, `PERFIL`, `PORTFOLIO` (vídeo, segundo de início, velocidade, escala e posição de cada corte), `ASSINATURA` e `TRILHA`. `balao()` monta cada balão; `cenaClube()` e `cenaPerfil()` fazem as duas cenas próprias; `T()` corrige os tempos depois do engasgo cortado da trilha"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"pasta": "ae/recriacao.aep",
|
|
80
|
+
"conteudo": "o resultado do script, para abrir e renderizar direto"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"prompt": "Quero um reel de portfólio no mesmo método do projeto \"Cliente satisfeito\", que está em 07-videos/projetos/chat-cliente-satisfeito/, com a minha conversa e os meus trabalhos.\n\nMeu perfil (aparece na assinatura): {{PERFIL}}\nConversa (4 mensagens minhas, a quase recusa do cliente e a rendição dele, no meu jeito de falar): {{CONVERSA}}\nHora que aparece nas mensagens: {{HORA}}\nPasta com os vídeos dos meus trabalhos: {{PASTA_DOS_VIDEOS}}\nUma cena própria da minha marca no lugar da vitrine do Clube (site, app ou produto num celular): {{CENA_DA_MARCA}}\nMúsica (batida marcada; a referência tem ~123 BPM): {{MUSICA}}\nCrédito embaixo do perfil (ou deixe vazio para não ter): {{CREDITO}}\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: as tabelas CHAT, PORTFOLIO e ASSINATURA, a função balao(), a câmera de dois nulls (camera e rolagem), cenaClube(), cenaPerfil() e T(). Me diga em poucas linhas o que muda com o meu material.\n\n2. Escreva a conversa nas mesmas posições: 4 mensagens minhas (a terceira pode ser um link em 2 linhas pequenas), o \"digitando\", a quase recusa e a rendição do cliente em até 3 linhas. Use o meu jeito de falar, sem texto de propaganda. Me mostre e espere meu ok.\n\n3. Escolha os trechos dos meus trabalhos para os 22 cortes. Para cada vídeo, extraia quadros com ffmpeg -ss em tempos exatos (folha com fps e drawtext rotula errado em vídeo longo) e escolha o quadro mais forte. Vertical em tela cheia mostra só a faixa do meio (177,78%); confira se o assunto está nessa faixa. As colunas mostram o vídeo inteiro a 59,25%. Me mostre a lista corte por corte.\n\n4. Meça a música (BPM e tempos fortes) e procure engasgos: batidas fora da mediana em mais de 30 ms. Se mudar os tempos dos cortes, mude ENGASGOS ou zere a lista.\n\n5. Construa copiando o projeto, sem editar o original: troque CHAT, HORA, PERFIL, PORTFOLIO (meu, src, vel, de, ate, esc, anc, pos), ASSINATURA e TRILHA, e adapte cenaClube() para a minha marca (print do meu site em 1170 px de largura em projeto/assets/). Mantenha o encaixe seco dos balões, o recuo de 5,25 s, o preto e branco da espera, o corte de 12,7 s, a câmera que nunca para e a mola por letra. Rode o cenas.jsx e me mostre uma folha de contato com 16 quadros, incluindo os cortes e o meio dos movimentos.\n\n6. Revise antes do render: balões que se encostam (cada balão começa 307 px abaixo do anterior; um balão mais alto precisa descer, e a câmera do corte sobe junto), textos cortados na faixa do meio, quadros pretos e o som nos cortes.\n\n7. Renderize em H.264 a 60 qps. Se for em trechos, confira cada trecho com blackdetect e cole o áudio depois com o ffmpeg, direto do arquivo de música (apad para não perder os últimos quadros). Entregue o MP4 e uma anotação do que mudou em relação ao projeto.",
|
|
84
|
+
"campos": [
|
|
85
|
+
"CENA_DA_MARCA",
|
|
86
|
+
"CONVERSA",
|
|
87
|
+
"CREDITO",
|
|
88
|
+
"HORA",
|
|
89
|
+
"MUSICA",
|
|
90
|
+
"PASTA_DOS_VIDEOS",
|
|
91
|
+
"PERFIL"
|
|
92
|
+
],
|
|
93
|
+
"fonte": {
|
|
94
|
+
"nome": "Clube do Motion",
|
|
95
|
+
"url": "https://clubedomotion.com/projeto/?id=chat-cliente-satisfeito",
|
|
96
|
+
"uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "clube-chatgpt-anuncios",
|
|
3
|
+
"titulo": "O ChatGPT tem anúncio",
|
|
4
|
+
"categoria": "narrado",
|
|
5
|
+
"resumo": "Reel narrado de 1 min 59 s, para a TDA Digital, que explica a dono de negócio local como funcionam os anúncios dentro do ChatGPT e por que o anúncio sozinho não segura o cliente. São 16 cenas em Remotion, com telas de iPhone desenhadas em código, o Google Maps real de Paulínia com 2.414 negócios, legenda viva palavra por palavra e trocas de cena no bumbo de uma trilha soul de 100 BPM. A v4 foi aprovada como a primeira base de vídeo narrado com motion do Clube do Motion.",
|
|
6
|
+
"indicado": "empresa ou agência que quer explicar uma novidade de mercado a dono de negócio local e fechar com a própria oferta; serviço digital que precisa mostrar um app, uma busca ou um painel funcionando.",
|
|
7
|
+
"estilo": [
|
|
8
|
+
"legenda viva",
|
|
9
|
+
"telas de iPhone desenhadas",
|
|
10
|
+
"câmera que fecha na ação",
|
|
11
|
+
"mão-cursor",
|
|
12
|
+
"íris no bumbo",
|
|
13
|
+
"transição de pontos",
|
|
14
|
+
"mapa real",
|
|
15
|
+
"brilhos pastel"
|
|
16
|
+
],
|
|
17
|
+
"ficha": {
|
|
18
|
+
"formato": "1080×1920, 30 qps, 9:16; MP4 H.264 com AAC, 62 MB",
|
|
19
|
+
"duracao": "119,5 s (3.585 quadros a 30 qps); 16 cenas",
|
|
20
|
+
"motor": "html",
|
|
21
|
+
"voz": "voz clonada na ElevenLabs (Eleven v4, estabilidade 0,52, similaridade 0,73), gerada por parágrafo e acelerada para 1,20× num único `atempo`: 117,4 s",
|
|
22
|
+
"musica": "ver o guia de estilo",
|
|
23
|
+
"fontes": "ver o guia de estilo"
|
|
24
|
+
},
|
|
25
|
+
"ferramentas": [
|
|
26
|
+
"Claude Code",
|
|
27
|
+
"ElevenLabs"
|
|
28
|
+
],
|
|
29
|
+
"ficha_tecnica": {
|
|
30
|
+
"Duração": "119,5 s (3.585 quadros a 30 qps); 16 cenas",
|
|
31
|
+
"Formato": "1080×1920, 30 qps, 9:16; MP4 H.264 com AAC, 62 MB",
|
|
32
|
+
"Voz": "voz clonada na ElevenLabs (Eleven v4, estabilidade 0,52, similaridade 0,73), gerada por parágrafo e acelerada para 1,20× num único `atempo`: 117,4 s",
|
|
33
|
+
"Ferramenta": "Remotion 4 (React + TypeScript), render na linha de comando; o relógio de tudo é o tempo de cada palavra, medido com o faster-whisper large-v3",
|
|
34
|
+
"Trilha": "instrumental soul-pop a 100 BPM em Si♭ maior, composta na ElevenLabs Music por um plano de seis seções; fica cerca de 15 dB abaixo da voz e silencia na virada \"é por esse motivo que a TDA Digital existe\"",
|
|
35
|
+
"Batida": "toda íris abre no bumbo: 68% dos cortes caem a até 2 quadros dele",
|
|
36
|
+
"Som": "um efeito por ação, alinhado pelo pico do arquivo; final em −14,1 LUFS",
|
|
37
|
+
"Material real": "logos oficiais (ChatGPT, OpenAI, Google, Google Ads, WhatsApp, SUS), print da página de anúncios da OpenAI em português, formulário do site da TDA e o Google Maps de Paulínia"
|
|
38
|
+
},
|
|
39
|
+
"etapas": [
|
|
40
|
+
{
|
|
41
|
+
"titulo": "O roteiro e a voz",
|
|
42
|
+
"texto": "**Resumo:** a fala gravada na voz clonada, parágrafo por parágrafo, e as 16 cenas pelo relógio da narração a 1,20×, com o que entra em cada palavra. O texto do roteiro é do autor do vídeo e recebeu só correção de ortografia e de concordância; nada de conteúdo mudou. Os tempos são os do vídeo final.\n\n## De onde veio a estrutura\n\nO gancho repete a mecânica de um vídeo anterior que engajou bem: uma lista de nichos falada cada vez mais rápido, para o dono de negócio se reconhecer nos primeiros segundos. Depois vêm a cena do cliente que busca no ChatGPT, a prova de que todo mundo já fez essa busca, a novidade (os anúncios chegaram ao Brasil em agosto), a diferença para o Google Ads e a virada: o anúncio só leva a pessoa até a empresa, e o site velho ou o WhatsApp lento perdem o cliente. A oferta da TDA Digital entra nessa dor, e a chamada final pede o formulário.\n\n## A fala\n\nSalão de beleza, barbearia, estúdio de estética, academia, pilates, hamburgueria, pet shop, agências digitais, serviço de viagem, cursos online, lançamentos, loja de roupa, brinquedos, calçados, concessionárias, loja de carro, autopeças, mercados…\n\nSe você tem algum tipo de negócio digital, você precisa saber que o ChatGPT pode literalmente recomendar a SUA empresa em uma conversa.\n\nFunciona assim: uma pessoa está precisando fazer um procedimento estético, e ela pesquisa no ChatGPT ou no próprio Google pelo texto \"clínica de estética perto de mim\".\n\nLogo de cara aparecem várias opções, que são as empresas mais bem ranqueadas da internet. Provavelmente você já fez exatamente esse processo em algum momento, né? Seja pra pesquisar prestadores de serviço, agência de marketing, loja de autopeça, mercados, dentista, pet shop e muitas outras coisas.\n\nE, se você tem algum tipo de negócio, seja local ou online, você poderia estar tirando vantagem e sendo uma das primeiras empresas da sua região a aproveitar esse recurso e ficar entre os primeiros resultados que aparecerem em qualquer tipo de pesquisa dentro da SUA área. Se você aparece, você é lembrado!\n\nDesde agosto, a OpenAI lançou o ChatGPT Ads.\n\nE tem uma diferença grande pra quem já anunciou no Google: em vez de escolher palavra-chave, como é a configuração de anúncio no Google Ads, você escreve em que tipo de conversa quer aparecer. O anúncio aparece exatamente naquele tipo de conversa que geralmente as pessoas têm, seja para fazer uma pesquisa ou buscar por recomendações.\n\nMas o anúncio faz só a primeira parte, que é levar a pessoa até você. Se o seu site não está atrativo o suficiente, está velho, desatualizado, amador demais, ou então o seu WhatsApp está com o atendimento mais lerdo do que fila no SUS, o seu cliente vai embora e você perde ele pra sempre.\n\nE é por esse motivo que a TDA Digital existe! Nós implantamos de ponta a ponta toda a estrutura que você precisa para destravar a sua operação, desde o seu site, que nós podemos refatorar totalmente, até o anúncio configurado e o atendimento funcionando como deveria, pra que ninguém que chegou pelo anúncio ou pelo seu site fique sem resposta. Assim você consegue focar no que realmente importa, que é a sua presença digital, para poder gerar valor e ter cada vez mais autoridade, aparecer mais e, consequentemente, obter mais interesses com um canal de distribuição totalmente orgânico.\n\nSe você quer uma inteligência artificial implantada sob medida para a sua empresa, clica no link abaixo e preenche o formulário, que em até cinco minutos alguém da minha equipe vai te chamar no WhatsApp.\n\nNa geração da voz, \"IA\" se escreve como se fala (\"i-á\") e os números vão por extenso. Cada parágrafo foi gerado separado e conferido com o faster-whisper; a narração montada passou por um único `atempo` de 1,20×.\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | Texto na tela\n | O que acontece\n\n | 1\n | 0,0–13,3\n | o nome de cada nicho · contador \"01 / 18\" a \"18 / 18\" · a busca de cada nicho\n | a cada nicho falado, um anúncio patrocinado do ChatGPT empilha com foto, marca fictícia e \"Patrocinado\"; a busca é digitada no campo; o contador avança\n\n | 2\n | 13,3–19,9\n | \"que o ChatGPT pode recomendar\" · \"Pra isso, eu recomendo a **sua empresa**\"\n | cena escura; o card do ChatGPT entra em \"que o ChatGPT\" e a resposta escreve \"sua empresa\" em verde-limão\n\n | 3\n | 19,9–31,3\n | \"clínica de estética perto de mim\" · \"Aqui estão algumas opções bem avaliadas perto de você:\"\n | foto do procedimento, e o iPhone sobe com o ChatGPT; os logos do ChatGPT e do Google entram no nome; a câmera fecha no campo enquanto o teclado digita; a mão aperta enviar com ondas; a resposta lista três clínicas e \"Quer que eu veja os horários disponíveis?\"\n\n | 4\n | 31,3–40,3\n | \"Conversas\" · os itens do histórico\n | o histórico de conversas cresce item por item, no tempo de cada nicho citado: prestador de serviço, agência de marketing, autopeças, mercado, dentista, pet shop\n\n | 5\n | 40,3–51,7\n | \"+2.500 negócios no mapa de Paulínia\" · \"sua empresa\" · \"1º Sua Empresa\"\n | o Google Maps real de Paulínia, com o limite da cidade; pinos com foto e nome a partir de 42,62 s; o contador sobe até +2.500 entre 44,05 e 45,30 s; os outros pinos escurecem e o pino \"sua empresa\" acende com radar\n\n | 6\n | 51,7–54,1\n | \"Se você aparece, você é lembrado.\"\n | **transição de pontos**; a frase sozinha na cena escura\n\n | 7\n | 54,1–57,1\n | \"agosto de 2026\" · \"no Brasil\"\n | o chip com a data entra e sai; o print oficial da página de anúncios da OpenAI em português aparece com destaque\n\n | 8\n | 57,1–65,5\n | \"Google Ads\" · \"Gerenciador de Anúncios\" · \"Dicas de contexto\"\n | o G nasce em \"Google\" e voa para o card do Google Ads; as palavras-chave são riscadas; no gerenciador da OpenAI, as dicas de contexto são digitadas\n\n | 9\n | 65,5–71,5\n | o card \"Bella Pele Estética · Patrocinado\"\n | a mesma conversa recebe o card patrocinado; a câmera fecha nele (1,3×) e a mão toca em \"recomendações\"\n\n | 10\n | 71,5–74,5\n | \"Mas o anúncio faz só a primeira parte\"\n | cena escura; duas barras surgem em \"primeira parte\"\n\n | 11\n | 74,5–78,7\n | \"VELHO\" · \"DESATUALIZADO\" · \"AMADOR\"\n | o site de 2005 da Bella Pele, com Internet Explorer, letreiro e contador de visitas; os três carimbos batem em 77,10, 77,52 e 78,32 s\n\n | 12\n | 78,7–84,7\n | mensagens sem resposta · \"SENHA 347\"\n | a câmera passeia pelas mensagens do WhatsApp sem resposta (1,28× e depois 1,08×); entra o recorte com o logo do SUS, a foto da fila e a senha; o cliente vai embora\n\n | 13\n | 84,7–87,7\n | \"E é por esse motivo que a TDA Digital existe.\"\n | **transição de pontos**; a trilha silencia, boom e o logo da TDA desenhado por traço\n\n | 14\n | 87,7–98,5\n | \"Site\" · \"Anúncio\" · \"Atendimento\"\n | uma onda verde-limão atravessa a tela de ponta a ponta; as pílulas e os cartões de cada etapa entram no tempo da fala, cada um com um check\n\n | 15\n | 98,5–109,3\n | \"presença digital\" · \"valor\" · \"autoridade\" · \"aparecer mais\" · \"interesses\" · \"canal orgânico\"\n | pilha de palavras: a dita fica no centro e a anterior sobe apagada, com uma linha que sobe ao fundo\n\n | 16\n | 109,3–119,4\n | \"implantada sob medida para a sua empresa\" · formulário · aviso do WhatsApp\n | **transição de pontos**; o formulário real do site da TDA, a mão clica em enviar (114,28 s), a Dynamic Island traz o aviso do WhatsApp (116,55 s) e o logo fecha o vídeo\n\n## Momentos para a trilha\n\n- 0–13,3 s: um whoosh curto e um pop para cada nicho; riser curto chegando em 13,15 s, no fim da lista.\n\n- Em cada íris: whoosh grave com o pico logo depois da abertura no bumbo.\n\n- 51,3 · 84,3 · 108,9 s: whoosh quando a malha de pontos cobre a tela.\n\n- 77,10 · 77,52 · 78,32 s: os três carimbos; a trilha abaixa cerca de 4 dB por 250 ms sob cada um.\n\n- **A trilha para** em \"E é por esse motivo que a TDA Digital existe\": um boom cinematográfico em 85,88 s cai no silêncio, um chiado acompanha o traço do logo e um whoosh grave em 87,48 s marca a volta da música em \"Nós implantamos\".\n\n- 114,28 s: clique em enviar, com a trilha abaixando; em 116,6 s a Dynamic Island abre com um alerta, um sino fecha em 118,3 s e a trilha sobe no cartão final até o acorde de fechamento.\n\nA lista completa de efeitos, com evento, arquivo e volume, está em `projeto/remotion/src/chatgpt-ads/sfx4.ts`."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"titulo": "A identidade visual",
|
|
46
|
+
"texto": "**Resumo:** palco claro quase branco com brilhos pastel que mudam de tom a cada cena, cenas escuras para as frases de impacto e o verde-limão da TDA Digital como única cor de destaque. O texto é uma legenda viva em Geist, as telas de app são desenhadas em código no tamanho de um iPhone e o movimento usa saída exponencial, mola com passagem curta e câmera que fecha na ação. Números tirados do `ChatGPTAdsV4.tsx`, do `fx4.tsx`, do `legenda.tsx`, do `kit.tsx` e do `sfx4.ts`.\n\n## Palco e fundo\n\n | \n\n | Peça\n | Como é\n\n | Tela\n | 1080×1920, 30 qps\n\n | Palco claro\n | fundo `#F3F2EE`; dois brilhos radiais nos cantos (embaixo à esquerda e em cima à direita) que derivam devagar em senos de 0,40 e 0,33 rad/s; um clarão branco a 75% no centro; grade de pontos de 38 px a 7%, que some nas bordas\n\n | Tons do brilho\n | `lime` (verde-limão 22% + azul 16%), `azul`, `rosa`, `pessego` e `verde`, um por cena, na tabela `CENAS4`\n\n | Palco escuro\n | quase preto `#07080A`, dois brilhos suaves (verde-limão a 13% num deles) que derivam e a mesma grade de pontos; usado em \"o ChatGPT pode recomendar\", \"Se você aparece\", \"a primeira parte\", na virada da TDA e na chamada final\n\n | Câmera da cena\n | cada cena aproxima 6% do começo ao fim; a cena nova entra com um desfoque de 10 px que some em 3 quadros\n\n## Cores e fontes\n\n | \n\n | Token\n | Valor\n | Papel\n\n | Verde-limão\n | `#A3E635` (e `#BEF264` na malha de pontos)\n | a palavra de destaque, o aro da íris, o pino \"sua empresa\", a onda e os checks\n\n | Tinta\n | `#111113`\n | texto no palco claro\n\n | Claro\n | `#F2F2EE`\n | texto no palco escuro\n\n | Cinzas\n | `#9A9A94` · `#6B6B70`\n | apoio e palavras já ditas\n\n | Preto da marca\n | `#0A0A0A`\n | logo da TDA, malha de pontos\n\n- **Geist** (400 a 700) na legenda e nos títulos; **Geist Mono** nos chips de dado (\"agosto de 2026\", \"+2.500 negócios no mapa de Paulínia\").\n\n- **Inter** nas telas de iOS.\n\n- Logos dentro da linha da legenda: quando a fala diz \"ChatGPT\", \"Google\" ou \"WhatsApp\", o ícone oficial entra junto da palavra.\n\n## Legenda viva\n\n- Palavra por palavra, no tempo medido de cada uma (`casar()` procura a palavra à frente e junta as que o reconhecedor separou).\n\n- 76 px por padrão, encolhendo para nunca passar de duas linhas.\n\n- Cada frase fica pelo menos 0,6 s na tela depois da última palavra.\n\n- Um destaque por frase, só por cor e um peso acima: verde-limão `#A3E635` no escuro e verde-oliva `#4D7C0F` no claro. Sem marca-texto.\n\n- O texto fica no alto e a interface no centro: nada de palavra atrás do celular.\n\n## Telas desenhadas\n\n- **iPhone** em pontos de 390×844 escalados para a tela: barra de status, ilha, ChatGPT iOS com \"Por onde começamos?\", teclado que digita letra a letra, resposta em lista com estrelas e o card patrocinado (foto, marca, \"Patrocinado\", oferta).\n\n- **Card de anúncio da lista:** foto do nicho, marca fictícia, título da oferta, descrição curta e o campo com a busca digitada; contador `09 / 18` em mono.\n\n- **Gerenciador:** card do Google Ads com as palavras-chave riscadas ao lado do Gerenciador de Anúncios da OpenAI com \"Dicas de contexto\" digitadas.\n\n- **WhatsApp:** conversa da Bella Pele Estética com mensagens sem resposta e, no fim, a Dynamic Island (pílula preta que nasce com 230×70 e abre com mola até 960×190) trazendo o aviso da TDA.\n\n- **Site de 2005:** janela do Internet Explorer, letreiro, faixa \"site em construção\" e contador de visitas.\n\n## Movimento\n\n | \n\n | Nome no código\n | Curva\n | Uso\n\n | `EASE`\n | `bezier(0.16, 1, 0.3, 1)`, saída exponencial\n | entradas, câmera, íris e quase tudo\n\n | `POP`\n | `bezier(0.34, 1.56, 0.64, 1)`, passagem curta\n | pinos, chips e cards que estalam\n\n | `Camera`\n | chaves com tempo absoluto; cada trecho vai rápido e assenta\n | foco no campo de digitação (1,5× aos 25,0 s, volta a 1× em 27,35 s e fecha em 1,12× na resposta), no card patrocinado (1,3× aos 66,25 s), nas mensagens do WhatsApp (1,28× aos 79,75 s, voltando a 1,08× aos 82,6 s)\n\n | `MaoCursor`\n | caminho por chaves; no clique, a mão aperta e solta duas ondas de luz\n | enviar, tocar o anúncio, enviar o formulário\n\n## Transições\n\n- **Íris com aro verde-limão:** a cena nova abre num círculo a partir de um ponto escolhido (o centro de cada cena está na tabela `CENAS4`), em 0,5 s. O aro nasce como um ponto de 14 px 0,12 s antes, cresce até 2.300 px e afina de 10 para 4 px enquanto some. A íris abre 0,3 s antes do início anotado da cena, para a abertura cair no bumbo.\n\n- **Transição de pontos:** a tela vira uma malha de bolinhas de 72 px (verde-limão, preto, grafite, verde-claro e off-white, sorteadas com semente fixa) que cresce a partir da origem, cobre tudo no instante do corte e encolhe revelando a cena nova; o atraso de cada bolinha cresce com a distância. Usada só nas três viradas grandes.\n\n- **Carry de elementos:** o G do Google nasce em \"Google\" e voa até virar o cabeçalho do card do Google Ads; as pílulas Site, Anúncio e Atendimento nascem na onda e descem para os cartões.\n\n## Componentes do kit\n\n- **Pino com foto e radar:** foto redonda do negócio com o nome ao lado; entram com 0,18 s entre um e outro; o radar do pino \"sua empresa\" tem raio de 210 px.\n\n- **Contador com rolagem** (`Ticker`): de 0 a +2.500 em 1,25 s.\n\n- **Pilha de palavras:** a palavra dita fica no centro em 104 px e as anteriores sobem 132 px, apagadas; só entra palavra já falada.\n\n- **Logo por traço:** o logo da TDA é desenhado por um traço verde-limão e depois preenchido.\n\n- **Carimbos:** VELHO (120 px, −10°), DESATUALIZADO (88 px, 6°) e AMADOR (120 px, −5°).\n\n## Trilha\n\n | \n\n | Item\n | Valor\n\n | Música\n | instrumental soul-pop composto na ElevenLabs Music (`music_v2_5`), Si♭ maior, exatamente 100 BPM, bateria ao vivo, palmas no 2 e no 4, órgão Hammond, guitarra abafada e metais curtos\n\n | Plano\n | seis seções pedidas por tempo: introdução (14,4 s), verso leve que deixa espaço para a voz (38,4 s), subida (19,2 s), quebra bem-humorada com paradas da banda (14,4 s), refrão (24,0 s) e final no acorde (9,6 s)\n\n | Encaixe\n | bumbo em 0,366 s + n × 0,600 s depois do adiantamento de 0,21 s; a parada de 2,5 s cai na virada da TDA\n\n | Nível\n | a música fica em cerca de 0,12 de volume, uns 15 dB abaixo da voz, e sobe no cartão final\n\n## Sound design e mix\n\n | \n\n | Família\n | Quando\n | Exemplos\n\n | whoosh curto + pop\n | cada nicho da lista, cada card que entra\n | um pacote por nicho, 18 vezes\n\n | whoosh grave\n | cada íris, com o pico logo depois da abertura no bumbo\n | —\n\n | whoosh de transição\n | a malha de pontos cobrindo a tela\n | 3 vezes\n\n | teclas\n | digitação no campo do iPhone e nas dicas de contexto\n | uma tecla a cada 0,10–0,11 s\n\n | toque\n | a mão clica\n | enviar, anúncio, formulário\n\n | pop de bolha\n | cada pino com foto\n | 7 pinos\n\n | carimbo + impacto\n | VELHO, DESATUALIZADO, AMADOR\n | a trilha abaixa sob cada um\n\n | notificação\n | mensagens do WhatsApp e a Dynamic Island\n | —\n\n | boom + chiado\n | o logo da TDA desenhado no silêncio da trilha\n | —\n\n- Cada efeito entra em `evento − pico do arquivo`; o pico de cada um está nas tabelas `PICO` e `PICO4` do `sfx4.ts`.\n\n- Biblioteca nivelada: pico momentâneo em −20 LUFS nos efeitos curtos e −24 LUFS nas camas e risers, com volume por cue entre 0,14 e 0,5.\n\n- **Final:** `loudnorm` em dois passes para −14,1 LUFS.\n\n## O que é \"humano\" neste vídeo\n\n- A câmera de cada cena nunca para: aproxima 6% até a troca.\n\n- Os brilhos do fundo derivam o tempo todo, com tom diferente por cena.\n\n- A mão-cursor faz caminho, aperta o botão e solta ondas, em vez de o botão reagir sozinho.\n\n- O texto do ChatGPT \"streama\" no ritmo de leitura e a resposta aparece item por item."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"titulo": "A montagem no Remotion",
|
|
50
|
+
"texto": "| \n\n | Arquivo\n | O que faz\n\n | `ChatGPTAdsV4.tsx`\n | a composição: tabela `CENAS4` com início e fim de cada cena, palco claro ou escuro, tom do brilho, centro da íris e as três transições de pontos; a câmera de cada cena aproxima 6% do início ao fim; a trilha começa 0,21 s adiantada (`MUSICA_ADIANTA`) e abaixa cerca de 4 dB por 250 ms sob cada impacto (`DUCK`)\n\n | `cenas4.tsx`\n | as 16 cenas, cada uma com os tempos tirados da fala; nada aparece antes da palavra\n\n | `fx4.tsx`\n | o kit da v4: `Camera` (chaves de foco e escala com saída exponencial), `MaoCursor` (caminho, clique e duas ondas), `TransicaoPontos`, `PinFoto` e `Radar`, `PilhaPalavras`, `IlhaDinamica` (Dynamic Island), `LogoTraco` (logo desenhado por traço) e `PalcoClaroV4` (brilhos pastel por cena)\n\n | `legenda.tsx`, `legenda3.tsx`\n | legenda viva: `casar()` liga cada palavra ao tempo falado, `LegendaV3` quebra em no máximo duas linhas e segura cada frase 0,6 s depois da última palavra; também traz o palco escuro, o aro da íris e os chips\n\n | `ui.tsx`\n | telas desenhadas em pontos de iPhone (390×844): celular branco, ChatGPT iOS, teclado, card patrocinado, navegador e a lista `NICHOS` com marca, oferta, busca e cor de cada nicho\n\n | `sfx4.ts`\n | cada efeito recebe o instante do evento e o pico do arquivo em milissegundos, para cair no quadro certo; `TROCAS` guarda as trocas de cena na grade da trilha\n\n | `words.ts`, `pontos.ts`\n | o tempo de cada palavra da fala e as coordenadas normalizadas dos 2.414 negócios do mapa\n\n | `audio/v1/conferir.py`\n | transcreve cada parágrafo gerado e compara com o texto, para achar palavra trocada pela voz\n\n- **Monte o projeto Remotion:** copie `projeto/remotion/` para uma pasta sua e rode `npm install`.\n\n- **Crie o `src/Root.tsx`** com uma composição só:\n `<Composition id=\"ChatGPTAdsV4\" component={ChatGPTAdsV4} fps={30} width={1080} height={1920} durationInFrames={Math.round(CHATGPT_ADS_V4_SEC * 30)} />`, importando os dois nomes de `./chatgpt-ads/ChatGPTAdsV4` e exportando o componente como `RemotionRoot`.\n\n- **Áudio:** copie `audio/narracao-v2-1-20x.wav` para `public/chatgpt-ads/audio/narracao.wav` e `audio/musica-soul-a.mp3` para `public/chatgpt-ads/audio/musica.mp3`.\n\n- **Efeitos:** os da biblioteca nivelada já vêm em `public/enxurrada/sfx2/`. Ponha os seus em `public/chatgpt-ads/v4/sfx/` com os nomes listados no `fora-do-pacote.md`, ou troque os nomes no `sfx4.ts`. Se trocar de arquivo, meça o pico e corrija a tabela `PICO`/`PICO4`.\n\n- **Ver:** `npx remotion studio` abre o vídeo no navegador para andar quadro a quadro.\n\n- **Render:** `npx remotion render src/index.ts ChatGPTAdsV4 out/render.mp4 --crf=18 --audio-bitrate=320k`.\n\n- **Volume final:** normalize para −14 LUFS em dois passes com o `loudnorm` do ffmpeg.\n\n**Pegadinhas:** o Remotion só mostra o que está em `public/`, então um asset faltando vira quadro vazio sem erro; confira os quadros de teste antes do render completo. Ao trocar a fala, gere o `words.ts` de novo e confira cada cena, porque os tempos estão escritos dentro delas. A íris abre 0,3 s antes do início da cena (`LEAD`): o bumbo tem de cair na abertura, não no início anotado."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"titulo": "As decisões de direção",
|
|
54
|
+
"texto": "- **Nada aparece antes de ser dito.** O G nasce em \"Google\" e voa para o card do Google Ads em \"Google Ads\"; as barras surgem em \"primeira parte\"; o site, em \"site\".\n\n- **A legenda é o texto do vídeo.** Geist, palavra por palavra, uma palavra de destaque por frase só por cor, leitura mínima de 0,6 s e nunca mais de duas linhas.\n\n- **Cada ideia tem material real ou uma metáfora brasileira.** Mapa real da cidade, página oficial da OpenAI, formulário real do site, e a fila do SUS com \"SENHA 347\" para o WhatsApp que demora.\n\n- **O gancho é uma enxurrada.** 18 nichos em 13 s, cada um empilhando um anúncio patrocinado com foto, marca e busca digitada, e um contador \"09 / 18\".\n\n- **A câmera fecha na ação pequena:** o campo de digitação, o card patrocinado, as mensagens do WhatsApp. A mão-cursor aperta e solta duas ondas em cada clique.\n\n- **As trocas caem na música.** Íris com aro verde-limão no bumbo e transição de pontos nas três viradas grandes (\"Se você aparece\", \"TDA Digital\" e a chamada final).\n\n- **A parada da trilha cai na virada do roteiro.** A trilha foi adiantada 0,21 s para silenciar em \"é por esse motivo que a TDA Digital existe\" e voltar em \"Nós implantamos\", com o logo desenhado por traço.\n\n- **Humor no ponto de dor:** o site de 2005 com contador de visitas leva os carimbos VELHO, DESATUALIZADO e AMADOR.\n\n- **Palco vivo:** brilhos pastel com um tom por cena, que derivam devagar, e grade de pontos que some nas bordas.\n\n- **Um efeito por elemento que entra,** de uma biblioteca nivelada, alinhado pelo pico do arquivo.\n\nDetalhes de cores, curvas e som: estilo.md. Cenas por tempo e texto falado: roteiro.md. Para fazer um vídeo no mesmo método com o seu assunto: PROMPT.md."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"titulo": "As versões até o final",
|
|
58
|
+
"texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | 16 cenas com as telas de interface, títulos em serifa itálica e etiquetas tortas\n\n | v2\n | conceito \"legenda viva\": texto palavra por palavra em Geist, chips de vidro, palcos novos, aro na íris e trocas de cena na batida (80% dos cortes a até 2 quadros)\n\n | v3\n | cada cena se constrói pela fala, legenda com leitura mínima e no máximo duas linhas, destaque só por cor, Google Maps real de Paulínia e o recorte da fila do SUS\n\n | **v4**\n | aprovada: câmera que fecha na ação, mão-cursor com ondas, transição de pontos nas três viradas, pinos com foto e radar, contador até +2.500, logo por traço, onda \"de ponta a ponta\", pilha de palavras, Dynamic Island do WhatsApp, brilhos pastel por cena e efeitos premium\n\n | v5 (teste)\n | a mesma imagem com música real e uma abertura de 13 s em estilo trailer; ficou como comparação e não substituiu a v4"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"pacote": [
|
|
62
|
+
{
|
|
63
|
+
"pasta": "projeto/",
|
|
64
|
+
"conteudo": "`remotion/`: o código da v4 em `src/chatgpt-ads/` (`ChatGPTAdsV4.tsx`, `cenas4.tsx`, `fx4.tsx`, `legenda.tsx`, `legenda3.tsx`, `ui.tsx`, `sfx4.ts`, `words.ts`, `pontos.ts`, `tdaMark.ts`), o kit de base em `src/enxurrada/` e `src/tda-marina/MarinaV2.tsx`, `src/index.ts`, `package.json`, `remotion.config.ts`, `tsconfig.json` e, em `public/`, as fotos dos 18 nichos, os logos, o mapa, os prints, a foto da fila, a mão-cursor, as marcas da TDA e os 26 efeitos da biblioteca nivelada usados no vídeo (`public/enxurrada/sfx2/`, com o catálogo)"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"pasta": "audio/",
|
|
68
|
+
"conteudo": "a narração a 1,20× (`narracao-v2-1-20x.wav`), o tempo de cada palavra (`words-v2.json`, `segments-v2.txt`), a trilha (`musica-soul-a.mp3`), o pedido de composição enviado à ElevenLabs Music (`musica-soul-pedido.json`), os textos de cada parágrafo da voz e o `conferir.py`"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"pasta": "referencias/",
|
|
72
|
+
"conteudo": "o roteiro com a fala e o plano de tela, as pesquisas sobre os anúncios no ChatGPT e sobre os nichos de Paulínia, o índice dos assets de referência (`FONTES.md`), a legenda do post, `links.md` e `fora-do-pacote.md`"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"pasta": "render.mp4",
|
|
76
|
+
"conteudo": "o Reel final (v4)"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"pasta": "ChatGPTAdsV4.tsx",
|
|
80
|
+
"conteudo": "a composição: tabela `CENAS4` com início e fim de cada cena, palco claro ou escuro, tom do brilho, centro da íris e as três transições de pontos; a câmera de cada cena aproxima 6% do início ao fim; a trilha começa 0,21 s adiantada (`MUSICA_ADIANTA`) e abaixa cerca de 4 dB por 250 ms sob cada impacto (`DUCK`)"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"pasta": "cenas4.tsx",
|
|
84
|
+
"conteudo": "as 16 cenas, cada uma com os tempos tirados da fala; nada aparece antes da palavra"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"pasta": "fx4.tsx",
|
|
88
|
+
"conteudo": "o kit da v4: `Camera` (chaves de foco e escala com saída exponencial), `MaoCursor` (caminho, clique e duas ondas), `TransicaoPontos`, `PinFoto` e `Radar`, `PilhaPalavras`, `IlhaDinamica` (Dynamic Island), `LogoTraco` (logo desenhado por traço) e `PalcoClaroV4` (brilhos pastel por cena)"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"pasta": "ui.tsx",
|
|
92
|
+
"conteudo": "telas desenhadas em pontos de iPhone (390×844): celular branco, ChatGPT iOS, teclado, card patrocinado, navegador e a lista `NICHOS` com marca, oferta, busca e cor de cada nicho"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"pasta": "sfx4.ts",
|
|
96
|
+
"conteudo": "cada efeito recebe o instante do evento e o pico do arquivo em milissegundos, para cair no quadro certo; `TROCAS` guarda as trocas de cena na grade da trilha"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"pasta": "audio/v1/conferir.py",
|
|
100
|
+
"conteudo": "transcreve cada parágrafo gerado e compara com o texto, para achar palavra trocada pela voz"
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"prompt": "Quero um Reel narrado no mesmo método do projeto \"O ChatGPT tem anúncio\", que está em 07-videos/projetos/chatgpt-anuncios/, com o meu assunto.\n\nAssunto ou novidade que o vídeo explica: {{ASSUNTO}}\nPúblico (quem precisa se reconhecer no gancho): {{PUBLICO}}\nMinha empresa e a oferta que entra no fim: {{OFERTA}}\nChamada final (formulário, DM, comentário): {{CHAMADA}}\nFontes reais do assunto (site oficial, páginas, prints, dados): {{FONTES}}\nVoz: {{VOZ}} (ID da minha voz clonada na ElevenLabs)\nMúsica: {{MUSICA}} (faixa com batida marcada e uma parada, ou peça para compor)\nDuração: {{DURACAO}} (a referência tem 1 min 59 s) · Formato: {{FORMATO}} (a referência é 1080×1920 a 30 qps)\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, nesta ordem: LEIA-ME.md, estilo.md e roteiro.md. Depois abra projeto/remotion/src/chatgpt-ads/ e veja como funcionam a tabela CENAS4 e a íris no ChatGPTAdsV4.tsx, o useT() do kit, a legenda viva (casar() e LegendaV3), os componentes do fx4.tsx (Camera, MaoCursor, TransicaoPontos, PinFoto, PilhaPalavras, IlhaDinamica, LogoTraco, PalcoClaroV4) e a lista de efeitos do sfx4.ts. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Texto primeiro. Me ajude a montar a estrutura (gancho em lista que acelera, a cena de uso, a prova de que todo mundo passa por isso, a novidade, a diferença para o que o público já conhece, a dor, a minha oferta e a chamada), mas a fala final é minha: não reescreva o que eu escrever, só corrija ortografia e concordância. Confira cada fato nas fontes e me avise do que não bater.\n\n3. Voz na ElevenLabs com a minha voz clonada, um parágrafo por vez, escrevendo como se fala (siglas e números por extenso). Confira cada parágrafo com o faster-whisper contra o texto, junte e acelere para 1,20× num único atempo. Gere o tempo de cada palavra (words.json): ele é o relógio do vídeo inteiro. Me mande o áudio e espere eu aprovar.\n\n4. Música: meça o bumbo e o BPM, ache a parada e encaixe-a na virada do roteiro (a frase em que a minha empresa entra), adiantando ou atrasando a faixa. Toda troca de cena deve abrir no bumbo. A música fica cerca de 15 dB abaixo da voz e abaixa uns 4 dB sob cada impacto.\n\n5. Material real antes de animar: logos oficiais em SVG, prints das páginas citadas, mapa ou dados reais, formulário real do meu site. O que não existe em foto (um nicho, uma cena do cotidiano) gere sem texto e sem rosto. Marca de exemplo é fictícia e conferida para não coincidir com empresa real da região.\n\n6. Escreva a tabela palavra → elemento antes do código: o que entra em cada palavra, qual tela, onde a câmera fecha e onde a mão clica. Nada aparece antes de ser dito. Me mostre e espere meu ok.\n\n7. Construa copiando o projeto, sem editar o original: telas de app em pontos de iPhone (390×844), legenda em Geist no alto com um destaque por frase só por cor e leitura mínima de 0,6 s, câmera de cada cena aproximando 6%, foco nas ações pequenas, mão-cursor com aperto e ondas, íris com aro na cor de destaque e transição de pontos só nas três viradas maiores. Troque cores e marca pelas minhas.\n\n8. Som em paralelo, num subagente: um efeito por elemento que entra, de uma biblioteca nivelada, com cada efeito em evento − pico do arquivo; carimbo, notificação, tecla e toque onde a imagem pede. Final a −14 LUFS em dois passes.\n\n9. Revise antes do render final: quadros de teste nas viradas, depois folha de contato a 2 qps do vídeo inteiro procurando elemento que aparece antes da fala, texto atrás da interface, efeito cortado e tela vazia; meça quantos cortes caem a até 2 quadros do bumbo. Entregue o MP4, o projeto Remotion e uma anotação do que mudou em relação à referência.",
|
|
104
|
+
"campos": [
|
|
105
|
+
"ASSUNTO",
|
|
106
|
+
"CHAMADA",
|
|
107
|
+
"DURACAO",
|
|
108
|
+
"FONTES",
|
|
109
|
+
"FORMATO",
|
|
110
|
+
"MUSICA",
|
|
111
|
+
"OFERTA",
|
|
112
|
+
"PUBLICO",
|
|
113
|
+
"VOZ"
|
|
114
|
+
],
|
|
115
|
+
"fonte": {
|
|
116
|
+
"nome": "Clube do Motion",
|
|
117
|
+
"url": "https://clubedomotion.com/projeto/?id=chatgpt-anuncios",
|
|
118
|
+
"uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
|
|
119
|
+
}
|
|
120
|
+
}
|