Curta-metragem cartoon 3D (three.js + Remotion)
Comandos executados a partir da raiz do projeto, no Bash (não PowerShell). references/ e templates/ são relativos a esta habilidade; SK = .claude/skills/cartoon-3d-short.
Curta-metragens finalizados em src/videos/ nunca são editados. Não os leia para aprender o código: references/API.md é o mapa.
references/STYLE_BIBLE.md e references/reports/ são material de estudo de outro canal. Nunca copie os scripts, personagens ou tomadas desse canal, nunca o nomeie em uma narração ou descrição.
Regras
- Sem legendas ou rótulos. Apenas inglês. Um tom de voz estável. Piadas são fatos reais pesquisados.
- Cada tomada esconde o horizonte atrás de prédios, árvores com arbustos de 2-3 m nas lacunas do tronco, ou uma colina distante. Preencha apenas o que a câmera vê. Cenários são ricos: multidões lotadas, ornamentos, texturas, bandeiras.
- Exportação final é 1080x1920 a 30 fps, nunca
--scale. - Mixagem: voz, SFX CC0 gratuito cerca de 6 dB abaixo dela, trechos de música por cena (nunca uma faixa contínua) com compressão abaixo da voz, mixagem inteira em -15 LUFS.
- Aprovação permanente para SFX e modelos 3D gratuitos e sem copyright: verifique a licença na página do arquivo, pule atribuição / não comercial / compartilha igual, registre em
_sfx/LICENSES.md, diga o que você buscou e o tamanho. Pergunte antes de logins, pagamentos, outros downloads ou de executar um pacote que não está instalado. - Lista de verificação de quadros-chave (
references/QA.md): Agente Opus-medium no primeiro conjunto completo e mais uma vez antes da renderização, suas próprias verificações entre elas, então o usuário aprova os quadros-chave. Nenhuma pontuação absoluta é um bloqueio. - Correções renderizam apenas as partes alteradas (
--redo), nunca o vídeo inteiro. - Salve a cada etapa. Duas paradas para o usuário: aprovação do roteiro e aprovação dos quadros-chave finais antes da renderização final. Caso contrário, trabalhe até a entrega sem perguntar.
Pipeline
- Tópico e fatos. Uma história real surpreendente com uma causa e efeito visuais e físicos, mais uma analogia cotidiana. Fatos com fontes vão no topo de
src/videos/<nome>/SCRIPT.md. - Roteiro. A duração segue a história. Contagem de palavras = segundos x palavras/s, medida a partir de uma amostra de uma frase da voz escolhida (sem amostra: assuma 3 e verifique após a captura). Batidas: gancho (fato absurdo, uma linha), cenário (ano, lugar, orgulho), ação (3-4 batidas crescentes), estalo, morto de cara ("/ Felizmente... / Infelizmente..."), explicação (uma ideia, analogia cotidiana), consequência, reviravolta de retorno. Nunca descreva o que o espectador já vê. Layout apenas:
templates/SCRIPT_example.md. Pare aqui até o usuário aprovar o roteiro. - Voz. O usuário gera a captura em
_voiceover/<nome>/voice_raw.wav. Depoispython scripts/voice_trim.py _voiceover/<nome>/voice_raw.wav _voiceover/<nome>/voice.wavepython scripts/words_whisper.py _voiceover/<nome>/voice.wav _voiceover/<nome>/words.json. Tudo é cronometrado parawords.json: nunca o leia, imprima comoword@framee corrija palavras erradas com um script curto. Aja na linha depausas mantidas(references/GOTCHAS.md"Voz"). - Pasta do vídeo. Copie os quatro arquivos em
templates/starter/parasrc/videos/<nome>/, renomeieShort.tsxpara<Nome>.tsxeStarterShort/STARTER_FRAMESdentro dele, registre a composição emsrc/Root.tsx. Eles contêm apenas dados da história mais uma demonstração de 2 tomadas marcada comoEXAMPLE; o motor está emsrc/shared/. Leiareferences/API.mdantes de editar. Sesrc/shared/ouscripts/estiver faltando ou sem um arquivo, copie detemplates/shared/outemplates/scripts/. - Varredura de adereços. Para cada batida, busque
public/kenney/INDEX.txte tabela as escolhas emsrc/videos/<nome>/PROPS.md. Adereço faltando: busque um pacote CC0 gratuito (references/GOTCHAS.md) empublic/kenney/<pacote>/, anexe aoINDEX.txt, adicione<pacote>/<modelo>aKENNEYemworld.ts. - Plano de tomadas em
story.ts:TOTAL= teto(segundos de voz x 30), depoisSHOTS,XFADE,FLASH_AT,CAMS,KICKS,DOF_V2. Reações visuais chegam 0-3 quadros antes de sua palavra. Cada pausa se insinua. Cada movimento em loop recebe um tempo de troca explícito. - Construa as tomadas substituindo as partes
EXAMPLE. A aparência da casa está embutida no motor (references/LOOK.md); nunca editesrc/shared/para um vídeo.- Mundo (
world.ts): cenários, adereços, materiais, adereços em movimento empose(). Céu, luzes, cidade, porto, sol e eliminação de linha de visão vêm do motor. Passekeep = trueparaprop()para adereços principais. - Personagens (
cast.ts): roupas e um casostage()por encenação. Cartões, contornos, piscadas e sombras vêm do motor. - Composição (
<Nome>.tsx): nome epoolShotsapenas. A cadeia de pós-processamento (tinta, desfoque de lente, bloom, mapa de tom, gradação) está no motor.
- Mundo (
- Verificação de quadros-chave, antes de qualquer renderização longa (
references/QA.md): quadro intermediário de cada tomada, verificações roteirizadas, verificação do agente, correção e autoverificação, segunda verificação do agente, correção e autoverificação. Pare aqui até o usuário aprovar os quadros-chave. - Preparação de som (
references/SOUND.md): eventos SFX em_sfx/<nome>_events.json, trechos musicais em_sfx/<nome>_music_cues.json. - Renderização final (
references/RENDER.md):REMOTION_TMP=C:/remotion-tmp node scripts/render_chunks.mjs <Comp> out/<nome>/video.mp4 <TOTAL>. - Mixagem e QA. Monte a música (
music_cues.py, vejareferences/SOUND.md), entãopython SK/templates/audio/build_mix.py _voiceover/<nome>/voice.wav out/<nome>/video.mp4 out/<nome> _sfx/<nome>_events.json [_sfx/<nome>_music.wav]escrevevideo_final.mp4. Depoispython scripts/bridge_shots.py src/videos/<nome>/story.ts out/<nome>/shots.jsonepython scripts/short_qa.py out/<nome>/video_final.mp4 out/<nome>/qa out/<nome>/shots.json --voice _voiceover/<nome>/voice.wav, que deve sair com código 0. Corrija comrender_chunks.mjs ... --redo A-B,C-D, depois mixagem e QA novamente. Observações do usuário no vídeo final:references/QA.md"Revisão do usuário". - Entregue. Envie
video_final.mp4(acima de 30 MB: uma prévia menor mais o caminho), exclua as pastas do pacote deste curta emC:/remotion-tmp, atualize a memória.
Arquivos de referência
| Arquivo | Leia quando |
|---|---|
references/QA.md | verificação de quadros-chave, prompt de lista de verificação, short_qa |
references/SOUND.md | bibliotecas SFX, trechos musicais, mixagem |
references/RENDER.md | configurações de renderização, loop de correção, retomada |
references/API.md | antes de editar os arquivos iniciais: o que vai onde, assinaturas de função |
references/GOTCHAS.md | voz, adereços e cenários, armadilhas de enquadramento, este PC |
references/LOOK.md | valores de aparência da casa, regras de câmera e personagem |
references/LOOK_MATCH.md | apenas para a aparência de referência original ou uma passagem de correspondência de aparência |
references/house/GRADER_PROMPT.md | comparação A/B em pares, apenas ao alterar a aparência |
Alterando a própria habilidade (documentos, inicializador, motor, scripts): leia MAINTAINING.md primeiro.