audit-film : aucun film ne sort sans ces contrôles
Où se trouve le kit : exécutez chaque commande de cette compétence depuis le dossier
reels-maker(le clone de github.com/thativanng/reels-maker qui contienttemplate/ettools/). Si le projet n'en a pas, configurez-le d'abord en suivant le SETUP.md de ce dépôt.
La règle : un film n'est transmis à la personne que lorsque (1) la passe de collision indique AUCUNE COLLISION, (2) chaque inquiétude du type « X chevauche-t-il un visage » a un nombre de pixels, et (3) un auditeur indépendant a signé sans aucun MUST-FIX ouvert. Un simple coup d'œil à 1 ips par la personne qui a construit le film n'est qu'une vérification d'esquisse, pas un barrage. Une correction en déplace d'autres (un jour, déplacer une bulle de dialogue l'a poussée hors du cadre), donc chaque série de corrections fait l'objet d'une re-vérification ciblée des zones qu'elle a touchées.
Barrière 1 · Collisions en 3D (node tools/collide.mjs)
- La page expose
window.collide(t). Elle compare les boîtes englobantes de chaque maillage dans AUD_M (ce qui bouge) contre AUD_S (ce qui est fixe), et entre eux, après avoir réduit chaque boîte de 0,03. - Enregistrez chaque nouveau mobile et chaque nouveau solide, sinon le contrôle ne peut pas le voir. Les boîtes lancées, les tasses portées, les cubes qui passent et les virus flottants comptent comme des mobiles.
- Les contacts qui sont voulus (une tasse dans une main) sont exclus par leur nom, dans
HELD. - Les maillages de moins de 0,12 unité de hauteur (décalcomanies de sol, marquages routiers, plaques fines) sont ignorés, afin qu'un objet plat ne déclenche pas une fausse alerte. Un vrai mobile fin nécessite son propre contrôle.
- Exécutez-le à 40 ips (
STEP=.025, la valeur par défaut). À 10 ips, il a manqué deux contacts d'une seule image : des boîtes lancées à travers la tête de deux personnes. - La sortie est une ligne par paire :
de–vers s A × B profondeur (images). N'expédiez qu'avecAUCUNE COLLISION.
Barrière 2 · Pixels à l'écran (node tools/probe.mjs)
Certains défauts ne touchent jamais en 3D. Un bouchon de bouteille à 3 m derrière la tête de quelqu'un peut quand même sembler pousser dans ses cheveux. Mesurez l'écran :
node tools/probe.mjs "4.4,4.6,4.8" "D.CUPS[0]" "head" # chevauchement d'une tasse et de la tête du héros, en pixels
node tools/probe.mjs "24.5,26" "head" "pill" # la tête est-elle derrière le sous-titre ?
node tools/probe.mjs "3.0,3.5" "D.GUESTS[1].v.root" # un rectangle : est-ce que cette personne est dans le cadre ?
- Lisez
overlap: [x, y](les deux > 0 signifie qu'ils sont l'un sur l'autre),gapY, etinside(A est entièrement dans B). - Sur n'importe quelle page, y compris la 2D :
sel:<sélecteur css>correspond à ce qu'un élément peint réellement (ses lettres, mesurées ligne par ligne, plus tout arrière-plan, bordure ou image) etsafeest la zone de réserve de la plateforme (depuiswindow.FILM.safe). Chaque mot à l'écran doit êtreinside: truepar rapport àsafeà chaque battement :node tools/probe.mjs --page reels/<nom>/page.html --format 9:16 "2,6.4,10.4" "sel:.title,.line,.kicker,.handle,.cap" "safe" - Pour essayer une clé de caméra sans modifier le fichier, passez
PRE(elle s'exécute avant chaque appel) :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". - Les boîtes sont conservatrices (une boîte englobante est plus grande que la forme), donc un chevauchement de quelques px peut être en réalité clair. C'est l'auditeur qui décide du rognage.
Vérifiez chacun de ces points avec un nombre avant de faire le rendu :
- Chaque mot, légende et logo à l'intérieur de la zone de réserve de la plateforme (
safe, depuis template/formats.json). Sur les reels organiques en 9:16, c'est la bande centrale (l'application couvre le quart inférieur et le rail de boutons à droite) ; sur un reel payant, tout ce qui est au-dessus des 35 % inférieurs. - Tout ce qui est près d'un visage : casquettes, écrans derrière la tête (le halo), cubes qui passent, accessoires près de la bouche.
- Le héros par rapport à la pastille de sous-titre pendant les mouvements de caméra.
- La bulle de dialogue par rapport au bord du cadre et aux accessoires proches.
- Personnes et véhicules par rapport au bord du cadre (≥24 px est sûr).
- Objets volants (boîtes lancées, pièces, amas de virus) contre chaque tête qu'ils croisent.
Barrière 3 · L'auditeur indépendant
Démarrez un NOUVEL agent (jamais le créateur, jamais un qui a vu la construction) avec references/auditor-brief.md.
- Il lit le MP4 rendu, pas la page en direct :
ffmpeg -i out/film.mp4 -vf fps=2 …, puis des feuilles horodatées (tools/sheet.py). - ≥2 ips pour tout le film, ≥4 ips sur chaque fenêtre modifiée, image par image (30 ips) aux points de contact comme une prise ou un échange.
- Il répond par élément : CORRIGÉ / NON CORRIGÉ / RÉGRESSION / NOUVEAU, classé MUST-FIX / MIEUX-SI, puis une ligne :
SIGN-OFFouNOT. - Une re-vérification après corrections est ciblée : uniquement les fenêtres que les corrections ont touchées, plus un court examen de régression. Il peut être moins coûteux de démarrer un nouvel agent que de reprendre un agent qui porte tout son historique.
Ce que les auditeurs n'arrêtaient pas de trouver (cherchez d'abord ces points)
- Quelque chose qui touche ou est derrière une tête : un bouchon de bouteille dans les cheveux, des épingles sur une carte derrière la tête, un écran qui brille derrière la tête, un cube traversant un menton.
- Des objets qui se traversent : des camions à travers des bâtiments et les uns à travers les autres, une camionnette garée sous un bureau.
- Logique : un camion qui accoste par l'avant, un second camion qui double le premier, une tasse laissée au bord d'une table qui devrait tomber.
- Personnes : deux personnes debout si proches que leurs têtes fusionnent en une seule silhouette ; quelqu'un à moitié hors du cadre.
- Mouvement : un saut d'une seule image (téléportation), des objets qui traversent le sol en 0,1 s, le héros qui disparaît entre les scènes.
- Texte : texte à l'intérieur d'une zone couverte par les boutons de la plateforme, chinois coupé en milieu de mot, bannière décalée par rapport à sa scène, orthographe mélangeant UK/US, un nombre que personne ne peut défendre, le sous-titre couvrant le héros.
- Son : bruits de souffle, un signal inaudible sous la musique, des signaux qui dérivent après un battement inséré.