Pessoa falando + animações
O criador gravou a si mesmo falando. A gravação dele é a narração: não há voz gerada (não execute
tools/tts.py nem standin_words.py). Todo o resto segue o skill reel-studio e o skill de estilo do vídeo:
o estilo define como as animações se parecem; este formato define como a filmagem dele é cortada e onde as animações vão.
formats/persona-hablando/format.json lista as regras que ele vê na página Formatos — siga-as.
Arquivos
footage/— os clipes dele, na ordem em que são reproduzidos (os nomes começam com01-,02-…). Ele os envia no estúdio (Novo reel, ou a página do vídeo → Gravação). Não versionados; nunca edite ou exclua.audio/takes.json— as palavras de cada clipe com tempos (defootage.py transcribe).audio/edit.json— o corte: as partes que permanecem, em ordem. Você edita, com aprovação dele.public/footage.mp4,public/vo.wav— o corte e seu áudio (defootage.py cut).vo.wavé a narração:audio/mix.pyo mixa como uma voz gerada.src/words.json,src/vo_env.json,src/footage.json,audio/vo.txt— escritos pelo corte: as palavras no relógio do corte (para quecue(),ACTSe legendas funcionem como sempre), e onde cada parte começa (JUMPS).src/talk/Footage.tsx—<Footage />, o corte como uma camada de vídeo sem áudio;cutZoom(t)alterna o zoom por parte.
A ferramenta é executada com o venv (usa faster-whisper: Ajustes → Requisitos → Transcrição; se estiver faltando, peça para ele instalar lá): ../../../../.venv/bin/python ../../../../tools/footage.py … a partir da pasta do vídeo.
Passos
- Transcrever —
footage.py transcribe --lang <código do idioma do perfil, ex.: es>. Imprime as partes de um primeiro corte (fala dividida em pausas > 0,4 s), numeradas, com o texto. Novos clipes adicionados posteriormente são transcritos e anexados ao final, sem tocar nas partes já existentes. - Propor os cortes — leia as partes como um editor: falsos começos, gaguejos, muletas como "é" / "este" que arrastam, uma
frase dita duas vezes (mantenha a última boa tentativa, a menos que a primeira seja claramente melhor), tangentes que não
servem à ideia do vídeo, uma abertura fraca quando um gancho mais forte é dito depois. Mostre a ele uma lista numerada curta —
parte, o que é dito, o que você faria e porquê — e o comprimento resultante em relação ao alvo do perfil. Uma
mensagem, com sua recomendação, para que "sim" seja uma resposta completa. Nunca corte sem a aprovação dele.
footage.py show Nimprime as palavras da parte N com tempos quando um corte cai dentro de uma parte: divida-a em duas emedit.jsonao redor do erro (corte ~0,05 s antes de uma palavra começar e ~0,15 s depois de uma terminar, nunca no meio de uma palavra). - Cortar — edite
audio/edit.json(exclua, apare, divida ou reordene partes), depoisfootage.py cut. Verifique o comprimento impresso, olhe alguns frames (./snap.sh out/cut <seg> …assim que<Footage />estiver no filme) e peça para ele assistir ao corte no player do estúdio antes de animar: "Guion" e "Cortes" contam a partir daqui. Se ele pedir alterações, editeedit.jsone corte novamente: as palavras, o texto das legendas e os tempos seguem.audio/vo.txté reescrito a cada corte: ele diz o que foi dito, então não o edite para mudar o roteiro — mude o corte. Marqueaudio/beats.jsonem relação às suas linhas normalmente. - Verificação do roteiro — a checklist
video-scriptainda se aplica ao que foi dito: gancho nos primeiros segundos, uma ideia, uma resposta que não é revelada cedo, recompensa, CTA. Se o gancho estiver fraco, proponha uma reordenação (uma parte de depois) ou uma fala que ele possa regravar, em vez de animar em torno disso. - Animações — faça um brainstorming com a linguagem visual do estilo uma imagem por ideia (reel-studio → Imagens).
Três formas de posicioná-las, escolhidas por batida:
- Ao lado dele (na maioria das vezes): ele permanece em quadro cheio; a animação vive na parte livre do quadro (geralmente o terço superior ou o terço inferior, longe do rosto dele) ou como um cartão. Números, listas, termos, comparações.
- Tela cheia (por alguns segundos): a animação cobre o quadro e a voz dele continua. Para o que é melhor visto do que dito (um processo, um mapa, um gráfico). Volte ao rosto dele antes que ele faça o próximo ponto.
- Nenhuma: quando ele está fazendo um ponto emocional ou pessoal, o rosto dele é a imagem. Encontre a posição do rosto dele no quadro primeiro (um still do corte) e mantenha-a clara: nunca cubra os olhos ou a boca dele.
- Construir —
src/film/Film.tsx:<Footage zoom={cutZoom(t)} />como a camada inferior (em vez do fundo do estilo), as cenas por cima, legendas sobre ambos,<Audio src={staticFile('mix.wav')} />como sempre. Os fundos e texturas de papel do estilo pertencem apenas às batidas de tela cheia. Atos emsrc/lib.tsa partir decue()como de costume; oTOTALdo modelo contém o último frame para o segundo de encerramento. Cada salto entre partes (JUMPS) precisa de uma cobertura:cutZoomalterna o enquadramento, ou uma animação entrando naquele corte. - Quadro, som, teste sem áudio, renderização — como em
reel-studio. No teste sem áudio, os frames devem fazer sentido sem som: se longos trechos forem apenas o rosto dele, diga e proponha onde uma animação carregaria a ideia.
Entrega
Relate o comprimento do corte, quantas partes foram removidas e porquê (em uma linha), o que está animado onde, e qualquer
coisa sintética. Registre em LESSONS.md (parte geral) o que custou uma revisão do corte.