motion-apresentacao · git:20261006.c7e9920 · 2026-10-06 · sha256 7c6294939c001ed4
motion-apresentacao git:20261006.c7e9920A
Immutable. This exact content never changes and is served at /api/v1/blob/7c6294939c001ed4.
--- name: motion-apresentacao description: Cria apresentações em motion estilo lançamento de app (HTML 1920x1080 com GSAP, headlines palavra por palavra, mockups de UI, echo trail, partículas que formam o logo) e renderiza o MP4 quadro a quadro. Use SEMPRE que a pessoa pedir "motion", "apresentação em motion", "vídeo de lançamento", "motion de relatório", "animar uma apresentação", "transformar relatório/pesquisa/deck em vídeo", "motion graphics em HTML", "vídeo com GSAP", "vídeo de produto", "apresentação pessoal em vídeo", "tipos de motion", "/motion", ou quiser apresentar dados, resultados ou um produto em vídeo curto animado, mesmo sem usar a palavra motion. --- # Motion de apresentação (HTML + MP4) Transforma um conteúdo (relatório, pesquisa, deck, lançamento) em um filme curto de 20 a 60 s com cara de lançamento de app: fundo escuro, headlines grandes reveladas palavra por palavra, uma UI desenhada para cada frase, transições rápidas com echo trail e sem cortes secos, e um encerramento em que os elementos da última cena se transformam no logo da marca. Entrega um HTML que roda em loop e, se pedido, um MP4 renderizado quadro a quadro. Todo o código está em `scripts/` (o diretório desta skill). As decisões de design estão em `references/`. O processo de produção por trás das etapas (o que fecha cada fase e como evitar retrabalho) está em `references/guia-motion-graphics.md`. ## Etapa 1 — Faça as 5 perguntas iniciais (sempre) A elicitação de requisitos é **sempre em múltipla escolha**, no estilo do Claude Code: cada pergunta tem de 2 a 4 opções, a primeira é a recomendada e leva "(Recomendado)" no fim do rótulo, e a pessoa sempre pode digitar uma resposta própria. Nada de perguntas abertas nesta etapa. Antes de montar as opções, leia o pedido e os anexos. As opções devem ser **específicas do material** (ex.: "Executivos e investidores — despertar interesse pelo relatório completo", "Logo extraído da capa do PDF"), não genéricas. A opção recomendada é a que melhor combina com o que a pessoa já disse; se ela já respondeu algo explicitamente, a recomendada é exatamente essa resposta, para ela só confirmar. **Como perguntar** - Com a ferramenta `AskUserQuestion` disponível: faça duas chamadas seguidas, porque cada chamada aceita até 4 perguntas. Primeira chamada: perguntas 1 a 3. Segunda chamada: perguntas 4 e 5. Use `header` curto (até 12 caracteres), `multiSelect: false` (exceto nas mensagens-chave, que podem ser múltiplas) e uma `description` de uma linha quando o rótulo sozinho for ambíguo. - Sem a ferramenta: envie as 5 perguntas numa única mensagem, cada uma com opções A, B, C (e D), a recomendada marcada com "(Recomendado)" e sempre na letra A, e peça a resposta no formato "1A 2B 3A 4C 5A" ou "aceito as recomendadas". - Espere as respostas antes de criar qualquer arquivo. Se a sessão estiver sem ninguém acompanhando, assuma todas as recomendadas, diga no topo do trabalho quais assumiu e siga. **As 5 perguntas** (bancos de opções, com exemplos, em `references/perguntas-iniciais.md`) | # | header | Pergunta | Recomendado padrão | |---|---|---|---| | 1 | Público | Para quem é o motion e qual ação ele deve provocar? | Público profissional; despertar interesse pelo conteúdo completo | | 2 | Mensagens | Quais mensagens-chave não podem faltar? (múltipla) | Os 3 a 6 dados mais fortes do material | | 3 | Marca | De onde vem o logo e o que entra na tela final? | Logo do próprio material + nome + tagline do site da marca | | 4 | Estrutura | Quantas cenas, qual duração e qual comportamento ao final? | Abertura + 5 cenas + encerramento com logo; 30 s; em loop | | 5 | Entrega | Qual estética, formato e arquivos de saída? | P&B minimalista; 16:9 1920x1080; HTML + MP4 | Como transformar as respostas em decisões: seção "Das respostas às decisões" em `references/boas-praticas-motion.md`. ## Etapa 2 — Extraia o conteúdo Leia o material inteiro. Para cada cena, separe: a frase-título (headline), um subtítulo de uma linha com o insight e de 3 a 6 dados exatos (números, nomes, rankings). Copie os números exatamente como estão na fonte e mantenha a formatação local (8.116; 36,07; 742,4k). Não invente dados para preencher UI. ## Etapa 3 — Prepare o logo Siga `references/marca-e-logo.md`. O resultado é `logo.png` (silhueta luminosa sobre transparente) e `logo.json` (proporção e onde termina o símbolo e começa o nome), gerados por `scripts/extract_logo.py`. ## Etapa 4 — Monte o storyboard 1. Para cada frase-título, escolha a UI em `references/catalogo-ui.md`: a UI precisa *demonstrar* a frase (ranking para "líderes", busca de termos para "temas", pipeline para "metodologia" etc.). 2. Para cada cena, escolha em `references/tipos-de-motion.md` um tipo de motion herói (o movimento que carrega a mensagem) e no máximo dois de apoio. Alterne os tipos herói entre cenas para criar ritmo e confira a tabela de conflitos antes de combinar dois tipos no mesmo elemento. 3. Distribua o tempo com as regras de `references/boas-praticas-motion.md` (abertura ~3 s, cenas de ~4 s com 0,2 s de sobreposição, encerramento ~5,6 s). 4. Mostre o mapa de tempo numa tabela curta no chat (cena, tempo, UI, motion, dado principal) e siga sem esperar aprovação, a menos que a pessoa tenha pedido para revisar antes. ## Etapa 5 — Escreva o projeto Crie uma pasta de projeto (por exemplo `motion-<tema>/`) com quatro arquivos, partindo de `scripts/example/` como modelo: - `config.json` — título, idioma, tamanho, tema, fontes, marca e chrome (esquema em `references/arquitetura-e-api.md`) - `scenes.html` — uma `<section class="scene" id="...">` por cena, montada com os snippets de `scripts/components/` - `scenes.js` — a coreografia, registrada com `Motion.compose`, usando só a API pública: `M.*`, `M.recipes.*` (componentes) e `M.types.*` (tipos de motion); detalhes em `references/arquitetura-e-api.md` - `logo.png` + `logo.json` — da etapa 3 Regras que evitam os erros mais comuns (detalhes em `references/arquitetura-e-api.md`): estilize sempre por classe, nunca por id; use `fromTo` com estados explícitos; toda cena tem entrada (`M.sceneIn`) e saída (`M.sceneOut`); a última cena entrega elementos de origem para `M.brand.outro`. Para layout e hierarquia visual, siga `references/boas-praticas-ui.md`. ## Etapa 6 — Gere o HTML Execute, a partir do diretório da skill (no Windows, troque `python3` por `python`): 1. `python3 scripts/prepare_deps.py <projeto> --dir <deps>` — baixa GSAP e fontes via npm (uma vez por projeto) 2. `python3 scripts/build_motion.py <projeto> --out <saida>.html` — HTML com GSAP e fontes por CDN 3. Para um HTML 100% offline, acrescente `--inline-gsap <deps>/gsap.min.js --inline-fonts <deps>/fonts.css` ## Etapa 7 — Revise antes de entregar `python3 scripts/preview_frames.py <saida>.html --times <instantes> --out <pasta> --deps <deps>` captura quadros com o relógio virtual e monta `sheet.png`. Escolha instantes no meio de cada cena, no meio de cada transição e nas fases do encerramento. Abra a grade e confira a lista de QA de `references/renderizacao-e-qa.md`. Corrija e repita até a grade passar. ## Etapa 8 — Renderize o MP4 (se pedido) `python3 scripts/render_mp4.py <saida>.html --out <saida>.mp4 --deps <deps>` (30 fps, H.264, CRF 16). O render leva cerca de 3 a 5 s por segundo de filme. Rode em segundo plano e acompanhe o log. Depois, `python3 scripts/contact_sheet.py --video <saida>.mp4 --times ... --out check.png` para conferir o vídeo. ## Etapa 9 — Entregue Envie o HTML e o MP4 como arquivos. Na resposta: uma linha com o que foi entregue, a tabela do mapa de tempo e no máximo um próximo passo real (ex.: versão vertical, versão que termina congelada no logo). ## Dependências do ambiente Python 3.10+, Pillow, NumPy, Playwright com Chromium, ffmpeg, poppler-utils (pdftoppm, pdfinfo) e npm. GSAP e Google Fonts costumam ser bloqueados em sandboxes: `prepare_deps.py` busca os dois pelo registro npm e `browser_session.py` os serve localmente durante preview e render. ## Mapa dos arquivos | Caminho | Para que serve | |---|---| | `references/guia-motion-graphics.md` | Processo de produção: fases, critério de pronto, roteiros-modelo por formato, revisões | | `references/tipos-de-motion.md` | Os 15 tipos de motion: escolha rápida, fichas com tempo e chamada, princípios, conflitos | | `references/perguntas-iniciais.md` | Bancos de opções de múltipla escolha das 5 perguntas, regras da opção recomendada e exemplo | | `references/arquitetura-e-api.md` | Módulos do runtime, contrato do projeto, esquema do config, API `Motion` e receitas, armadilhas | | `references/boas-praticas-motion.md` | Tempo, easing, stagger, transições, echo trail, ritmo, das respostas às decisões | | `references/boas-praticas-ui.md` | Grid, tipografia, P&B, profundidade, mockups, dados na tela | | `references/catalogo-ui.md` | Qual componente usar para cada tipo de frase, com dados exigidos | | `references/marca-e-logo.md` | Como obter, recortar e validar o logo | | `references/renderizacao-e-qa.md` | Relógio virtual, MP4, checklist de QA, problemas conhecidos | | `scripts/runtime/` | CSS e JS embutidos no HTML (core, partículas, chrome, marca, receitas, tipos de motion, shell) | | `scripts/components/` | Snippets HTML de cada componente de UI | | `scripts/example/` | Projeto completo de referência (relatório CEOs no LinkedIn, 30 s) | | `scripts/*.py` | build, deps, logo, sessão do navegador, render, preview, contact sheet (classes, uma responsabilidade por arquivo) |