auditoria-de-filme: nenhum filme sai sem estas verificações
Onde o kit vive: execute todos os comandos deste skill na pasta
reels-maker(o clone de github.com/thativanng/reels-maker que contémtemplate/etools/). Se o projeto não tiver nenhum, configure-o primeiro seguindo o SETUP.md desse repositório.
A regra: um filme só vai para a pessoa quando (1) a verificação de colisão disser SEM COLISÕES, (2) toda preocupação do tipo "X está sobre um rosto" tiver um número de pixels, e (3) um auditor independente tiver dado o aval sem nenhum DEVE-CORRIGIR em aberto. Uma olhada a 1 fps pela pessoa que construiu é uma verificação superficial, não um portão. Uma correção move outras coisas (mover um balão de fala uma vez empurrou-o para fora do quadro), então cada rodada de correção recebe uma re-verificação estreita das janelas que tocou.
Portão 1 · Colisões em 3D (node tools/collide.mjs)
- A página expõe
window.collide(t). Ela compara as caixas limitadoras de cada malha em AUD_M (coisas que se movem) contra AUD_S (coisas que ficam paradas) e entre si, após encolher cada caixa em 0.03. - Registre cada novo movente e sólido, ou a verificação não consegue vê-lo. Caixas arremessadas, copos carregados, cubos passando e vírus flutuantes contam como moventes.
- Contatos que devem acontecer (um copo na mão) são excluídos por nome, em
HELD. - Malhas com menos de 0.12 unidades de altura (decals de chão, marcações de estrada, placas finas) são ignoradas, para que uma coisa plana não gere um falso alarme. Um movente realmente fino precisa de sua própria verificação.
- Execute a 40 fps (
STEP=.025, o padrão). A 10 fps perdeu dois contatos de um quadro: caixas arremessadas através das cabeças de duas pessoas. - A saída é uma linha por par:
de–para s A × B profundidade (quadros). Envie apenas comSEM COLISÕES.
Portão 2 · Pixels na tela (node tools/probe.mjs)
Alguns defeitos nunca colidem em 3D. Uma tampa de garrafa a 3 m atrás da cabeça de alguém ainda pode parecer que está crescendo do cabelo. Meça a tela:
node tools/probe.mjs "4.4,4.6,4.8" "D.CUPS[0]" "head" # sobreposição de um copo e a cabeça do herói, em pixels
node tools/probe.mjs "24.5,26" "head" "pill" # a cabeça está atrás da legenda?
node tools/probe.mjs "3.0,3.5" "D.GUESTS[1].v.root" # um retângulo: esta pessoa está dentro do quadro?
- Leia
overlap: [x, y](ambos > 0 significa um sobre o outro),gapYeinside(A está totalmente dentro de B). - Em qualquer página, inclusive 2D:
sel:<seletor css>é o que um elemento realmente pinta (suas letras, medidas linha por linha, mais qualquer fundo, borda ou imagem) esafeé a zona de segurança da plataforma (dewindow.FILM.safe). Toda palavra na tela deve estarinside: trueem relação asafeem cada batida:node tools/probe.mjs --page reels/<nome>/page.html --format 9:16 "2,6.4,10.4" "sel:.title,.line,.kicker,.handle,.cap" "safe" - Para testar uma chave de câmera sem editar o arquivo, passe
PRE(executa antes de cada vez):PRE="window._CK.find(k => k[0] === 23.8)[1] = window._dbg.A(72.2, 10, 31, 72, 5.2, 1.5)" node tools/probe.mjs "25,28" "head". - As caixas são conservadoras (uma caixa limitadora é maior que a forma), então alguns px de sobreposição podem ser claros na realidade. A decisão do auditor é que prevalece.
Verifique cada um destes com um número antes de renderizar:
- Toda palavra, legenda e logotipo dentro da zona de segurança da plataforma (
safe, de template/formats.json). Em reels orgânicos 9:16, essa é a faixa do meio (o app cobre o quarto inferior e a barra de botões à direita); em um reel pago, tudo acima dos 35% inferiores - Qualquer coisa perto de um rosto: bonés, telas atrás da cabeça (o halo), cubos passando, adereços na boca
- O herói contra a legenda durante movimentos de câmera
- O balão de fala contra a borda do quadro e adereços próximos
- Pessoas e veículos contra a borda do quadro (≥24 px é seguro)
- Coisas voadoras (caixas arremessadas, moedas, aglomerados de vírus) contra cada cabeça que passam
Portão 3 · O auditor independente
Inicie um agente NOVO (nunca o construtor, nunca um que viu a construção) com references/auditor-brief.md.
- Ele lê o MP4 renderizado, não a página ao vivo:
ffmpeg -i out/filme.mp4 -vf fps=2 …, depois planilhas com timestamp (tools/sheet.py). - ≥2 fps para o filme inteiro, ≥4 fps em cada janela alterada, quadro a quadro (30 fps) em pontos de contato como uma pega ou uma entrega.
- Ele responde por item: CORRIGIDO / NÃO CORRIGIDO / REGRESSÃO / NOVO, classificado DEVE-CORRIGIR / BOM-CORRIGIR, depois uma linha:
APROVADOouNÃO. - Uma re-verificação após correções é estreita: apenas as janelas que as correções tocaram, mais um olhar rápido para regressões. Pode ser mais barato iniciar um novo agente do que retomar um que carrega todo o seu histórico.
O que os auditores continuavam encontrando (procure primeiro por estes)
- Algo tocando ou atrás de uma cabeça: uma tampa de garrafa no cabelo, alfinetes de mapa atrás da cabeça, um monitor brilhando atrás da cabeça, um cubo atravessando um queixo
- Coisas passando através de coisas: caminhões através de prédios e uns dos outros, uma van estacionada debaixo de uma mesa
- Lógica: um caminhão atracando de frente, o segundo caminhão ultrapassando o primeiro, um copo deixado na borda de uma mesa que deveria cair
- Pessoas: duas pessoas tão próximas que suas cabeças se fundem em uma figura; alguém meio fora do quadro
- Movimento: um pulo de um quadro (teletransporte), coisas caindo pelo chão em 0,1 s, o herói desaparecendo entre cenas
- Palavras: texto dentro de uma zona que os botões da plataforma cobrem, chinês quebrado no meio de uma palavra, um banner fora de sincronia com sua cena, ortografia mista UK/US, um número que ninguém pode defender, a legenda cobrindo o herói
- Som: whooshes, uma deixa que está inaudível sob a música, deixas flutuando após uma batida inserida