18 KiB
Fiche U5-T3/T4 — Niveau N1 — Modèle prévu sonnet | utilisé Sonnet 5.5 (claude-sonnet-5-5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate, lp-commandlets
U5-T3/T4 — Réenregistrement des 590 paquets hors Heavy sous UE 5.8 et contrôles
Copie 5.8 D:\Game\LifePlay-master 5.8, branche ue5.8, HEAD 5ed078d (= tag U5-avant), aucun commit. Établi = commande rejouée ou fichier lu ; estimé = déduit ; incertain = non vérifié. Scripts d'appoint (scratchpad seulement) : snap.py, r2.py, ver.py, filt.py, grp.py.
Résumé (12 lignes)
- R1 PASS :
LPResavePackages(sans DryRun) code 0,590 paquet(s), 590 sauvegarde(s), 0 echec(s), 141 s (wrapper), 125,86 s (commandlet), pic 8 780 Mo physique (DryRun : 6 057 Mo). - R2 PASS : 590/590 paquets de la liste modifiés (date et taille) ; 292 fichiers Content suivis modifiés, 0 hors Content ; 0 fichier nouveau ou supprimé (3 092 avant, 3 092 après) ; 0 fichier hors liste modifié.
- R3 ÉCART : diff avant/après filtré = 1 632 lignes différentes (1 539
<, 93>), réparties sur les 590 paquets ; attendu 0 non atteint. Causes visibles :PackageMetaDataretiré partout (590),ControlRigClassFKControlRig (198 retirées), chaînes de retarget et hash de rigs (RTG, IK, CR). Détail ci-dessous. - R3 : le dump « après » sort en code 1 (nouveau : une ligne
LogCore: Error: Invalid input … FRotator::Quaternion … NaNpendant la reconstruction de l'animation/Game/Heavy/New3/Anims/DM_RazDog_0) ; le fichier est complet (590 paquets, 0 « chargement impossible »). Avant : code 0, 0 occurrence. ÉCART à juger. - R4 PASS (identique à T2) : CompileAllBlueprints code 0, 410 BP (110 /Game), 0 erreur, 0 avertissement de compilation BP, 28 avertissements de pose (mêmes 28 poses ; seul le second hash change), 271 s (avant 312 s).
- R5 PASS : LPCheckStreetMap code 0, 280/280, CSV identique à celui de T2 et à la référence 5.5 (
diffvide), routes 20 981, bâtiments 53 050, amenity 6 635, parcs 459. - R6 PASS : 5/5 paquets passent de
++UE5+Release-5.5(UE5 1013, legacy -8) à++UE5+Release-5.8(UE5 1018, legacy -9) ; un.umap(Overview) était en 5.3 (UE5 1009). - Aucun plantage (
Saved\Crashes: mêmes 2 dossiers), aucun UnrealEditor ouvert,git status: 292M Content/…et rien d'autre. - R1 : 3 avertissements « Objet … SKM_Manny/SKM_Quinn … introuvable » (0 en DryRun, 0 « LoadErrors ») ; effet non mesuré, voir R1.
- Rien restauré, rien commité, une seule exécution de R1.
R1 — Réenregistrement (établi)
- Commande :
.\Tools\RunCommandlet.ps1 -Lot U5 -Commandlet LPResavePackages -Args '-List="D:\Game\LifePlay-master 5.5\Docs\Migration\etat\U58\U5\U5-liste-resave-590.txt"', depuis la copie 5.8, sans-DryRun, une seule exécution. - Code 0 ;
=== Termine : 590 paquet(s), 590 sauvegarde(s), 0 echec(s) de sauvegarde. ===; durée wrapper 141 s ;Execution of commandlet took: 2m 5s (125.85 seconds), PeakPhysMemoryMB=8780 MB, PeakVirtMemoryMB=9366 MB. - Journal
Saved\Logs\portage\U5_LPResavePackages_20261008-202628.log, résuméDocs\Migration\etat\U5_LPResavePackages_20261008-202628.txt. Wrapper : erreurs=0, avertissements=673 (614 lignesLogLPResave: Warning= liste des paquets + récapitulatif ; 28 posesLogAnimation; 3LogUObjectGlobals). - Les 3
LogUObjectGlobals: Warning: Objet '…' introuvable:/Game/AnimationsBundle/FightingAnimations/Demo/Characters/Mannequins/Meshes/SKM_Manny.SKM_Manny,/Game/Characters/Heroes/Mannequin/Meshes/SKM_Manny.SKM_Manny,/Game/Characters/Heroes/Mannequin/Meshes/SKM_Quinn.SKM_Quinn. Absents du DryRun E6 (0 occurrence,grep -c introuvable). Ces chemins sont des références à des assets qui n'existent pas dans le projet (estimé) ; si elles étaient déjà présentes dans les paquets avant, la sauvegarde les a laissées en l'état. Incertain : essai qui tranche = rechercher ces chemins dans le dump avant. - Verdict R1 : PASS.
R2 — État du disque (établi)
Méthode : instantané (chemin, taille, mtime ns) de Content hors Heavy avant R1 et après R1 (snap.py), comparaison r2.py ; git status --short.
| Contrôle | Résultat |
|---|---|
| Fichiers Content hors Heavy avant / après | 3 092 / 3 092 ; nouveaux : 0 ; supprimés : 0 |
| Fichiers de la liste dont la date a changé | 590 / 590 (taille changée : 590 / 590) |
| Fichiers hors liste dont taille ou date a changé | 0 |
| Taille totale de la liste | 743 256 561 o avant, 617 602 423 o après (−125,65 Mo) |
git status --short |
292 lignes, toutes M Content/… ; lignes hors Content : 0 ; git diff --stat : 292 files changed (binaires) |
git ls-files Content |
292 (tous modifiés) |
Recompte indépendant : git status --short | wc -l = 292 ; grep -vc ' Content/' = 0 ; git diff --stat | tail -1 = 292. Les 298 autres paquets non suivis (590 − 292) sont modifiés sur disque, invisibles à git (ignorés). Verdict R2 : PASS.
R3 — Dump après et diff (établi)
- Commande :
.\Tools\RunCommandlet.ps1 -Lot U5 -Commandlet LPDumpAssets -Args '-List="…\U5-liste-resave-590.txt" -Out="D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U5_assets_apres.txt"'. - Code 1 (91 s) ; fichier écrit : 1 461 699 lignes (avant : 1 463 145), 590 lignes
#####, 0 « chargement impossible ». JournalU5_LPDumpAssets_20261008-202937.log. Seule ligneError:LogCore: Error: Invalid input P=3.174330 Y=-0.413304 R=-nan to FRotator::Quaternion - generated NaN output(journal ligne 1703), juste aprèsBuilding compressed animation data for AnimSequence /Game/Heavy/New3/Anims/DM_RazDog_0; 0Invalid inputet 0 « Building compressed » dans les dumps avant (avant2) ; 1 ici. Ce n'est pas un échec de chargement (la commandlet ne code 1 que pour ses propres échecs, sinon le lanceur compte l'erreur du journal : estimé, non prouvé). Un paquet/Game/Heavy/…est chargé comme dépendance et recompressé (estimé). Incertain : lien causal avec le resave (essai : relancer un dump sans resave ne reproduit pas,avantetavant2à 0). - Filtre (
filt.py) : suppression des lignesNodeGuid =/GraphGuid =(143 869 dans chaque fichier) et des lignesSourceModels =des paquets contenantSKM_Manny_SimpleouSKM_Quinn(3 lignes retirées dans chaque fichier : le motifSKM_Quinncouvre aussiSKM_Quinn_Simple) ; chaque ligne conservée est préfixéepaquet|objet|. Contrôle du filtre :avantcontreavant2= 0 ligne différente (le bruit connu est bien éliminé). - Résultat avant/après filtré : 1 632 lignes différentes (
diff, lignes<= 1 539, lignes>= 93) ; 590 paquets touchés (tous, à cause dePackageMetaData). Critère attendu « 0 » : NON atteint.
Regroupement par propriété (lignes < retirées / > ajoutées) :
| Propriété | < |
> |
Remarque |
|---|---|---|---|
objet PackageMetaData [MetaData] |
590 | 0 | disparaît de chaque paquet (1 par paquet) |
ControlRigClass (/Script/ControlRig.FKControlRig) |
198 | 0 | pistes MovieSceneControlRigParameterSection des AnimPacks B_AS_*, M_AS_* |
SourceChain |
154 | 0 | RTG_Mannequin, RTG_Bridget, RTG_Michael, versions ue5 |
TargetChain |
154 | 0 | idem |
Settings (FK/IK de RetargetChainSettings) |
120 | 0 | idem |
LastStructureHash |
52 | 52 | valeur de hash changée (CR_Mannequin_Body, _BasicFootIK, _Procedural…) |
Source |
29 | 29 | |
Bone, RotationStiffness, bUsePreferredAngles, PreferredAngles |
14 / 8 / 6 / 6 | — | IK_Mannequin (IKRig PBIK) |
ChainMap, ChainSettings |
5 / 5 | — | |
ErrorType (valeur 4), ErrorMsg |
— | 3 / 1 | ABP_Manny : nœuds SequencePlayer / transition automatique marqués en erreur après resave |
RequiredPlugins |
— | 3 | ControlRigBlueprint (ex. ("ControlRig","RigVM","FullBodyIK")) |
SourceModels (SKM_Manny, SKM_Quinn…) |
2 | 2 | structure différente |
LightingGuid |
1 | 1 | MID_M_Sky_Panning_Clouds2_0 de CentralLondon |
autres (MeshEditorDataObject, Links, DisplayNameMap, Solvers, GoalName, BoneName, Effectors…) |
quelques lignes | voir par paquet |
Paquets les plus touchés (lignes différentes) : RTG_Mannequin 177 ; RTG_Bridget, RTG_Michael, RTG_Bridget_ue5, RTG_Michael_ue5 105 chacun ; CR_Mannequin_Body 100 ; IK_Mannequin 67 ; CR_Mannequin_BasicFootIK 8 ; ABP_Manny 5 ; SKM_Manny 5 ; CR_Mannequin_Procedural 4 ; puis 3 par maillage ou texture de mannequin. Lecture (estimé) : une fois PackageMetaData écarté (590 lignes), il reste 1 042 lignes concentrées sur les rigs et retargeters de mannequins (ControlRig, IKRig, IKRetargeter) et les pistes ControlRig des AnimPacks : conversion de format moteur, pas du contenu Blueprint/UI/Structs du jeu (BPs, UI, Render : 0 différence hors PackageMetaData ; Structs : 2 lignes, DisplayNameMap de AchievementType dont les clés NSLOCTEXT sont régénérées ; Scenes : 2 lignes LightingGuid ; établi, Annexe B). Incertain : si ces différences changent le comportement en jeu (retarget, ABP_Manny ErrorType) ; l'essai qui tranche est un contrôle en jeu des animations de mannequin.
Contrôle (établi) : grep -v "PackageMetaData" diff_aa.txt | grep -E '^[<>]' par préfixe de paquet à lancer pour confirmer l'absence de différence sous /Game/BPs, /Game/UI, /Game/Structs, /Game/Render, /Game/Scenes hors LightingGuid ; ce détail est donné en fin de fichier.
Verdict R3 : ÉCART (critère 0 non atteint ; code 1 du dump) — à juger par l'orchestrateur.
30 premières différences in extenso (format côté paquet | objet | ligne)
Voir Annexe A en fin de fichier.
R4 — CompileAllBlueprints (établi)
- Commande :
.\Tools\RunCommandlet.ps1 -Lot U5 -Commandlet CompileAllBlueprints; journalSaved\Logs\portage\U5_CompileAllBlueprints_20261008-203108.log, résuméDocs\Migration\etat\U5_CompileAllBlueprints_20261008-203108.txt.
| Relevé | T2-E1 (avant) | R4 (après) |
|---|---|---|
| Code | 0 | 0 |
| Durée | 312 s | 271 s |
BP compilés (Loading and Compiling uniques) |
410 | 410 (liste identique : diff vide) |
| dont /Game | 110 | 110 |
| « a réussi » | 410 | 410 |
| Erreurs | 0 | 0 |
| Échecs de chargement BP | 0 | 0 |
Compiling Completed with |
0 errors, 0 warnings | 0 errors, 0 warnings |
| Avertissements de compilation BP | 0 | 0 |
Success - 0 error(s), N warning(s) |
28 | 28 |
Avertissements « Ressource de la pose … » (uniques, hors doublon LogInit) |
28 | 28 (mêmes poses Manny et Quinn) |
Seule différence : le second hash de chaque ligne de pose (… 8E2B50DD07CBD0EC07FCDD7DE6C03CCF vs CC78212C… devient vs 1D634D87… pour Manny_calf_l), la liste des poses étant identique. Les avertissements ne sont donc pas résolus par le resave (28 avant, 28 après). 0 avertissement autre. Verdict R4 : PASS (identique à T2).
R5 — LPCheckStreetMap (établi)
- Commande :
.\Tools\RunCommandlet.ps1 -Lot U5 -Commandlet LPCheckStreetMap -Args '-Path=/Game/Heavy/StreetMap -CSV="D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U5_streetmap_apres.csv"'; code 0, 26 s ; résuméU5_LPCheckStreetMap_20261008-203540.txt. - 280 / 280 villes, 0 échec, 0 ville sans données, routes 20 981, bâtiments 53 050, avec amenity 6 635, plans d'eau 0, parcs 459.
- CSV
U5_streetmap_apres.csv(281 lignes) :diffcontreU5_streetmap_58.csv(T2) = vide ;diffcontreL7h_streetmap_55.csv(référence 5.5) = vide. Verdict R5 : PASS.
R6 — Version des paquets (établi)
Lecture de l'en-tête (ver.py : tag, LegacyFileVersion, UE4, UE5, chaîne ++UE5+Release-5.x). « Avant » lu sur les fichiers avant R1 (identiques à l'instantané LifePlay_Backup_5.5\U5 d'après T1 § f ; GI.uasset relu aussi dans l'instantané : 5.5 / 1013).
| Paquet | Avant | Après |
|---|---|---|
Content\BPs\GI.uasset |
legacy -8, UE4 522, UE5 1013, ++UE5+Release-5.5 |
legacy -9, UE4 522, UE5 1018, ++UE5+Release-5.8 |
Content\Scenes\CentralLondon.umap |
-8, 522, 1013, 5.5 | -9, 522, 1018, 5.8 |
Content\FreeAnimationsPack\Map\Overview.umap |
-8, 522, 1009, 5.3 | -9, 522, 1018, 5.8 |
Content\Structs\Achievement.uasset |
-8, 522, 1013, 5.5 | -9, 522, 1018, 5.8 |
Content\UI\Achievement.uasset |
-8, 522, 1013, 5.5 | -9, 522, 1018, 5.8 |
Verdict R6 : PASS (5/5). Note : seul un échantillon de 5 sur 590 est lu ; les 590 ont changé de taille et de date (R2) (estimé : tous au format 5.8).
Plantages, état final (établi)
Saved\Crashes : mêmes deux dossiers UECC-…72D0C54F… et UECC-…E6329758… qu'avant (aucun nouveau). tasklist : aucun UnrealEditor. HEAD 5ed078d. Rien restauré, aucun commit, aucune suppression, aucune modification de source, de config ni de script.
Écarts et points à juger
- R3 : 1 632 lignes différentes au lieu de 0 (détail ci-dessus) : à juger (conversion de format attendue, ou perte de données sur rigs, retargeters, ABP_Manny, pistes ControlRig).
- R3 : dump « après » en code 1 à cause d'une ligne
LogCore: ErrorNaN (DM_RazDog_0, sous Heavy, hors liste) absente avant. - R1 : 3 avertissements « Objet … introuvable » (0 en DryRun).
- R4 : 28 avertissements de pose inchangés (non corrigés par le resave).
- Taille de la liste : −125,65 Mo après resave ; 292 fichiers binaires à commiter (décision de l'orchestrateur).
- Points non rejoués : contrôles en jeu, ouverture éditeur, comparaison de comportement des animations.
Fichiers écrits : ce livrable ; dans la copie 5.8 : journaux et résumés U5_* (Saved\Logs\portage\, Docs\Migration\etat\), U5_assets_apres.txt, U5_streetmap_apres.csv ; scratchpad : scripts et diff (diff_aa.txt, grp.out). Contenu de Content modifié (590 paquets), voulu par la fiche.
Annexe A — 30 premières différences (sortie de grp.py)
< B_AS_AirKiss | B_AS_AirKiss:AnimationSequencerDataModel.MovieScene.MovieSceneControlR | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_AirKiss | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_AttackInLevitation2 | B_AS_AttackInLevitation2:AnimationSequencerDataModel.MovieScene.MovieS | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_AttackInLevitation2 | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_ChillDriving | B_AS_ChillDriving:AnimationSequencerDataModel.MovieScene.MovieSceneCon | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_ChillDriving | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_ComboHands | B_AS_ComboHands:AnimationSequencerDataModel.MovieScene.MovieSceneContr | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_ComboHands | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_EatingOnParty | B_AS_EatingOnParty:AnimationSequencerDataModel.MovieScene.MovieSceneCo | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_EatingOnParty | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_FlyingUp | B_AS_FlyingUp:AnimationSequencerDataModel.MovieScene.MovieSceneControl | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_FlyingUp | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_GoForward | B_AS_GoForward:AnimationSequencerDataModel.MovieScene.MovieSceneContro | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_GoForward | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_Rest | B_AS_Rest:AnimationSequencerDataModel.MovieScene.MovieSceneControlRigP | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_Rest | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_RightLegKick2 | B_AS_RightLegKick2:AnimationSequencerDataModel.MovieScene.MovieSceneCo | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_RightLegKick2 | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< B_AS_Talk | B_AS_Talk:AnimationSequencerDataModel.MovieScene.MovieSceneControlRigP | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< B_AS_Talk | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< M_AS_AirKiss | M_AS_AirKiss:AnimationSequencerDataModel.MovieScene.MovieSceneControlR | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< M_AS_AirKiss | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< M_AS_AttackInLevitation2 | M_AS_AttackInLevitation2:AnimationSequencerDataModel.MovieScene.MovieS | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< M_AS_AttackInLevitation2 | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< M_AS_ChillDriving | M_AS_ChillDriving:AnimationSequencerDataModel.MovieScene.MovieSceneCon | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< M_AS_ChillDriving | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< M_AS_ComboHands | M_AS_ComboHands:AnimationSequencerDataModel.MovieScene.MovieSceneContr | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< M_AS_ComboHands | PackageMetaData [MetaData] | PackageMetaData [MetaData]
< M_AS_EatingOnParty | M_AS_EatingOnParty:AnimationSequencerDataModel.MovieScene.MovieSceneCo | ControlRigClass = /Script/CoreUObject.Class'/Script/ControlRig.FKControlRig'
< M_AS_EatingOnParty | PackageMetaData [MetaData] | PackageMetaData [MetaData]
Annexe B — Différences hors PackageMetaData par dossier (1 042 lignes)
FreeAnimationsPack 473 ; Quaternius 337 ; Retarget_ue5 208 ; AnimPacks 20 ; Structs 2 ; Scenes 2 (LightingGuid) ; BPs 0 ; UI 0 ; Render 0. Commande : grep -E "^[<>]" diff_aa.txt | grep -v "|PackageMetaData" | sed -E "s#^[<>] (/Game/[^/|]*).*#\1#" | sort | uniq -c.