LifePlay-Revival/Docs/Migration/02_Audit_Logiciel.md
edujiro5972 39fac16216 L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.

Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 01:01:52 +02:00

11 KiB
Raw Permalink Blame History

02 — Audit logiciel de la cible 5.5 (état au 2026-09-29)

Audit en lecture seule de D:\Game\LifePlay-master 5.5 comparé à D:\Game\LifePlay-master 4.27. Empreintes de l'état audité : Docs/Migration/etat/L0_*.csv, commit git lot-L0-base. Moteur : UE 5.5.4 (D:\Game\Launcher\Engine\UE_5.5). Référence 4.27 : D:\Game\Launcher\Engine\UE_4.27.


1. Synthèse

Domaine Verdict
Code C++ du projet (Source/, 32 fichiers) sain — aucun fichier tronqué, aucun octet nul, encodage correct, API 5.5 appliquées
Plugins (ModdingExtra, StreetMap) sains, portés — aucun binaire 4.27 restant
Configuration (Config/) saine, quelques résidus (§4)
Données de jeu (Content/Modules) identiques à 4.27 (2 051/2 051 fichiers)
Contenu binaire (Content/) 1 package incohérent : BPs/GI.uasset (§2) ; 4 assets StreetMap à contrôler (§3)
Gameplay défaut ouvert : generatePerson() sans argument (§6)
Contrôle de version absent jusqu'au 2026-09-29 — corrigé en L0 (dépôt git local + Tools/Snapshot.ps1)

