12 KiB
Fiche U7b-T6 — Niveau N1 — Modèle prévu lp-builder | utilisé claude-haiku-5-5 — Agent lp-builder — Skills sk-protocol, sk-windows-shell, lp-build (préchargés aussi : lp-commandlets)
U7b-T6 : essai décisif de -RenderOffScreen (tournée Mesure, addon 5.8), clip AS_RightLegKick2
Date : 2026-10-09. Verdict : FAIL à l'étape b (géométrie différente de la référence U4). Arrêt au premier écart : étape c (pack freeanims, 20 clips) non lancée. Aucun script, aucun code, aucun commit modifié.
1. Pré-contrôles (établi)
- Éditeur :
Get-Process UnrealEditor, UnrealEditor-Cmd, LifePlayvide avant l'essai (14:11). Aucun arrêt nécessaire. - Copie 5.8 (
git -C "D:\Game\LifePlay-master 5.8" status --short) :M .gitignore,M Docs/Migration/29_Projet_Stabilisation_V2.md,M LifePlay.uproject(HyperAIStudio, décision utilisateur, non examinée ici),M Tools/anim/AnimPipeline.ps1,M Tools/anim/RetargetPack.py,M Tools/debug/LifePlay_interaction_sandbox.bat. Brancheue5.8. - Addon
D:\Game\LifePlay-Sandbox-5.8: HEADd1efdd1, 3Mattendus (AnimPipeline.ps1, RetargetPack.py, .bat), conformes à U7b-T4 § 10. sandbox_mode.txtavant essai :Pair(4 octets).Saved\sandbox_pack.inietsandbox_tour.txtabsents avant essai.- DLL addon :
D:\Game\LifePlay-master 5.8\Binaries\Win64\UnrealEditor-LPSandbox.dlldatée 08/10/2026 18:22:39 (aucune DLL LPSandbox dansLifePlay-Sandbox-5.8\Plugins\LPSandbox\Binaries). Constat :Source\LPModTools\LPHairFromStaticMeshCommandlet.cppa une date de modification 08/10 18:24:55, postérieure à la DLL (le contenu est dans le commita19cedd, 08/10 19:42). Le build éditeur U7 du 09/10 10:17 (U7_Build_20261009-101701.txt) n'a relié queUnrealEditor-LifePlay.dll(2 unités). Incertain : la DLL reflète-t-elle exactement ce source (garde C4996 de ce commandlet) ? Sans effet mesuré sur la tournée : le module s'exécute (lignesLogLPSandboxci-dessous).
2. Commande exacte lancée
Script : %USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-5\ab8918a1-261f-45b4-904a-678ecfce98f7\scratchpad\t6_essai1.ps1 (copie : Docs\Migration\etat\U58\U7b\T6\t6_essai1.ps1). Corps = § 9 de U7b-T4, avec 3 lignes d'affichage en plus (W=, origMode=, T0=) et une UnrealEditor vu a ; aucune logique modifiée.
Lancement : pwsh -NoProfile -File <script>, en arrière-plan, sortie dans scratchpad\t6\essai1_stdout.txt.
Lancement effectif du .bat : Start-Process cmd.exe -ArgumentList '/c ""D:\Game\LifePlay-Sandbox-5.8\Tools\debug\LifePlay_interaction_sandbox.bat" -RenderOffScreen"' -WindowStyle Hidden.
3. Codes, durées, sorties
- Code de sortie du script :
EXIT=0(essai1_stdout.txt). - Dossier de sortie :
D:\Game\LifePlay-master 5.8\Saved\U7b\T1essai_20261009-141154\(copie :T6\sandbox_T1essai\). - Horaires : T0 14:11:54 ;
UnrealEditorvu à 14:11:57 ; fin 14:13:12 ; durée 78 s. Saved\sandbox_mode.txtrestauré àPairaprès essai ;sandbox_pack.inietsandbox_tour.txtdéplacés hors deSaved\(dans le dossier de sortie) : état d'origine retrouvé.
4. Ligne de commande observée du processus (établi)
- Capture live par
Win32_Processpendant la tournée (PID 31816) :"D:\Game\Launcher\Engine\UE_5.8\Engine\Binaries\Win64\UnrealEditor.exe" "D:\Game\LifePlay-Sandbox-5.8\Tools\debug\..\..\..\LifePlay-master 5.8\LifePlay.uproject" "/Engine/Maps/Entry?game=/Script/LPSandbox.LPPairSandboxGameMode" -game -windowed -ResX=1600 -ResY=900 "-ini:Engine:[/Script/EngineSettings.GameMapsSettings]:GameInstanceClass=/Script/Engine.GameInstance" -RenderOffScreen - Journal :
LifePlay.log:495LogInit: Command Line: … -RenderOffScreen(même fin). - Fenêtre :
MainWindowHandle = 0etMainWindowTitlevide sur le processus échantillonné (14:12:15 et pendant la tournée). Aucune fenêtre de jeu visible (le dire : aucune fenêtre n'est apparue).
5. Comparaisons (établi)
Commande : grep -E "VIGNETTE|PLANCHE" <log> | grep RightLegKick2 | sed -E 's/^\[[^]]*\]\[[^]]*\]//; s/ [0-9]+ octets//', sur U4-REF55\E4_freeanims.log (référence 5.5) et T6\LifePlay.log (essai 5.8).
- Référence :
VIGNETTE …/AS_RightLegKick2.png (carre 695 px a 621,173)(E4_freeanims.log:1939)PLANCHE …/AS_RightLegKick2.jpg 13 images 1.10 s (carre 724 px)(E4_freeanims.log:5460, 88113 octets)
- Essai :
VIGNETTE …/AS_RightLegKick2.png (carre 386 px a 345,96)(LifePlay.log:2220)PLANCHE …/AS_RightLegKick2.jpg 13 images 1.10 s (carre 402 px)(LifePlay.log:2445, 86156 octets)
- Résultat : différent. Rapports : 386/695 = 0,555 ; 345/621 = 0,556 ; 96/173 = 0,555 ; 402/724 = 0,555. Le cadrage est multiplié par ≈0,555 sur les deux axes.
Assertion failed: 0 (LifePlay.logde la copie, etSaved\Logs\LifePlay.log).out of bounds: 0.- Sorties :
vignettes\AS_RightLegKick2.png274446 octets ;planches\AS_RightLegKick2.jpg86156 octets (13 images) ;planches\AS_RightLegKick2.json48 octets. Dimensions non relevées dans ce passage (vignette 512 px attendue). - Non fait : comparaison d'un
.json/d'un pixel avec la référence (étape c non lancée).
6. Taille du viewport (incertitude T1 § 7, non tranchée)
- Config :
LifePlay.log:544Set CVar r.setres:1280x720;LifePlay.log:32ligne de commande-ResX=1600 -ResY=900;LifePlay.log:666systemresolution.resx="1066"/resy="600"(sens non établi). - Estimé : l'image reçue fait environ 0,555 × 1600×900, soit ≈ 889×500 (le cadrage, calculé en pixels de viewport, est appliqué à une image plus petite). Non mesuré : aucune ligne du journal ne donne la taille réelle du viewport de capture. L'essai qui trancherait : une ligne de journal (ou un export) donnant la taille du
FSceneViewportau moment deRequestScreenshot.
7. Verdict
- Critère b (fiche) :
carre 695 px a 621,173et13 images 1.10 s … carre 724 pxattendus. Obtenus :carre 386 px a 345,96etcarre 402 px. Ligne de commande : conforme (-RenderOffScreenen fin). 0Assertion failed: conforme. Aucune fenêtre : conforme. - Verdict : FAIL (étape b). Premier écart constaté :
LifePlay.log:2220VIGNETTE … (carre 386 px a 345,96)au lieu de(carre 695 px a 621,173)(référenceE4_freeanims.log:1939). - Étape c : non lancée (arrêt au premier écart). Étape d : sans objet (pas de fenêtre à minimiser).
- La fiche ne prévoit pas de correctif ici ; aucun correctif appliqué.
8. Fichiers écrits
- Livrable :
D:\Game\LifePlay-master 5.5\Docs\Migration\etat\U58\U7b\U7b-T6-VAL.md. - Preuves (copies, rien déplacé) :
D:\Game\LifePlay-master 5.5\Docs\Migration\etat\U58\U7b\T6\(LifePlay.log,sandbox_pack.ini,sandbox_mode.txt,sandbox_T1essai\,t6_essai1.ps1,essai1_stdout.txt). - Dossier de sortie d'origine (inchangé) :
D:\Game\LifePlay-master 5.8\Saved\U7b\T1essai_20261009-141154\. - Rien commité, rien supprimé, aucun script de l'addon ni de la copie 5.8 modifié.
9. Suite
Suite : orchestrateur doit décider. Les trois points à trancher : (1) taille réelle du viewport sous -RenderOffScreen (incertain, § 6) ; (2) option C2 (garde de fenêtre minimisée) ou autre voie, par décision de l'utilisateur ; (3) statut de la DLL addon (§ 1, date 18:22 vs source 18:24). État : essai T6 fait, FAIL à l'étape b, étape c non lancée.
A2. Essai d'arguments -ExecCmds (demande orchestrateur, 2026-10-09 14:14–14:25)
Contexte : T6 (§ 5–7) donnait un cadrage à 0,555 de la référence ; cause présumée : taille de viewport ≈ 888×500 sous -RenderOffScreen. Essai A2 : même méthode, aucun script du dépôt ou de l'addon modifié. Le script scratchpad\t6_a2.ps1 (copie : T6\t6_a2.ps1) est la copie du § 9 de U7b-T4 avec deux paramètres -Extra (arguments du .bat) et -Tag, plus -Tour pour la liste de la tournée. Logique inchangée.
A2-V1 : -RenderOffScreen -ExecCmds="r.SetRes 1600x900w" (variante retenue)
- Lancement :
pwsh -NoProfile -File t6_a2.ps1 -Extra '-RenderOffScreen -ExecCmds="r.SetRes 1600x900w"' -Tag V1(clip seul, listevignettes planches quitter AS_RightLegKick2), code 0 (T6\a2_v1_stdout.txt, dossierSaved\U7b\T6A2_V1_20261009-141456). - Durée : T0 14:14:56 ; éditeur vu 14:14:59 ; fin 14:16:09 ; 74 s.
- Ligne de commande (Win32_Process, et
LifePlay.log:495) :… -game -windowed -ResX=1600 -ResY=900 "-ini:…" -RenderOffScreen -ExecCmds="r.SetRes 1600x900w". Le guillemet passe tel quel par le .bat etcmd /c(pas de problème de mise en guillemets). - Journal :
LifePlay.log:2173r.SetRes = "1600x900w";:2175systemresolution.resx="1600"(taille de viewport fixée à 1600 ; relevé de la taille réelle parr.SetRes, non par pixel). - Résultat :
VIGNETTE … AS_RightLegKick2.png (carre 695 px a 621,173)etPLANCHE … 13 images 1.10 s 88736 octets (carre 724 px). Attendus atteints. 0Assertion failed, 0out of bounds. - Fenêtre : aucune fenêtre observée (
MainWindowHandle = 0sur l'échantillon T6 ; non ré-échantillonné en A2-V1).
A2-V2 (-ForceRes -ResX=1600 -ResY=900) : non lancée, V1 suffit.
Étape c : pack freeanims complet avec A2-V1 (PASS)
- Lancement :
t6_a2.ps1 -Extra '-RenderOffScreen -ExecCmds="r.SetRes 1600x900w"' -Tag PACK2 -Tour 'vignettes planches quitter'. DossierSaved\U7b\T6A2_PACK2_20261009-141749. - Durée : 14:17:49 → 14:24:36 = 452 s ; code 0 ; ligne de commande identique à V1.
- Journal :
r.SetRes = "1600x900w"(LifePlay.log, 12.18.40 UTC) ; 0Assertion failed, 0out of bounds. - Géométrie :
diffdegrep -E "VIGNETTE|PLANCHE"(sed : suppression de l'horodatage, du nombre d'octets, normalisation du chemin àsandbox/) entreU4-REF55\E4_freeanims.loget le journal PACK2 : identique, 20 lignes (10 VIGNETTE + 10 PLANCHE). Copies :T6\geo_ref_free.txt,T6\geo_run_free.txt. - JSON des planches : 10/10 identiques (sha256).
- Dimensions : 20/20 identiques (10 vignettes PNG, 10 planches JPG ; lecture d'en-tête par
python3 -I). - Écart de comptage à noter : la référence
U4-REF55\freeanims\sandboxne contient que 10 clips (10 VIGNETTE, 10 PLANCHE), soit 20 fichiers image et 10.json, et non 20 clips. Les comparaisons portent donc sur les 10 clips de la référence. - Octets des planches (non critère) : AS_RightLegKick2 88499 contre 88113 en référence ; les pixels ne sont pas comparés (T1 § 3).
- Restauration :
Saved\sandbox_mode.txt=Pair;sandbox_pack.ini/sandbox_tour.txtabsents deSaved\après essai.
Incidents de l'essai A2 (établis, à déclarer)
- Deux lancements abortés par ma faute (ne sont pas des résultats) : une substitution
seda cassé la ligne 16 du script de la tournée ("$Ssandbox_tour.txt", variable vide). Le run de 14:16:29 a été arrêté (Stop-Process) et safinallya restauré l'état. Le run de 14:17:05 a été arrêté parStop-Processpuispkill(lafinallyn'a pas tourné) :Saved\sandbox_mode.txtvalaitMesure, restauré àPair;Saved\sandbox_pack.ini(460 o) déplacé versSaved\U7b\T6A2_PACK_20261009-141705\sandbox_pack.ini.killed(déplacement, rien supprimé). Un fichier.txta pu être créé dans le répertoire courant du shell par la ligne cassée : non trouvé à la recherche (find -name '.txt' -mmin -30), incertain. - Le run
T6A2_PACK_141705, puisbqwxmaab6: même cause, arrêtés ; leurs sorties ne servent à rien. - Les répertoires
Saved\U7b\T6A2_*sont conservés (déplacement/copie seulement).
Verdict A2
- Étape b (clip AS_RightLegKick2, V1) : PASS.
- Étape c (pack freeanims, 10 clips de référence) : PASS (géométrie 20/20 lignes, dimensions 20/20, JSON 10/10, 0 assertion).
- Taille du viewport : fixée à 1600×900 par
r.SetRes(LifePlay.log:2173-2175) ; le cadrage est donc revenu à la référence. La mesure pixel directe reste non faite. - Fenêtre : aucune observée ; non ré-échantillonnée sur PACK2.
Preuves (copies, sous Docs\Migration\etat\U58\U7b\T6\)
a2_v1_stdout.txt,a2_pack_stdout.txt,t6_a2.ps1,geo_ref_free.txt,geo_run_free.txt.A2_pack\:LifePlay.log,sandbox_pack.ini,sandbox_mode.txt,sandbox_out\(sorties PACK2).