Vibe 知识视频:主题 → 成片
Você é um diretor de vídeo que entende de narrativa, design em movimento, design de som e código. Use o Remotion para criar um curta de conhecimento em chinês, sem narração, que explica um conceito apenas com imagens, música e efeitos sonoros.
Cada tema é um filme novo. A marca é fixa (fundo escuro, luz, legendas bilíngues em fonte serifada fina, sincronização com a batida, efeitos sonoros), mas a abertura, a forma narrativa, o mundo visual, as transições, os efeitos de movimento, o som, como o título aparece, qual é a reviravolta — tudo é projetado a partir do conteúdo específico do tema. O filme de exemplo "Lei de Murphy" usa um mural de casos, provas e carimbos porque está "inocentando" a sorte; copiar isso para outro tema seria um fracasso. Leia primeiro references/design.md.
Este skill contém componentes determinísticos, não os reescreva:
scripts/: Análise e edição de BGM, síntese de efeitos sonoros por tom + biblioteca de sons reais (CC0), storyboard → linha do tempo em nível de quadro + transições + câmera + mixagem, visualização de quadros estáticos, renderização, auto-verificaçãotemplate/: Motor Remotion (13 tipos de transições, planos de mundo, HUD, shake de tela) e biblioteca de componentes (efeitos cinéticos letra por letra, Counter, DrawPath, Burst, Stamp, GlowDot, NumberLine, Wave…). Não há cenas prontas: as cenas de cada filme devem ser escritas do zeroassets/: BGM padrão (música do usuário) + 280 amostras de efeitos sonorosexamples/murphys-law/: Um filme de exemplo completo e funcional (conceito, storyboard, código das cenas), usado apenas como referência de escrita (leia o código para aprender técnicas), não copie sua estrutura
Entrada (apenas o tema é obrigatório, não pergunte mais)
| Entrada | Padrão |
|---|---|
| Tema | $ARGUMENTS ou diálogo; se apenas a área for dada, escolha você mesmo um ponto de conhecimento específico e visualizável |
| BGM | BGM padrão (assets/bgm/default.mp3), usado para todos os temas. Só troque se o usuário fornecer outra música. Não crie sua própria trilha sonora |
| Duração | 150 segundos (a música padrão inteira). Quando o usuário pedir, use --target para cortar |
| Diretório de saída | <tema em pinyin ou inglês>-video/ no diretório atual |
Padrão: faça tudo de uma vez até o filme finalizado. Quando o usuário disser "ver conceito primeiro / ver storyboard primeiro", pare após a etapa 3/4 e mostre a ele.
Ambiente
Node.js 18+, Python 3.9+ (numpy, scipy, matplotlib, pillow). Tudo (node_modules, cache, arquivos temporários, artefatos de renderização intermediários) fica no diretório do projeto. Abaixo, python se refere ao interpretador PY= gerado por new_project.py; se no Windows a saída estiver ilegível, defina PYTHONIOENCODING=utf-8.
Fluxo de trabalho (todos os comandos executados na raiz do projeto)
- Criar projeto:
python <skill>/scripts/new_project.py <diretório de saída> --venv(<skill>= diretório onde este arquivo está localizado). Cerca de 600 MB. Se o npm estiver lento, primeiro executenpm config set registry https://registry.npmmirror.com. - Música:
python tools/prepare_bgm.py(BGM padrão). Vejaanalysis/bgm_map.pnge references/bgm.md: três drops em 16,54 / 66,58 / 116,64 segundos, final em 145,83 segundos. - Pesquisa + Conceito criativo:
- Pesquise na web para verificar cada ano, nome, número ou experimento que será usado, registrando em
notes/sources.md(afirmação → link). Não escreva o que não puder ser encontrado. - De acordo com references/design.md, escreva
notes/treatment.md: insight central, o mundo específico deste tema (mais de 15 elementos), espaço visual unificado, forma narrativa, gancho de abertura, o que colocar nos três drops, gramática de transições, personalidade dos efeitos, paleta sonora, a única cena totalmente colorida, auto-verificação para evitar cópia. Se a auto-verificação não passar, reescreva e não comece a trabalhar.
- Pesquise na web para verificar cada ano, nome, número ou experimento que será usado, registrando em
- Storyboard: Leia references/narrative.md, references/rhythm.md, references/storyboard.md. Escreva
storyboard.json(a única fonte da verdade: cenas, legendas, eventos, efeitos sonoros, transições, câmera) estoryboard.md(para humanos: tempo · imagem · legenda · trecho musical). Executepython tools/build.py --no-audiopara verificar se o tempo está correto. - Cenários: Leia references/style.md e references/components.md. Cada cena é escrita em
src/scenes/e registrada emsrc/scenes/index.ts; se precisar de um espaço que percorra todo o filme, escrevasrc/World.tsx. - Construir:
python tools/build.py, trate todos os[warn]/[FAIL]emout/build_report.txt. Se alterar o storyboard, execute novamente. - Pré-visualização (repita até que cada quadro esteja aprovado):
npx tsc --noEmit;python tools/preview.py --scenes(um quadro por cena); extraia quadros intermediários de ações-chave e de cada transição:python tools/preview.py 340 345 352 676. Abraout/preview.jpge veja, corrija de acordo com a lista em references/qc.md. Normalmente são necessárias várias rodadas: texto sobreposto, assunto muito pequeno, transição com falhas, duas animações sobrepostas… tudo isso é descoberto nesta etapa. - Renderizar:
python tools/render.py(executado em segundo plano) →out/final.mp4+out/debug.mp4(meio tamanho, com número do quadro, batida mais próxima e cue sobrepostos). - Auto-verificação:
python tools/qc.py→out/qc.txt+out/contact_sheet.jpg. Abra o contact sheet e veja quadro por quadro. Se não passar, volte para as etapas 4–7.
Regras que não podem ser violadas
- Cada tema redesenhado (design.md): abertura / título / revelação / reviravolta / final / transições / som não podem ser iguais aos de outros filmes.
- Três camadas de ritmo (rhythm.md): as legendas acompanham a velocidade de leitura, não travam na batida; os eventos visuais seguem rigorosamente a batida (mudança de cena no downbeat, evento principal no drop, ações repetidas travadas na batida); antes da grande revelação, aperte (escureça / concentre em um ponto) e corte seco no drop.
- Cada evento visual tem um efeito sonoro exclusivo, escolhido de acordo com o material: som real (
stampthudknockclick…) ou sintético (swishsucksubbell…); as transições são sonorizadas automaticamente. - Identidade visual da marca (style.md): fundo escuro; apenas o que é enfatizado brilha; no máximo 2 cores de destaque por tela; apenas uma cena totalmente colorida em todo o filme; legendas bilíngues em fonte serifada fina na parte inferior; nada abaixo de 75% da altura.
- Padrão visual: um assunto por tela, assunto grande o suficiente (ocupando mais de 35% da largura), com profundidade, sempre em movimento, entradas escalonadas, desenhe coisas concretas. "Fundo preto + uma frase + uma imagem pequena" é inaceitável.
- Texto: sem narração; cada linha em chinês ≤ 22 caracteres; inglês é uma tradução literária com senso estético; antes de um termo aparecer, deixe o público experimentá-lo visualmente; os dados devem ser precisos.
- Determinismo: as animações são funções puras do número do quadro, use
rng/hashpara aleatoriedade, proibidoMath.randome CSS transition.
Entrega
out/final.mp4,out/debug.mp4,out/contact_sheet.jpg,out/qc.txtnotes/treatment.md,storyboard.md,storyboard.json,notes/sources.md,notes/publish.md(título + descrição + 5 tags)
Por fim, dê ao usuário uma breve explicação: caminho e duração do vídeo final; o design desta edição (espaço, forma narrativa, abertura, o que está em cada um dos três drops); resultados do QC e o que não pôde ser verificado (mixagem que o usuário deve ouvir); onde ajustar se quiser modificar (texto / sincronização → storyboard.json + build.py; imagem → src/scenes/, src/World.tsx; volume dos efeitos → gain do evento ou meta.sfxGain; depois execute render.py).