Le portage n'est pas « corrompu » au sens large : la corruption se limite à un fichier central, mais c'est le plus important du jeu (GI porte tout l'interpréteur).

2. Défaut principal : Content/BPs/GI.uasset

Fait Preuve
Seul package au format UE4 sur 8 563 en-tête LegacyFileVersion=-7, UE4 522 (Tools/AssetHeaders.ps1)
Identique octet pour octet à la version 4.27 MD5 F4550DA5DC05FC005400CDCA2FC123C9 dans les deux arbres
Date disque 2026-09-07 14:38 alors que le journal éditeur du 2026-09-28 enregistre /Game/BPs/GI entre 18:44 et 18:45
Conséquence les corrections 5.5 de GI (broches AssetRegistry, etc.) sont absentes du fichier courant

Hypothèse (non prouvée) : le fichier a été recopié depuis 4.27 après 18:45, pour un essai A/B ; la session suivante (18:54) a tourné avec lui.

Versions UE5 de GI disponibles (toutes legacy -8, UE5 1013) :

Sauvegarde Date MD5 Contenu
Saved/Backups/avant-R03-R06/BPs/GI.uasset 09-08 13:04 B42A3487… resave UE5, avant R-03 et avant correctif AssetRegistry
Saved/Backups/avant-fix-assetregistry/GI.uasset 09-08 13:09 4477BF90… avec R-03, sans correctif AssetRegistry
Saved/Backups/etat-avec-tous-correctifs/GI.uasset 09-28 15:35 D31615C2… avec R-03 et correctif AssetRegistry

Aucune sauvegarde ne contient l'état visé par le rapport du 28/09 (« R-03 annulé + correctif AssetRegistry »). Il se reconstruit : avant-R03-R06 + LPFixAssetRegistryPins (lot L1).

État des autres assets touchés par la campagne R-03…R-06 :

Asset État courant
BPs/Person = avant-R03-R06 (R-03 annulé, conforme au rapport)
BPs/AI, BPs/Room, UI/CharGen, CharGenSlider, Cursor, Hairstyle, Inventory, Inventory_Cloth, TopRight, Scenes/CentralLondon ≠ avant-R03-R06 : R-03/R-04 encore appliqués (datés 09-08 13:08–13:13)
UI/StatMenu = avant-R03-R06 (non touché par la campagne)

Incohérence à noter : R-03 est annulé sur Person mais toujours présent sur 7 widgets et AI, Room. Le rapport du 28/09 dit « R-04 annulé avec R-03 (mêmes assets) » : ce n'est vrai que pour Person.

3. Contenu à contrôler

Asset 4.27 5.5 Action
Heavy/StreetMap/Static/CentralLondon.uasset 202,0 Mo 13,6 Mo comparer routes/bâtiments avec LPCheckStreetMap
Heavy/StreetMap/Static/00BathCC.uasset 4,2 Mo 0,4 Mo idem
Scenes/CentralLondon.umap 1,0 Mo 0,4 Mo ouverture et contrôle visuel
Heavy/Daz/Bridget/Bridget8FaceMu0.uasset 77 Ko 6 Ko vérifier la texture

Docs/Architecture/streetmap_5.5.csv (280/280 villes chargées, 53 050 bâtiments) n'a pas de point de comparaison 4.27 : l'exécution sur l'arbre 4.27 reste à faire.

Autres écarts de contenu, sans conséquence :

  • 6 matériaux Substance absents (Heavy/New/fBlah/.../Grunge), dossier jamais cuit.
  • 8 571 fichiers de taille différente : resave UE5 normal (Heavy 8 270, UI 195…).

4. Configuration et projet

Fichier Constat Gravité Lot
LifePlay.uproject TargetPlatforms: ["WindowsNoEditor"] (nom UE4) ; aucune section Plugins moyenne L2
Build/ WindowsNoEditor, LinuxNoEditor à côté de Windows faible L2
DefaultEngine.ini:113-127 sections auto-générées AndroidFileServerRuntimeSettings (avec SecurityToken) et CookerSettings faible L1
DefaultEngine.ini PhysicsSettings clés d'apparence PhysX : à conserver, vérifiées contre UPhysicsSettingsCore 5.5 le 09-08 (R-08) — —
DefaultEngine.ini rendu aucune clé 5.5 explicite (Lumen, VSM, RHI) : valeurs par défaut du moteur moyenne L7
DefaultGame.ini:19-21,47-48 5 clés de nativisation (fonction supprimée en UE5, ignorées) faible L7
DefaultGame.ini:50 section McpAutomationBridgeSettings (outil de développement) info —
DefaultInput.ini 68 mappings hérités + classes Enhanced Input par défaut faible (R-07) L7
DefaultEditor.ini 33 Ko de SharedProfiles générés faible L1
Plugins/ModdingExtra/.../ModdingExtraBPLibrary.cpp instrumentation LogLPModdingTrace (5 391 lignes par session) moyenne L3
Plugins/McpAutomationBridge outil éditeur (2 Go, dont 1,8 Go d'Intermediate) ; ne doit pas être livré info L7
.mcp.json contient un jeton ; ignoré par git info —

5. Matrice d'obsolescence 4.27 → 5.5

Légende d'état : ✅ traité en 5.5 · ⚠️ partiel · ⏳ à faire.

Élément Emplacement Gravité Spécification 5.5 État
VictoryPlugin (PhysX, APEX) Plugins/VictoryPlugin (4.27) bloquant LPVictoryCompat (2 fonctions) + [CoreRedirects] ✅
WhitelistPlatforms, EngineVersion "4.27.0" .uplugin faible PlatformAllowList, pas d'EngineVersion ✅
DefaultBuildSettings, IncludeOrderVersion *.Target.cs moyenne V5, Unreal5_5 ✅
Chemins d'inclusion (V5) LifePlay.Build.cs, ModdingExtra.Build.cs haute PublicIncludePaths.Add(ModuleDirectory), Path.Combine ✅
GetAssetByObjectPath(FName), GetAssetsByClass(FName) C++ + 4 Blueprints haute FSoftObjectPath, FTopLevelAssetPath ✅ C++ ; ⚠️ broches GI (§2)
SavePackage (ancienne surcharge) commandlets haute FSavePackageArgs ✅
GetAssetRegistryTags StreetMap bloquant (5.6) FAssetRegistryTagsContext ✅ R-01
LWC (FVector double) StreetMap, Variable.uasset haute FVector3f/FBox3f pour le rendu ; structures Blueprint à vérifier ✅ C++ ; ⏳ Variable
Propriété SkeletalMesh 10 Blueprints moyenne GetSkeletalMeshAsset() sur USkeletalMeshComponent seulement ; pour les proxies USkinnedMeshComponent, GetSkinnedAsset() ⚠️ R-03 à refaire
SetMasterPoseComponent Person faible SetLeaderPoseComponent ✅ redirection moteur
GetRandomPointInNavigableRadius AI, Person, Room faible LPNavigationHelpers (enrobage pur) ⚠️ annulé sur Person
Liaisons On Clicked orphelines UI/TopRight, UI/CharGen faible suppression (R-05) ✅
Échelle nulle Wall Scenes/CentralLondon moyenne (plantage InverseFast) X = 0,1 (R-06) ✅
Entrées héritées DefaultInput.ini, BPs/PC (53 nœuds) faible Enhanced Input (R-07) ⏳
Cascade 4 systèmes Heavy/New3/Particles ; Person, TestPerson, niveau moyenne Niagara, ou conserver si le chargement 5.5 est propre ⏳ vérifier
NvCloth BPs/Person, BPs/TestStatic (fabrique référencée, aucun asset de tissu) faible fabrique Chaos Cloth ⏳ vérifier
AtmosphericFog Scenes/CentralLondon faible SkyAtmosphere + ExponentialHeightFog ⏳
Éclairage précalculé CentralLondon + _BuiltData, Room moyenne (visuel) reconstruire l'éclairage ⏳
Substance 6 assets Heavy/New/fBlah (jamais cuits) nulle ignorer —
Nativisation DefaultGame.ini nulle supprimer les clés ⏳

6. Défaut fonctionnel ouvert

Rapport complet : Docs/Architecture/Rapport_Session_2026-09-28.md. Résumé :

  • generatePerson() sans argument produit des personnages incorrects (toujours « Tyrone », nus, invisibles pendant le dialogue) ; avec des presets, le résultat est correct.
  • Indicateur discriminant : Accessed None sur un maillage, 0,3 par personnage en 4.27 contre 16,6 en 5.5.
  • Hypothèses éliminées avec preuve : 14 (données, assets manquants, AssetRegistry, R-03…).
  • Piste principale : variable DSL au tableau vide (GI::ReturnStatIfNeeded, Float[0] sur un tableau de longueur 0), liée à la conversion LWC de Content/Structs/Variable.uasset.

Piège de méthode établi : l'éditeur en mode -game casse l'affichage des personnages dans les deux versions. Seules des builds empaquetées Development sont comparables.

7. Journal du 2026-09-28 (session PIE 5.5)

Saved/Logs/LifePlay.log, 51 790 lignes, fin propre. Attention : cette session a tourné avec le GI UE4 (§2) ; ses chiffres ne décrivent pas l'état « tous correctifs ».

Nombre Signature Classement
9 048 GetSocketInfoByName(...): No SkeletalMesh for CharacterMesh sur Person_C présent aussi en 4.27 (80/perso contre 76) → bruit
6 510 index N from CallFunc_ParseIntoArray_ReturnValue of length N dans GI à analyser (L5)
5 391 LogLPModdingTrace LoadTxt OK instrumentation → L3
1 297 getBeautyValue Floats_* index hors bornes à analyser (L5)
273 Accès à None NearVec dans Person::standIdle à analyser (L5)
257 Accès à None ContactMenu dans UpdateDailyPose à analyser (L6)
229 CallFunc_Array_Get_Item à None dans GI à analyser (L5)
153 LogBlueprint : nœud SkeletalMesh déprécié (GI 52, Person 24) R-03 (L7)
37 LogStreaming Failed to read file (icônes moteur) cosmétique
25 InputMode:UIOnly … Non-Focusable widget faible
11 SpawnActor failed because no class was specified à analyser (L6)

Plantages (Saved/Crashes, 2026-09-07, pendant le resave de masse) : BulkData.cpp:1482 IsUnlocked() ; Array.h:783 index 0 sur tableau vide ; Matrix.h:429 InverseFast (mur à échelle nulle, corrigé par R-06). Les deux premiers concernent Heavy/New2/Furniture/fnt_new100/111 (resave repris et achevé).

8. Ce qui est supprimable ou à conserver

Régénérable (après sauvegarde) Taille
Intermediate/ 5,7 Go
Binaries/ (projet), Plugins/*/Binaries, Plugins/*/Intermediate ≈ 3,3 Go
Saved/Cooked/, Saved/StagedBuilds/ 6,3 Go
Saved/Crashes/, Saved/Autosaves/, Saved/Temp, ShaderDebugInfo, MaterialStats* faible
À conserver Raison
.claude/, .mcp.json, .editorconfig, .gitignore environnement de développement
Saved/Backups/ seules copies UE5 de GI (§2)
Saved/SaveGames/, Saved/Config/WindowsEditor, Saved/Logs/portage/ réglages, historique
D:\DDC cache dérivé partagé réel (DerivedDataCache/ du projet est vide)
D:\Game\LifePlay_Build_427_Dev build de référence 4.27 journalisée
Arbre LifePlay-master 4.27 référence, jamais modifiée