O que motionproof faz?
Você é o diretor, o designer e a pessoa que verifica o trabalho. Você decide o que o filme faz o espectador acreditar, você o constrói, e então você o mede como um estranho faria. Um número de um script é mais importante do que sua impressão da renderização. SKILL abaixo significa a pasta que contém este arquivo.
Comandos foram escritos para qualquer shell. No Windows use python (ou py -3) onde estiver python; caminhos com espaços vão entre aspas. O PowerShell não tem &&: execute um comando por linha.
As cinco regras
- Uma ideia que a marca possui. Cubra o logotipo: se um concorrente pudesse veicular o mesmo filme, comece de novo. A ideia vem do próprio material da marca (seu produto, seu gesto, seu trabalho, seu lugar), nunca da primeira associação de seu nome.
- Cada batida compra uma crença. Escreva "após esta batida o espectador acredita em ___" para cada batida. Se você não conseguir preencher o espaço em branco, corte a batida. Mostre a coisa acontecendo, depois diga-a, nunca apenas diga-a.
- Nunca o mesmo filme duas vezes. Antes de fazer o storyboard, execute o ledger. Uma faixa, conceito ou final repetidos, ou metade dos eixos de um filme recente, são rejeitados.
- Medido, depois julgado. Execute os scripts; cite seus números em
NOTE.md. Qualquer coisa que um script possa medir é um portão. O que ele não pode medir, você olha e diz que olhou. - Legível em um celular. Texto grande o suficiente, contrastado o suficiente, dentro da área segura da plataforma, na tela por tempo suficiente para ser lido. Vertical é o padrão para redes sociais, não um pensamento posterior.
Fluxo de trabalho
0. Máquina (10 s)
node "SKILL/scripts/doctor.mjs"
Para se faltar ffmpeg, Node < 22 ou menos de 20 GB livres. Um navegador (Chrome ou Edge) é necessário apenas para filmes HTML.
1. Brief
Escreva em quatro linhas: quem assiste, onde (plataforma e proporção), o que devem fazer depois, o que devem sentir. Em seguida, a única coisa verdadeira para a qual o filme existe: uma funcionalidade real, um resultado real, um momento real. Declare suposições em vez de parar para fazer perguntas de rotina; pergunte apenas quando o brief for genuinamente ambíguo (qual marca, qual plataforma, qual oferta).
2. Três ideias, depois uma
Escreva três ideias de tipos diferentes (veja references/direction.md: documentário de uma tarefa, um único plano fixo, uma contagem regressiva, um diagrama que se constrói, a jornada de um objeto, um corte de antes/depois, e mais). Execute o teste de cobrir o logotipo em cada uma. Escolha uma e escreva por que em uma linha.
3. Ledger
python "SKILL/scripts/ledger.py" suggest --brand "<marca>"
python "SKILL/scripts/ledger.py" check --brand "<marca>" --concept <x> --opening <x> --transition <x> --camera <x> --type <x> --palette <x> --texture <x> --track <x> --exit <x>
Código de saída 1 significa que a combinação repete um filme recente ou rejeitado: altere os eixos que ele nomeia. O ledger reside no projeto (motion-ledger.jsonl, ou $MOTIONPROOF_LEDGER). Se o projeto já mantiver sua própria biblioteca de filmes passados, leia-a também.
4. Storyboard (STORYBOARD.md)
Formato e predefinição de zona segura (references/formats.md), o chão/luz/textura de cada ato, o momento herói (o quadro que vale uma captura de tela), e a tabela de batidas: tempo em quadros, função (gancho, virada, prova, encerramento), o que o espectador acredita depois, o que se move, curva de entrada e saída (references/motion-catalog.md), como faz a transição para a próxima batida, e o texto na tela com seu tempo mínimo de leitura (0,5 s + caracteres / 17). Se o texto de uma batida não couber em seu tempo, corte palavras, não tempo.
5. Construa a batida mais difícil primeiro
Escolha o adaptador (references/adapters.md):
- HTML puro: copie
templates/film.htmletemplates/kit.jspara a pasta do filme. - HyperFrames: mantenha sua composição; os scripts controlam
window.__timelines. - Remotion: copie
adapters/remotion/parasrc/; useease(),dur(),safeBox(),readingFrames(),<SafeGuide/>.
Construa o momento herói e sua transição mais difícil, renderize stills e olhe para eles antes de construir o resto:
node "SKILL/scripts/render.mjs" film/index.html --still 0.5,2.2,4.0 --out film/stills (HTML / HyperFrames)
npx remotion still <Comp> film/stills/f60.png --frame=60 (Remotion)
6. Renderização de rascunho e verificações
node "SKILL/scripts/render.mjs" film/index.html film/draft.mp4 --scale 0.5
node "SKILL/scripts/probe.mjs" film/index.html --zones reels
python "SKILL/scripts/review.py" film/draft.mp4 --zones reels --expect <segundos> --exit-required
probe.mjs lê o DOM ao vivo (HTML e HyperFrames): tamanho L1, contraste L2, zona segura L3, texto cortado L4, tempo de leitura L5; também avisa sobre a aparência de apresentação de slides (W3 chamada sobre título, W4 layout de slide, W5 título digitado, W6 barra de progresso, W7 cartão de UI genérico). Adicione --strict-style quando o brief pedir cinema, não interface; um padrão que é a ideia recebe data-allow-<nome> ou data-ui e uma linha em NOTE.md (tabela em references/review.md). review.py lê os pixels de qualquer MP4 (também Remotion e arquivos editados): R1 renderização, R2 silêncio, R3 finalização, R4 flashes, R5 pixels de zona segura, R6 som. Abra sheet.jpg da pasta de revisão: as faixas vermelhas são as margens da plataforma. Descreva cada quadro da folha em uma frase (o que está na tela, para onde o olho vai) antes de julgar qualquer coisa.
Corrija nesta ordem: falso ou quebrado; a ideia; as transições entre batidas; hierarquia e escala; timing; superfície; som. Um FALHA é corrigido, nunca discutido. Um AVISO é examinado e ou corrigido ou explicado em NOTE.md.
7. Som
Música na grade: python "SKILL/scripts/beats.py" grid --bpm <bpm> --fps 30 --duration <s> fornece quadros de batida para cortes e acentos. Se uma ferramenta de som estiver disponível no ambiente (um banco de efeitos sonoros, uma ferramenta de análise de áudio), use-a para escolher e posicionar os acentos. Silêncio antes do grande acerto; abaixe a música durante a leitura. Depois:
python "SKILL/scripts/master.py" film/final-raw.mp4 film/final.mp4 --target reels --fade 1.0
8. Verificação final, nota, ledger
python "SKILL/scripts/review.py" film/final.mp4 --zones reels --target reels --expect <s> --expect-audio --exit-required --fade-required
python "SKILL/scripts/beats.py" check --bpm <bpm> --report film/final-review/report.json
python "SKILL/scripts/ledger.py" add --brand "<marca>" --film <nome> <os mesmos eixos da etapa 3>
Escreva NOTE.md: a ideia e por quê; cada batida e o que ela compra; o que é real e o que é ilustrativo; as linhas de portão copiadas de probe.mjs e review.py; as descrições de quadro em uma frase; o que você ainda melhoraria. Nunca escreva que o filme é bom: escreva o que você verificou. Quando o espectador reagir, registre: ledger.py verdict --film <nome> --verdict approved|rejected --note "<palavras deles>". Uma combinação rejeitada fica bloqueada para todos os filmes futuros.
Nunca entregue
- Um filme que ninguém olhou, ou portões reivindicados sem as linhas de script.
- Texto sob a interface da plataforma, cortado pela borda do quadro, menor que 3,1 % do lado menor, com contraste abaixo de 4,5:1, ou que desapareça antes de poder ser lido.
- Mais de três flashes em qualquer segundo.
- Um quadro finalizado mantido além do limite de espera final; uma imagem congelada no meio; um final que simplesmente para (use um movimento de saída e um fade de som).
- A mesma faixa, conceito ou final do último filme da marca.
- Chrome de página como decoração: etiquetas de canto, contadores "01 / 04", timecodes, barras de progresso. Permitido apenas quando for a própria ideia (uma sala de controle, uma contagem regressiva): então marque com
data-diegetic(oudata-uipara uma tela de produto real) e diga por quê emNOTE.md. - Números, depoimentos ou interfaces inventados mostrados como reais.
Arquivos
| caminho | o quê |
|---|---|
references/direction.md | brief, tipos de ideia, batidas e o que compram, transições, notas de cópia em português |
references/motion-catalog.md | curvas, durações, retenções, pausas, como escolher |
references/formats.md | proporções, zonas seguras, tamanhos de tipo por formato |
references/sound.md | grade musical, acertos, metas de volume, fades |
references/review.md | cada portão, seu número, o que não pode ver |
references/adapters.md | contratos HTML, HyperFrames e Remotion |
data/*.json | zonas, metas de volume, tokens de movimento, vocabulário do ledger (edite estes, não os scripts) |
scripts/ | doctor, render, probe, review, master, beats, ledger |
templates/ | film.html e o runtime kit.js sem dependências |
adapters/ | helpers do Remotion e notas do HyperFrames |