LifePlay-Revival/Docs/Migration/etat/U58/U4/U4-T6-VAL.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

18 KiB
Raw Blame History

Fiche U4-T6 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet (claude-sonnet-5-5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate

Note de l'orchestrateur (clôture) : résultat final = section « T6-bis » : build PASS, E1/R1 PASS, E4 quaternius et freeanims code 0, verdict PASS-ÉCART (bruit flottant ≤ 3,8e-6 ; libellés de segment sur égalités à 0.00 : départage, estimé). La ligne ci-dessous décrit la 1re tentative (fenêtre minimisée, back buffer 8×8).

Date : 2026-10-08. Résultat global (1re tentative) : PARTIEL — build PASS, E1 PASS, E4 quaternius FAIL (code 1, plantage de l'éditeur 5.8 pendant les planches), E4 freeanims NON LANCÉ (règle d'arrêt § 9 : code pilote ≠ 0).

0. Préconditions (établi)

  • Aucun UnrealEditor avant chaque lancement (tasklist). Test-Path D:\Game\LifePlay-Sandbox-5.8\Plugins\LPSandbox\Binaries = False avant ; ls du plugin après E1 : Intermediate, LPSandbox.uplugin, Modules, Source (pas de Binaries).
  • Jeu : branche ue5.8. git status --short : 4 fichiers modifiés (LifePlay.uproject, StreetMapComponentDetails.cpp, StreetMapSceneProxy.cpp, LPDumpAssetsCommandlet.cpp). Remarque : LPHairFromStaticMeshCommandlet.cpp n'apparaît pas dans ce statut, alors qu'il est compilé (voir § 1) — incertain (probablement déjà modifié/commité ou lu par l'orchestrateur avant) ; non investigué.
  • Incident de lancement : première tentative de build via Start-Process pwsh avec chemin à espace → pwsh a rejeté l'argument (« L'argument D:\Game\LifePlay-master n'est pas reconnu »), aucun build lancé ; relancé directement (pwsh -File ./Tools/Build.ps1 -Lot U4), une seule exécution effective.

1. Build — PASS

  • Commande : .\Tools\Build.ps1 -Lot U4 depuis D:\Game\LifePlay-master 5.8. Sortie : code=0 duree=11s erreurs=0 avertissements=0 autres=0 unites=1.
  • Unité compilée : LPHairFromStaticMeshCommandlet.cpp ; DLL liée : UnrealEditor-LPModTools.dll (1 seule). Chaîne : Using Visual Studio 14.50.35739 toolchain (...\MSVC\14.50.35717), Windows SDK 10.0.22621.0. UBA local, 4 actions, 10,86 s.
  • Résumé : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U4_Build_20261008-184410.txt ; journal UBT : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U4_Build_20261008-184410.log.
  • Établi (lu à la source). Le recomptage par -FromLog n'a pas été rejoué (non demandé).

2. E1 démarrage Pair — PASS

Lancement Start-Process cmd.exe /c "<bat>" à 18:44:41 ; Ouvert : lps_couple visible à 18:46 (≈ 1 min 40) ; journal copié : D:\Game\LifePlay_Backup_5.5\U4-T6\E1_pair.log (1798 lignes). Éditeur (PID 13428, seul lancé) arrêté par taskkill ; 0 UnrealEditor ensuite.

  • Chargement DLL (ligne 1436) : LogModuleManager: InternalLoadLibrary: 'LPSandbox' ('D:/Game/LifePlay-master 5.8/Binaries/Win64/UnrealEditor-LPSandbox.dll') → depuis le jeu, pas du worktree. Établi.
  • Ligne 1438 : Modules : 7 sandbox, 16 jeu ; ordre : lps_system_core, lps_system_animmeasure, lps_lib_scene, lps_lib_actors, lps_couple, lps_interaction, lps_asset_integration — identique à la référence 5.5 ; les 7 lignes pret (1439-1445) dans le même ordre.
  • Lignes 1719-1728 : Sandbox Quaternius : corps /Game/Quaternius/UAL/UAL1_Standard..., 43 animation(s) ; Sandbox corps : bridget_gp / michael ; Sandbox boite AgMakeout ; Sandbox pose : AgMakeout_F sur Bridget / AgMakeout_M sur Michael ; Ouvert : lps_couple. Sandbox interaction : 0 occurrence.
  • Error/Ensure/Fatal : une seule ligne Error: (1525) : LogLifePlay: Error: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable sur GameInstance_0, table laissee telle quelle (préexistante). 0 Ensure, 0 Fatal, 0 Assertion.

R1 — boîte du couple — PASS (identique)

Composante 5.5 (référence) 5.8 Écart
centre X 20.831 20.831 0
centre Y 1.400 1.400 0
centre Z -0.534 -0.534 0
étendue X 41.180 41.180 0
étendue Y 50.958 50.958 0
étendue Z 89.466 89.466 0
Ligne 5.8 (E1_pair.log:1725) : Sandbox boite AgMakeout : centre X=20.831 Y=1.400 Z=-0.534, etendue X=41.180 Y=50.958 Z=89.466 — chaîne identique caractère pour caractère à la référence.

3. E4 — FAIL (arrêt)

quaternius

  • Commande : .\Tools\anim\AnimPipeline.ps1 -Pack quaternius -From 5 -To 5 depuis D:\Game\LifePlay-Sandbox-5.8. Code 1, durée 502 s (verdict pilote : echec (500 s)).
  • Sortie console (consoles : U4-T6\E4_quaternius_console.txt, stderr vide) : méthode correctement lue (-Methode=ue4, pas d'erreur « methode inconnue »). Commandlet LPAnimEval : code=0 duree=36s erreurs=0 avertissements=206, résumé D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AP7_LPAnimEval_20261008-184705.txt. rapport.json valide ; 8 avertissements « a revoir » (Death01, Fixing_Kneeling, Jump_Start, Roll × Bridget/Michael, mêmes valeurs qu'en 5.5). Puis tournée Mesure (LifePlay_interaction_sandbox.bat) : [ok] une vignette <Clip>.png par clip ; [ECHEC] une planche <Clip>.jpg + .json par clip : manquantes : Interact, Jog_Fwd_Loop, Jump_Land, Jump_Loop, Jump_Start, PickUp_Table, Pistol_Aim_Down, Pistol_Aim_Neutral.
  • Message d'erreur final exact : ECHEC : Etape 5 (evaluation) en echec : une planche <Clip>.jpg + .json par clip (manquantes : Interact, Jog_Fwd_Loop, Jump_Land, Jump_Loop, Jump_Start, PickUp_Table, Pistol_Aim_Down, Pistol_Aim_Neutral).
  • Cause établie dans le journal (U4-T6\E4_quaternius.log, 6757 lignes, = Saved\Logs\LifePlay.log copié après le pilote) : plantage de l'éditeur 5.8 à 16:55:14 UTC (18:55 local), pendant la phase planches, clip Interact (dernière ligne TOURNEE : Interact 0.04, ligne 6720) : LogWindows: Error: appError called: Assertion failed: CopyBox.left <= CopyBox.right && CopyBox.right <= SubresourceWidth [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Texture.cpp] [Line: 1551] ; Source width out of bounds for: 'BackBuffer0' -> 'None', Subresource (Mip: 0, Slice: 0, Plane: 0) with dimensions [8, 8, 1], copying from [0, 0, 0] to [1600, 900, 1] ; Runnable thread RHIThread crashed. ; callstack FD3D12DynamicRHI::GetStagingTexture (D3D12RenderTarget.cpp:483). Crash reports : D:\Game\LifePlay-master 5.8\Saved\Crashes\UECC-Windows-72D0C54F472EA69CB9FFA0BD454FE8A2_0000 (l'autre dossier …E632975848DE52E2E10D2B840D229170_0000 correspond à la session E1, GUID du journal ligne 73-75... à ne pas confondre).
  • Interprétation (estimée) : capture d'écran (fenêtre 1600×900) sur un back buffer de 8×8, typique d'une fenêtre minimisée/occultée ou d'un écran verrouillé pendant la capture de planche ; non vérifié (incertain). Essai qui trancherait : relancer en session interactive avec fenêtre visible, ce qui n'a pas été fait (interdit : pas de nouvelle tentative).
  • Éditeur fermé après le plantage (0 processus). Saved\sandbox_mode.txt = Pair (restauré par le pilote).
  • Copie : U4-T6\quaternius\ (44 fichiers), journal U4-T6\E4_quaternius.log, code/durée U4-T6\E4_quaternius_code.txt (CODE=1 DUREE=502), SHA-256 des json/csv/txt : U4-T6\SHA256_T6_quaternius.txt (38 lignes).

freeanims — NON LANCÉ

Règle d'arrêt de la fiche § 9 (code pilote ≠ 0). Aucune donnée.

4. Comparaison 5.5 (U4-REF55\quaternius) vs 5.8 (U4-T6\quaternius) — état partiel, pack en échec

Script : %USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-5\ea5c60a3-4665-4234-912b-5fcb5a4b6f8e\scratchpad\cmp_u4t6.py (lancé python -I).

  • Liste de fichiers : 44 / 44, rien en plus, rien en moins. Images : 0 / 0 (le pack n'en contient pas, comme en 5.5). Mais les vignettes/planches de la tournée sont écrites dans Saved\Measurement (hors pack) et n'ont pas été comparées.
  • JSON/CSV/TXT/HTML : 32 identiques (SHA-256) ; 8 différents (dont 2 attendus : etat.json, etapes/5_evaluation.json) :
Fichier Écart (hors debut/fin/duree_s/maj) Écart num. max
etapes/5_evaluation.json verdict avertissement → echec ; controles[5].ok True → False ; controles[5].detail → « manquantes : Interact, Jog_Fwd_Loop, Jump_Land, Jump_Loop, Jump_Start, PickUp_Table, Pistol_Aim_Down, Pistol_Aim_Neutral » ; commandes[0] (chemins 5.5 → 5.8) ; avertissements : 8 / 8, listes identiques (True) 1.0 (booléen)
etat.json etapes/5/verdict avertissement → echec 0
eval_Bridget.csv 10 lignes sur 130 diffèrent, uniquement dans les colonnes texte de libellés de segment (ex. Hit_Chest : → `bassin` ; `Hit_Head` : → tete ; Death01 : rForearmBend → lThighBend) ; aucune colonne numérique ne diffère 0
eval_Michael.csv 9 lignes sur 130 diffèrent, même nature (ex. Hit_Head 0.67 : tete → poitrine) 0
rapport.json `corps[0 1].clip_pire` 0.1922500878572464 → 0.1922500729560852
rapport_poseT_Bridget.json fichier_pose (chemin 5.5 → 5.8) ; 26 clés segments[*].avant/apres (bruit flottant 32 bits, ex. 60.06077194213867 → 60.060768127441406) 3.81e-06
rapport_poseT_Michael.json fichier_pose (chemin) ; 29 clés segments[*].avant/apres 3.81e-06
rapport.html 21 lignes : « Généré le » (17:51:31 → 18:47:42) + lignes du tableau reflétant les libellés de segment ci-dessus —

Identiques (SHA-256) : retarget_pose_*.txt, anim_retarget.json, controles_*.csv, catalogue_rapport.json, fiches_calculees.json, identification.json, etapes/0-4_*, etc. (32 fichiers ; liste complète : SHA256_T6_quaternius.txt). Avertissements étape 5 (champ avertissements) : 8 en 5.5, 8 en 5.8, listes identiques. Verdict pilote : 5.5 avertissement (code 0, 1154 s) ; 5.8 echec (code 1, 502 s). Remarque : les écarts de libellés dans eval_*.csv (bassin/poitrine/tete/vide) portent sur des segments à écart 0.00 (égalité de maxima : le segment nommé dépend de l'ordre d'évaluation) ; à juger par l'orchestrateur.

5. Verdicts selon la grille

Essai Verdict Motif
Build (0 erreur / 0 avertissement) PASS code 0, 0/0/0, LPModTools recompilé
E1 + R1 PASS R1 identique sur 6 composantes ; DLL depuis le jeu 5.8 ; 7 modules, Ouvert : lps_couple
E4 quaternius FAIL code 1 ; plantage D3D12 (back buffer 8×8) en phase planches ; 8 planches manquantes ; JSON/CSV de calcul hors planches identiques à l'écart flottant près
E4 freeanims NON LANCÉ (arrêt § 9) —

6. Preuves

  • Établi : tout § 1-3 (sorties de commande et lignes de journal citées), comparaison § 4 (script exécuté).
  • Estimé : cause du plantage (fenêtre occultée/minimisée) ; nature des écarts de libellés.
  • Incertain : statut git de LPHairFromStaticMeshCommandlet.cpp ; si le plantage est reproductible ou lié à la session utilisateur (écran verrouillé, fenêtre réduite) ; comparaison des images de Saved\Measurement non faite.

7. Résumé

  1. Build PASS : code 0, 0 erreur, 0 avertissement, LPModTools recompilé (11 s).
  2. E1 PASS : DLL LPSandbox chargée depuis LifePlay-master 5.8\Binaries\Win64, 7 modules dans l'ordre 5.5, Ouvert : lps_couple, seule erreur = Coiffures.
  3. R1 identique à la référence 5.5 sur les 6 composantes (centre 20.831/1.400/-0.534 ; étendue 41.180/50.958/89.466).
  4. E4 quaternius : code 1 en 502 s ; le pilote 5.8 lit bien la méthode (pas d'erreur « methode inconnue »), LPAnimEval code 0.
  5. Échec dû à un plantage de l'éditeur 5.8 : assertion D3D12 CopyBox (back buffer 8×8 vs 1600×900) pendant les planches, après Interact 0.04.
  6. 8 planches manquantes : Interact, Jog_Fwd_Loop, Jump_Land, Jump_Loop, Jump_Start, PickUp_Table, Pistol_Aim_Down, Pistol_Aim_Neutral.
  7. Fichiers du pack : 44/44, aucun en plus ni en moins ; 32 json/csv/txt/html identiques, 8 différents.
  8. Écarts numériques : max 3.8e-06 (flottants 32 bits), 1.5e-08 ; seuls écarts non numériques : verdict/échec de l'étape 5 et libellés de segments (écart 0.00) dans eval_*.csv.
  9. Avertissements étape 5 : 8 / 8, listes identiques à la 5.5.
  10. freeanims non lancé (arrêt § 9) ; aucune nouvelle tentative.
  11. Aucune modification de source/script/config ; sandbox_mode = Pair ; 0 éditeur actif.
  12. Suite : l'orchestrateur doit décider d'une relance en session interactive (fenêtre visible) ou d'une analyse du plantage D3D12 ; état : build/E1 OK, E4 en échec.

T6-bis : relance de E4 (quaternius puis freeanims) sous UE 5.8

Date : 2026-10-08. Le build et E1 ne sont pas refaits (sections 1 et 2 ci-dessus restent valables). Fenêtre du jeu gardée visible par l'utilisateur ; état de départ de quaternius remis par l'orchestrateur ; freeanims non touché depuis le seed.

Préconditions et renommages (établi)

  • 0 UnrealEditor avant ; Binaries du worktree absent ; sandbox_mode.txt = Pair.
  • Fichiers de la 1re tentative renommés (rien supprimé) dans D:\Game\LifePlay_Backup_5.5\U4-T6\ : E4_quaternius_echec1.log, E4_quaternius_console_echec1.txt, E4_quaternius_console_err_echec1.txt, E4_quaternius_code_echec1.txt, quaternius_echec1\, SHA256_T6_quaternius_echec1.txt.
  • Nouvelle tournée : .\Tools\anim\AnimPipeline.ps1 -Pack <pack> -From 5 -To 5 (même commande), consoles/codes/journaux/copies sous U4-T6\ (E4_<pack>_console.txt, _console_err.txt vide pour les deux, E4_<pack>_code.txt, E4_<pack>.log, <pack>\, SHA256_T6bis_<pack>.txt).

Résultats E4 (établi)

Pack Code Durée (mesurée / pilote) Verdict pilote Verdict 5.5 (réf.) Fin
quaternius 0 1213 s / 1212 s avertissement avertissement (1154 s) 19:23:10
freeanims 0 446 s / 445 s ok ok (490 s) 19:30:36
  • Plus d'assert D3D12 : aucune ligne Assertion failed ni Fatal/Ensure dans les deux journaux. Seule ligne Error: : Coiffures (préexistante) (quaternius ligne 1514, freeanims ligne 1566).
  • Lignes TOURNEE : quaternius 730 lignes (debut 43 clips, 129 etapes l. 1997 ; Ouvert : lps_asset_integration (declencheur, non memorise) l. 1998 ; fin vignettes l. 2888 ; debut 43 clips, 2080 etapes l. 2891 ; fin planches l. 14539 ; fermeture demandee l. 14540). freeanims 244 lignes (debut 10 clips, 30 etapes l. 2036 ; Ouvert : ... l. 2037 ; fin vignettes l. 2297 ; debut 10 clips, 697 etapes l. 2299 ; fin planches l. 6217 ; fermeture demandee l. 6218). Même structure et mêmes comptes d'étapes qu'en 5.5 (129 / 2080 / 30 / 697).
  • Éditeur fermé par le pilote ; 0 UnrealEditor après ; sandbox_mode.txt = Pair.
  • Étape LPAnimEval : quaternius code=0 duree=66s erreurs=0 avertissements=206 ; freeanims code=0 duree=21s erreurs=0 avertissements=210.
  • Quaternius : [ok] une vignette <Clip>.png par clip, [ok] une planche <Clip>.jpg + .json par clip (les 8 planches manquantes de la 1re tentative sont produites).

Comparaison 5.5 / 5.8 (script cmp_u4t6.py, python -I)

Hors champs d'horodatage (debut, fin, duree_s, maj, ligne « Généré le »).

quaternius : 44 / 44 fichiers, rien en plus ni en moins ; 32 json/csv/txt/html identiques, 8 différents

Fichier Écart Max num.
etat.json aucun (hors horodatage) ; verdict avertissement = avertissement 0
etapes/5_evaluation.json commandes[0] : chemins 5.5 → 5.8 seulement ; verdict, controles, avertissements (8 / 8, listes identiques) identiques 0
eval_Bridget.csv 10 lignes / 130, colonnes de libellé de segment seulement (vide→bassin, rForearmBend→lThighBend…) ; aucune colonne numérique 0
eval_Michael.csv 9 lignes / 130, idem 0
rapport.json corps[0|1].clip_pire 0.1922500878572464 → 0.1922500729560852 1.49e-08
rapport_poseT_Bridget.json fichier_pose (chemin) + 26 clés segments[*].avant/apres (flottant 32 bits) 3.81e-06
rapport_poseT_Michael.json fichier_pose + 29 clés 3.81e-06
rapport.html « Généré le » (17:51:31 → 19:04:04) + libellés de segments (21 lignes) :

Les écarts de libellés des eval_*.csv et le bruit flottant sont identiques à ceux de la 1re tentative (mêmes valeurs) : reproductibles, donc déterministes. Images : 0 / 0 dans le pack (vignettes/planches sous Saved\Measurement du jeu 5.8 : 43 vignettes, 43 planches .jpg + 43 .json ; pas de référence 5.5 comparable en images).

freeanims : 73 / 73 fichiers, rien en plus ni en moins ; 45 identiques, 5 différents

Fichier Écart Max num.
etat.json aucun (hors horodatage) 0
etapes/5_evaluation.json commandes[0] : chemins seulement ; avertissements 0 / 0 identiques ; verdict ok = ok 0
rapport_poseT_Bridget.json fichier_pose + 26 clés flottantes 3.81e-06
rapport_poseT_Michael.json fichier_pose + 21 clés flottantes 1.91e-06
rapport.html « Généré le » (18:11:13 → 19:23:32) + pied de page (chemin source) :

Tous les .csv et les JSON de planches/évaluation sont identiques (SHA-256). Images du pack (sandbox\vignettes, sandbox\planches) : référence 5.5 = 10 png + 10 jpg ; 5.8 = 10 png + 10 jpg (20 / 20, comptés par find). Tailles/contenu non comparés (rendu non déterministe).

Verdicts T6-bis (grille d'origine)

Essai Verdict Motif
Build PASS (inchangé) 0 erreur / 0 avertissement
E1 / R1 PASS (inchangé) R1 identique, 6 composantes
E4 quaternius ÉCART (à juger par l'orchestrateur) code 0, fichiers 44/44, verdict avertissement identique, 8 avertissements identiques ; écarts : bruit flottant ≤ 3.8e-06, libellés de segment à égalité (0.00) dans eval_*.csv
E4 freeanims ÉCART (à juger) code 0, fichiers 73/73, verdict ok, 0 avertissement, images 20/20 ; écarts : bruit flottant ≤ 3.8e-06 dans rapport_poseT_*.json, chemins

Aucun fichier manquant ou en plus, aucun code ≠ 0. Selon la grille, les écarts numériques (même minimes) ne sont pas conclus par le validateur.

Preuves

  • Établi : codes, durées, lignes de journal, comparaison (script exécuté), comptes d'images (find).
  • Estimé : la cause du plantage de la 1re tentative (fenêtre minimisée) est cohérente avec la réussite de la relance fenêtre visible ; non prouvé.
  • Incertain : images Saved\Measurement vs 5.5 non comparées ; les libellés de segments à 0.00 sont attribués à l'ordre de départage (estimé).