41 KiB
name: Migration UE 5.5 → UE 5.8 (U) overview: Porter LifePlay Revival d'Unreal Engine 5.5 vers 5.8 (dernière version majeure d'UE5). La référence de comportement devient le jeu 5.5 validé ; tout ce qui sert à la comparaison avec UE 4.27 est abandonné ; seule la gestion des mods est figée (contrat inchangé, mods recuits). todos:
- id: lot-ua content: Lot UA — Audit avant départ (jeu, plugins, mods, moteur ; essai de compilation 5.8 ; effort et risques) status: completed
- id: gate-gu content: Porte G-U — go / no-go de l'utilisateur sur la base de l'audit (aucun portage avant) status: completed
- id: lot-u0 content: Lot U0 — Préparation (moteur 5.8, chaîne de compilation, copie de travail, décisions) status: completed
- id: lot-u1 content: Lot U1 — Cartographie (notes de mise à niveau 5.6/5.7/5.8, API, plugins, outils, reliquats 4.27) status: completed
- id: lot-u2 content: Lot U2 — Retrait de l'outillage 4.27 et paramétrage du chemin moteur status: completed
- id: lot-u3 content: Lot U3 — Bascule moteur et compilation (jeu, outils, plugins du dépôt) status: completed
- id: lot-u4 content: Lot U4 — Plugins tiers et addon (StreetMap, McpAutomationBridge, LifePlay-Sandbox) status: completed
- id: lot-u5 content: Lot U5 — Contenu (réenregistrement des paquets, avertissements, villes, Blueprints) status: completed
- id: lot-u6 content: Lot U6 — Comportement en jeu (build Development, A/B contre le build 5.5, contrôle visuel) status: completed
- id: lot-u7 content: Lot U7 — Mods (contrat figé ; nouvelle version de référence ; mods recuits) status: completed
- id: lot-u7b content: Lot U7b — Atelier et poses (reports U4, U5, U7 ; tournée Mesure hors écran, garde-fou RetargetPack, 28 poses) status: completed
- id: lot-u8 content: Lot U8 — Shipping, publication, évaluation (clos sans publication : porte T11 close le 2026-10-11, CHG-325 ; V2.0 = version de migration, livraison au prochain cycle) status: completed
- id: lot-u9 content: Lot U9 — Voie alternative UE5 native pour les correctifs de sémantique UE4 (préparée, non activée ; après V2.0, D9) status: pending isProject: false
27. Plan de migration UE 5.5 → UE 5.8 (2026-10-08)
Contexte
UE 5.8 est la dernière version majeure prévue d'UE5 avant UE6 (premières préversions annoncées vers fin 2027) ; Epic présente 5.8 comme une version de stabilisation et d'optimisation (Lumen Lite, MegaLights en production, Chaos Hair / Cloth / Flesh). Le jeu a été porté de 4.27 à 5.5 (V1 à V1.5, lots L0–L7, O, H, AP, SB, DC, VQ). La migration 5.8 s'appuie sur ce qui est validé en 5.5 ; la comparaison avec 4.27 n'est plus un critère.
État de départ (2026-10-08) : moteurs installés UE_4.27, UE_5.5 (pas de 5.8) ; MSVC 14.38 et 14.44 ; projet
LifePlay.uproject (EngineAssociation 5.5) ; plugins du dépôt LPAnimCore, ModdingExtra, StreetMap,
McpAutomationBridge (outil, gitignoré) ; addon privé D:\Game\LifePlay-Sandbox (LPSandbox, LPAnimMeasure,
LPModTools, atelier de mods) ; modules de jeu dans Content/Modules (dépôt local, git-dir hors arbre D:\Game\LifePlay_ModulesGit\5.8.git, OBB-T1) ; taille hors
Intermediate/Saved ≈ 14 Go ; 2,4 To libres sur D:.
Décisions verrouillées (utilisateur, 2026-10-08)
| Décision | Choix |
|---|---|
| Cible | UE 5.8 |
| UE 4.27 | abandonné : plus de comparaison A/B avec 4.27, plus d'outillage ni de critère d'acceptation fondé sur 4.27 |
| Restrictions 5.5 | levées : le projet peut adopter les API, réglages et fonctions de 5.8 |
| Gestion des mods | figée : format .lpmod (lignes 1–3 par position, clés existantes), Content/Modules/<mod>/, plugins Mods/<mod>/ cuits en DLC, ModdingExtra, GI.ModEnableds, gestionnaire de mods, avertissement de version : inchangés pour les moddeurs |
| Publication | règles PUB1/PUB2 : GitHub sans contenu de jeu ni contenu sexuel ; rien n'est poussé sans accord |
| Référence de comportement (P1) | build LifePlay_Build_5.5_DC4 + V1.5 publiée (G-U D5, 2026-10-08) |
| UE 4.27 (P6) | archivé après V2.0, et non après U6 (G-U D6, 2026-10-08) ; avancée : exécutée le 2026-10-11 (ARCH427, CHG-332) ; dossiers 4.27 sous D:\Game\LifePlay_Backup_5.5\ARCH427\, moteur UE_4.27 gardé, branches archive/* en bundle |
| McpAutomationBridge (P7) | désactivé pour V2.0 ; MCP Epic évalué hors chemin critique (G-U D4 / D7, 2026-10-08) |
| Correctifs de sémantique UE4 (P2) | gardés pour le moment ; une voie alternative UE5 native est préparée (lot U9), sans être activée |
| Commandlets du portage 4.27 (P3) | retirés (LPTestStringCompat gardé comme test) |
| Copie de travail (P4) | dossier séparé D:\Game\LifePlay-master 5.8, branche ue5.8 |
| Version (P5) | V2.0, LifePlay 2026.10.2.0 |
| Chaîne de compilation (P8) | Option B en coexistence (2026-10-08) : VS 2026 (≥ 18.3, MSVC ≥ 14.50.35723 ; 14.50.0–14.50.35722 bannie par 5.8) installé à côté de VS 2022 ; chaque projet épingle son toolset par CompilerVersion ([/Script/WindowsTargetPlatform.WindowsTargetSettings] ; avec MSVC c'est CompilerVersion qui choisit le compilateur, ToolchainVersion ne sert qu'à Clang : VCEnvironment.cs 5.5 l. 463-485) : LifePlay-master 5.5 → 14.38.33130 (VS 2022), LifePlay-master 5.8 → 14.50.x (VS 2026, 14.44 en secours). Preuves : UA-OUTILS § 5 ; 5.5 traite un VS plus récent comme 2022 mais préfère 14.38 (MicrosoftPlatformSDK.cs:885, Windows_SDK.json 5.5) ; 5.8 cherche 2026 puis 2022 (MicrosoftPlatformSDK.cs:1540) |
Décisions proposées (P1 à P7 toutes tranchées le 2026-10-08, voir ci-dessus ; tableau conservé comme historique des motifs)
| # | Proposition | Motif |
|---|---|---|
| P1 | Référence de comportement = build 5.5 validé courant (DC4, LifePlay_Build_5.5_DC4) et V1.5 publiée |
4.27 abandonné |
| P2 | Les correctifs de sémantique UE4 en place (LPStringCompat, LPMeshCompat, LPNavigationHelpers…) restent : ce sont désormais le comportement du jeu (les Blueprints en dépendent) |
les retirer changerait le jeu ; rien à voir avec la comparaison 4.27 |
| P3 | Les commandlets à usage unique du portage 4.27 → 5.5 (LPFix* : ParseIntoArray, StringSearch, ButtonPadding, NavRandomPoint, AssetRegistry*, SceneCapture, FindCenter, PawnResponse…, LPTestStringCompat gardé comme test) sont retirés du module LifePlayEditorTools (conservés dans l'historique git) |
surface de portage réduite ; déjà appliqués |
| P4 | Copie de travail séparée D:\Game\LifePlay-master 5.8 (copie du dossier hors Intermediate, Saved, DDC, Binaries ; même dépôt git, branche ue5.8) ; LifePlay-master 5.5 reste utilisable pour les correctifs |
jeu jouable pendant le portage |
| P5 | Version : LifePlay 2026.10.2.0 (majeur 2 = UE 5.8), publication « V2.0 » |
changement de moteur = mods recuits obligatoirement |
| P6 | Le moteur 4.27 et le projet LifePlay-master 4.27 sont archivés puis peuvent être désinstallés par l'utilisateur après U6 |
abandon 4.27 |
| P7 | McpAutomationBridge : désactivé tant qu'aucune version 5.8 n'existe (plugin Optional) |
outil de développement |
Conséquence pour les mods (contrat figé)
Un paquet cuit pour 5.5 ne se charge pas dans un jeu 5.8 (format des paquets et versions d'objets). Le contrat reste
le même, mais chaque mod d'assets doit être recuit contre la nouvelle version de référence Releases/2026.10.2.0
(lpr_hair_pocolov, lpr_anim_quaternius, lpr_anim_freeanims) ; les mods texte (Content/Modules) ne changent pas.
L'avertissement de version du gestionnaire signale déjà un mod cuit pour une autre version.
Orchestration et niveaux de modèles (règle utilisateur du 2026-10-08)
Opus en effort high est l'orchestrateur principal (découpage, évaluation de complexité, fiches, vérification, communication). Il délègue vers le bas les tâches simples et vers le haut les plus lourdes, jusqu'à Fable.
| Niveau | Modèle (agent) | Note de complexité | Profil |
|---|---|---|---|
| N0 | Haiku (haiku) |
0–2 | compilation + journal, copies, inventaires en lecture seule |
| N1 | Sonnet (sonnet) |
3–4 | outillage spécifié, retraits mécaniques, docs, commits, VAL bornées, A/B de journaux |
| N2 | Opus high (orchestrateur, session principale) | 5–6 | fiches, arbitrages courants, vérification, code moyen ; pas de build |
| N3 | Opus xhigh (opus-xhigh) |
7–8 | portage d'API, refactor multi-fichiers, diagnostic sur graphe d'appels, audit d'un sous-système |
| N4 | Opus max (opus-max) |
9–10 | portage transversal, diagnostic sans piste, synthèse sur de nombreuses sources ; échec de N3 |
| N5 | Fable (fable-top) |
11–12 | enjeu maximal ou échec de N4 |
Grille de complexité (chaque critère de 0 à 2, total 0–12) : (a) étendue, (b) couplage (graphe d'appels, Blueprints, données partagées), (c) incertitude, (d) coût d'erreur / réversibilité, (e) difficulté de vérification, (f) jugement requis. Ajustement d'un niveau seulement avec motif écrit ; escalade d'un niveau sur échec ou réponse incertaine.
Taille des fiches (règle utilisateur du 2026-10-09, lot SEQ1) : une fiche = un résultat vérifiable (au plus un
build, une cuisson, une hypothèse de diagnostic ou un domaine de cartographie) ; une chaîne d'étapes = plusieurs fiches,
seul le compte rendu passe à la suivante. Budget écrit dans la fiche, par niveau (décision utilisateur du
2026-10-09, lot BUD1, CHG-295) : N0 à N2 ≈ 40 tours, pic de contexte ≤ 150 k jetons, ≈ 20 min ; N3 à N5 ≈ 60 tours,
pic ≤ 250 k, ≈ 30 min (hors attente d'un build en tâche de fond) ; budget atteint = arrêt avec état de reprise
(rubrique 9). Motif du palier N3 : en OBA, les 4 cartographies lp-cart N3 déjà découpées par domaine restaient à
185-234 k et 44-51 tours (5,4 à 7,5 M de jetons, contre 20 à 69 M en U1 / U7), et la synthèse opus-max OBA-T5
dépassait 150 k en 7 tours (lecture des comptes rendus) ; découper davantage coûterait ≈ 27 k par fiche pour un gain
faible (Tools/FicheStats.py --lot OBA). Les
inventaires et états git ne se font pas dans la session principale : lp-inventory (N0). Motif (mesuré sur les 77
sous-agents du 2026-10-08 13 h 30 au 2026-10-09) : 23 agents au pic > 150 k = 84 % des jetons des sous-agents, les 5 plus
lourds (U7-T7, U5-T3b, U1-T1, U1-T4c, U7-T6) = 43 % ; taux d'erreur d'outil identique (3,0 % contre 3,5 %) : le gain
attendu est le coût et le contexte, pas la qualité ; une fiche de plus coûte ≈ 27 k jetons de démarrage, donc pas
d'émiettement en dessous d'un résultat vérifiable.
Fiche obligatoire (9 rubriques) : objectif ; note de complexité et niveau ; contexte minimal ; entrées / commandes
exactes ; pièges ; interdits ; livrable (établi / estimé / incertain) ; critère d'acceptation ; conditions d'arrêt et
d'escalade. Détail : mémoire feedback-subagents-by-task.
Pièges : mémoire lifeplay-build-pitfalls ; mesures en build empaqueté Development seulement ; tests d'empaquetage
avec nouvelle partie (liste des villes) et Continuer ; une preuve par l'échec n'est jamais confiée à N0.
Lots et fiches
UA — Audit avant départ (aucun fichier du projet modifié)
But : une vision claire des impacts, de l'effort et des risques avant toute action de portage. Livrables sous
etat/U58/UA/. Les tâches T1 à T4 sont indépendantes (parallèles) ; T5 exige UE 5.8 installé ; T7 (outils annexes) est indépendante ; T6 les consomme toutes.
| Fiche | Objet | Note a–f (total) | Niveau | Livrable |
|---|---|---|---|---|
| UA-T1 | Jeu : modules C++ (LifePlay, LifePlayEditorTools), sous-systèmes, API moteur utilisées (inventaire par module UE : includes, classes, fonctions), volume Blueprints (nombre, taille, nœuds natifs appelés), configuration (Config/*.ini : rendu, empaquetage, IoStore, scalabilité), cibles de build |
1-1-0-0-1-0 (3) | N1 | UA-JEU.md |
| UA-T2 | Plugins : StreetMap (origine, version, API utilisées, maintenance), ModdingExtra, LPAnimCore, McpAutomationBridge, plugins moteur activés par le .uproject, addon LifePlay-Sandbox (LPSandbox, LPAnimMeasure, LPModTools) ; compatibilité 5.8 connue |
1-1-2-0-1-1 (6) +1 recherche externe | N3 | UA-PLUGINS.md |
| UA-T3 | Mods (contrat figé) : toutes les surfaces du contrat — lecture des .lpmod (GI, LPModInfoSubsystem, LPDataCache), ModdingExtra, GI.ModEnableds, gestionnaire de mods, LPHairstyleSubsystem, LPModDailies, montage des plugins Mods/ (paquets, registre d'assets dans le paquet), chaîne de cuisson DLC contre la version de référence (atelier de l'addon), avertissement de version ; ce qu'un changement de moteur casse ou non ; mods existants à recuire |
2-2-1-2-1-1 (9) | N4 | UA-MODS.md |
| UA-T4 | Moteur : installation 5.5 actuelle (binaire Launcher, plugins ajoutés au moteur, configuration machine), chaîne de compilation ; changements 5.6, 5.7, 5.8 tirés des notes officielles (API retirées / dépréciées, modules renommés, empaquetage, rendu par défaut, Blueprints, sémantique des chaînes et conteneurs) croisés avec UA-T1/T2 | 2-1-2-1-1-2 (9) | N4 | UA-MOTEUR.md |
| UA-T5 | Essai de compilation 5.8 (prérequis : UE 5.8 installé) : copie jetable de Source/, Plugins/, .uproject hors du projet, association 5.8, compilation éditeur ; décompte des erreurs et avertissements par cause, sans aucune correction (« l'échec EST le résultat ») |
1-0-1-0-0-0 (2) +1 preuve par l'échec | N1 | UA-ESSAI.md |
| UA-T7 | Outils annexes (ajout utilisateur 2026-10-08) : Visual Studio et toolsets MSVC, Windows SDK, .NET, DXC / pilote GPU, Python éditeur, Zen / DDC, Insights, Live Coding, IDE, matériel ; exigences minimales et recommandées de 5.8 pour en exploiter les capacités ; scripts et *.Target.cs qui épinglent une version ; mises à jour bloquantes avant U0 et recommandées |
1-1-2-0-1-2 (7) | N3 | UA-OUTILS.md |
| UA-T6 | Effort et risques : pour chaque lot U0–U9, effort estimé (nombre de séances, niveaux de modèles mobilisés, durées de build/cuisson, actions utilisateur) avec méthode d'estimation ; registre des risques (probabilité × impact, signal, parade, plan de repli) ; points de non-retour ; recommandation go / no-go argumentée | 2-2-2-1-2-2 (11) | N5 | UA-SYNTHESE.md |
Vérification de chaque livrable par l'orchestrateur (preuves, cohérence entre T1–T5 et T7, distinction établi / estimé).
Porte G-U — Go / no-go (utilisateur)
- Entrée :
UA-SYNTHESE.mdet les cinq rapports. Sortie : go (U0 démarre), go partiel (lots reportés), ou no-go (le jeu reste en 5.5). Aucun lot U0–U9 ne démarre avant cette porte. - Décision (utilisateur, 2026-10-08) : GO séquencé U0–U8, U9 différé après V2.0, avec les recommandations de
UA-SYNTHESE.md§ 5 : D1 Zen storeFalsependant la migration ; D3 retirer 16 commandlets de portage (garderLPResavePackages,LPTestStringCompat) ; D4/D7 McpAutomationBridge désactivé pour V2.0, MCP Epic évalué hors chemin critique ; D5 référenceLifePlay_Build_5.5_DC4+ V1.5 ; D6 4.27 archivé après V2.0 (avancée : exécutée le 2026-10-11, ARCH427, CHG-332 ; dossiers 4.27 sousD:\Game\LifePlay_Backup_5.5\ARCH427\, moteur UE_4.27 gardé, branchesarchive/*en bundle) ; D8 Blueprint Reader activé en 5.5 (Editor, non commité) ; D9 U9 après V2.0 ; D10 réenregistrement horsHeavy; D13 Fab/BridgeOptional. D2 après le test T4 (U7) ; D11, D12 en U3. Portes intermédiaires ajoutées : G-U3 (0 erreur,LPTestStringCompatvert) et G-U6 (A/B + contrôle visuel). Préalable demandé par l'utilisateur : lot SK (arbre de compétences des sous-agents) avant U0.
U0 — Préparation (Orch + utilisateur)
- U0-T1 (utilisateur) : installer UE 5.8 par l'Epic Games Launcher dans
D:\Game\Launcher\Engine\UE_5.8. - U0-T2 (N0) : vérifier l'installation (
Build.bat -help), relever la chaîne exigée par 5.8 (Visual Studio, MSVC, SDK Windows) depuis les notes officielles et la comparer à l'existant ; livrableetat/U58/U0/U0-ENV.md. - U0-T2b (utilisateur, puis N1) : installer VS 2026 (≥ 18.3) avec la charge « Développement de jeux en C++ », MSVC ≥ 14.50.35723 et les composants Unreal ; figer dans VS Installer les composants individuels MSVC 14.38 (VS 2022) et 14.50 (VS 2026). Puis (N1) : épingler
CompilerVersion=14.38.33130dans le projet 5.5 ; compilation de contrôle 5.5 (même toolset au journal UBT qu'avant, code 0) et démarrage de l'éditeur 5.5 ; relever l'état de%LOCALAPPDATA%\UnrealEngine\Common\Zenavant le premier lancement de l'éditeur 5.8 (UA-OUTILS, recommandation 1) ; livrableetat/U58/U0/U0-VS2026.md. Résultat U0-T2/T2b (2026-10-08) : VS 2026 18.10 installe le dossierMSVC\14.50.35717dont lecl.exeest en 14.50.35739 ; UBT 5.8 teste le bannissement sur la version ducl.exe(MicrosoftPlatformSDK.cs:1156,:1416), donc ce toolset n'est pas banni ;CompilerVersionest comparé à la version ou au nom du dossier (:581,:1147) → valeur à épingler pour le projet 5.8 :CompilerVersion=14.50.35717(14.51.36231 aussi installé, hors liste préférée). Projet 5.5 :CompilerVersion=14.38.33130épinglé, compilation de contrôle code 0 avecD:\Game\VS2022\VC\Tools\MSVC\14.38.33130\...\cl.exe. Zen commun 5.6.6 (3,96 Go), éditeur 5.8 pas encore lancé. - U0-T3 (N1) : tag local
ue5.5-finalsurmain; copie de travail P4 (robocopy, exclusions ; le dossierD:\Game\LifePlay-master 5.8existe déjà avec un.mcp.jsonutilisateur — serveur Epic « Unreal MCP »http://localhost:8000/mcp— à conserver : exclure.mcp.jsonde la copie, ne pas écraser, vérifier qu'il reste ignoré par git) ; brancheue5.8; dépôt des modules recopié ; contrôlegit statuspropre. - U0-T4 (N2, orchestrateur + utilisateur) : décisions P1–P7 validées par l'utilisateur → section « verrouillées ».
Résultat U0-T3/T4 (2026-10-08) : tag local
ue5.5-final=1542dfa; copieD:\Game\LifePlay-master 5.8sur la brancheue5.8(robocopy 17 087 fichiers, 10,5 Go,.mcp.jsonutilisateur conservé, jonction.claude\skillsrecréée, dépôt Modulesade587fpropre) ; P1, P6, P7 passées en « verrouillées » (G-U D5 / D6 / D4-D7).
U1 — Cartographie détaillée (N1 ; N3 pour un point que l'audit UA laisse ouvert) — complète UA, fichier par fichier
- notes de mise à niveau officielles 5.6, 5.7, 5.8 (API C++ dépréciées / retirées, modules renommés, réglages de projet,
empaquetage, IoStore, Substrate, Lumen/MegaLights par défaut) croisées avec nos sources (
Source/,Plugins/, addon) ; - état de chaque plugin (
StreetMap: origine et compatibilité 5.8 ;ModdingExtra,LPAnimCore; addon) ; - reliquats 4.27 (29 docs,
Config/DefaultEngine.ini,Tools/AssetHeaders.ps1, commandlets P3) ; - chemins moteur codés en dur (
UE_5.5dansTools/, lanceurs.bat, mémoire) ; - livrable
etat/U58/U1/U1-CART.md; handoff → U2/U3. - Résultat U1 (2026-10-08) : contrat des mods inchangé (recuisson obligatoire,
bUseZenStoreFalse → True) ; 2 correctifs spécifiés avec garde de version, pistesIAnimationDataModelet macro D11 (b) écartées ; 32 commandlets (16 à retirer) ; audit Blueprint 5.5 (110 BP, 46 617 nœuds, 15 signatures changées, aucun nœud à corriger, estimé). Détail : doc 28, § 2.7.
U2 — Retrait 4.27 et chemin moteur (N1)
- retrait des commandlets P3 et de leurs entrées Build.cs ;
ConfigetToolssans référence 4.27 ; - un seul point de configuration du moteur (
Tools/Engine.ps1lu par tous les scripts et lanceurs) ; - docs : bandeau « historique 4.27 » sur les docs concernés (pas de réécriture du passé) ;
- compilation 5.5 inchangée (A-BUILD haiku) avant bascule.
- Décisions utilisateur (2026-10-08, sur l'inventaire U1-T3) : dossiers de sortie
LifePlay_Build_5.5*(Tools/BuildDebug.ps1:25,StagingDirectorydeConfig/DefaultGame.ini:16) →_5.8dans la brancheue5.8(la sauvegardeLifePlay_Backup_5.5reste) ; contrôles de référenceCheckIntegrity.ps1(-Ref427,-InitRef427, T-STAT-02 « Modules = 4.27 ») → référence 5.8, figée après G-U6 ;README.md:4→ mention 5.8 en U8 (V2.0) ; libellés « 4.27 » deLPStringCompat/LPTestStringCompat(commentaires, messages du test) → « sémantique UE4 conservée en 5.8 », sans changement de comportement ni de nom de fonction. TAA (Config/DefaultEngine.ini:14-17) : justification « comme en 4.27 » obsolète → commentaire réécrit (ERR-032, validé en 5.5) ; la valeurr.AntiAliasingMethod=2reste (VQ ne règle quesg.AntiAliasingQuality,DefaultScalability.ini:115) ; pas de nouvel essai TSR : on reprend l'existant du lot VQ (TAA verrouillé, VQ1-SPEC), et U6 rejoue les tests VQ en 5.8.Tools/ReimportCorrectif.ps1: outil générique (protocole doc 05 § 3, commandlet en paramètre), pas ponctuel → adapté en U2 (exemple sansLPFix*, moteur lu dansTools/Engine.ps1) ; il servira en U5 aux corrections de nœuds dépréciés (U1-T4) ;LPDumpFunctionetLPCheckMeshAssignmentsont gardés. - Résultat U2 (2026-10-08, branche
ue5.8) : 16 commandlets retirés ;Tools/Engine.ps1lit la version dansEngineAssociation(U3 n'a qu'à changer le.uproject) ; compilation de contrôle UE 5.5 code 0,LPTestStringCompat3120/0/60 ; VAL PASS. Reste pour U3 : commentaireLifePlay.Build.cs:27(« LifePlayEditorTools l'inclut », périmé), mentions « 5.5 » deLPStringCompat.h/LPTestStringCompatCommandlet.hà relire ; pour U4 : 8 scripts de l'addon avecUE_5.5. Détail : doc 28, § 6.
U3 — Bascule moteur et compilation (N3 pour les correctifs, N4 en cas de blocage ; N0 pour les compilations)
EngineAssociation5.8, régénération des fichiers de projet, compilationLifePlayEditor; boucle erreurs → correctifs (opus) → compilation (haiku) ; cible : 0 erreur, avertissements de dépréciation listés.- Actions issues de U1 : appliquer les correctifs D1 (R1,
LPCoupleSimCore.cpp:127, fichier CRLF) et D2 (R2,LPDataCache.cpp:198) de la spécification U1 (D11 : forme avec garde recommandée, décision de l'utilisateur en U3) ; écrirebUseZenStore=Falseexplicitement (D1) ; relever la boîte du couple sur le build DC4 avant G-U3. - Résultat U3 (2026-10-08, branche
ue5.8, CHG-253) : D11 = forme A (garde) ; Target.cs V7 / Unreal5_8 ; MSVC 14.50.35717 ; addon retiré de la copie 5.8 jusqu'à U4 (dossier partagé avec 5.5), Mcp désactivé (P7) ; un build : 0 erreur, 8 C4996 ; CVarr.TranslucencyLightingVolumeDimrenommée (ensure 5.7) ;LPTestStringCompat3120/0/60 ; éditeur 5.8 et PIE, Zen commun 5.8.13 accepté par 5.5 ; porte G-U3 remplie, VAL PASS. Boîte DC4 : seules des lignesboite pose(R1 = repli) → contrôle de R1 en U4 (Sandbox). Outillage figé :Tools/Build.ps1(-FromLog), skilllp-validate. Pour U4 : addon brancheue5.8dans une copie ou un worktree propre à 5.8,Makefile.binà déplacer au retour de l'addon, C4996 StreetMap. Pour U6 :PersonCumming(GI,Set Rate) etSave Preseten PIE.
U4 — Plugins tiers et addon (N3 + N1)
StreetMap,ModdingExtra,LPAnimCorecompilés 5.8 ;McpAutomationBridgeselon P7 ;- addon
LifePlay-Sandbox: brancheue5.8, compilation, tournée Mesure (non-régression des JSON/CSV contre la référence 5.5, comme SB2-T5). - Résultat U4 (2026-10-08, CHG-254) : addon en worktree
D:\Game\LifePlay-Sandbox-5.8(brancheue5.8depuisf9033a1) ; le checkout 5.5 reste pour le jeu 5.5 ;AdditionalPluginDirectories→../LifePlay-Sandbox-5.8/Plugins. Scripts de l'addon parEngine.ps1, Target.cs V7,CompilerVersion=14.50.35717. D12 : 9 C4996 corrigés sous gardeUE_VERSION_OLDER_THAN(5,8,0);LifePlayEditor0 erreur, 0 avertissement.LPSandbox.uprojectautonome corrigé ; piège AP7 confirmé en 5.8 (binaires déplacés). Tournée Mesure : R1 identique au caractère, 44/44 et 73/73 fichiers, PASS-ÉCART (bruit ≤ 3,8e-6, départage d'égalités nulles, estimé) ; VAL PASS, PASS-STATIC pourBuildMod,EditMod,HairPipeline. Pour U5 : rien d'attendu de l'addon. Pour U6 : la tournée et le Sandbox se lancent fenêtre visible (assert D3D12 en fenêtre minimisée) ; capture à rendre indépendante de la fenêtre. Pour U7 : exécuterBuildMod,EditMod,HairPipelineen 5.8. Hors U58 : correction deLPSandbox.uprojecten 5.5 (doc 21).
U5 — Contenu (N1 + N0)
- ouverture du projet,
LPResavePackagessur toutContent, journal de chargement sans erreur ; cuisson sans avertissement ;LPCheckStreetMap(280 villes) ; relevé des nœuds Blueprint dépréciés et correctifs. - Diagnostic proposé par U1 (à décider) :
bEnableMutableContainerWarnings=Truetemporaire dans la copie 5.8, puisCompileAllBlueprints(les 11 fonctionsArray_*à signature changée sont tolérées jusqu'en 5.9 ; la listeAllowedMutableContainerFunctionscompte 13 entrées, relevé U5). - Résultat U5 (2026-10-08, CHG-255) : resave D10 de 590 paquets hors
Heavy(800 moins 210 acteurs externes orphelins de cartes gabarit absentes, exclus) :LPResavePackagescode 0, 590/590, 0 échec, 126 s, pic 8,8 Go, versions 5.5 → 5.8, −125,65 Mo ; 292 fichiers suivis modifiés, rien horsContent. Filet : tagU5-avantet instantanéD:\Game\LifePlay_Backup_5.5\U5(3 092 fichiersContenthorsHeavy+Config) ; git ne suit que 292 fichiers deContent, l'instantané est le seul vrai filet (la synthèse 28 disait à tort « réversible pargit checkout»). EmpreinteLPDumpAssetsavant / après : 1 634 lignes = 590PackageMetaData+ propriétés dépréciées des assets d'animation ; diagnostic U5-T3b : conversion par PostLoad 5.8 au chargement, sans perte (9 reciblages identiques au bit près, 3 témoins sensibles) ; 2 drapeaux Stride Warp deRTG_Mannequin(démo Epic, op désactivée) perdus au chargement, pas au resave.CompileAllBlueprints5.8 avant et après : 410 BP (110 sous/Game), 0 erreur, 0 avertissement BP, 28 avertissements « pose non à jour » inchangés ;bEnableMutableContainerWarnings: 0 nœud, aucunArray_*à corriger avant 5.9.LPCheckStreetMap280/280, CSV identique à 5.5. Cuisson complète à froid (décision utilisateur) : 8 915 paquets, 0 erreur, 0 avertissement, 6 min 10 (DDC chaude), 2,6 Go. Éditeur 5.8 ouvert sur le contenu réenregistré sans erreur de chargement. VAL PASS (V1–V7). RéférenceCompileAllBlueprints5.5 corrigée : L7i (269 BP, 0/0, 121 s), non 115 s (L1). Pour U6 : traiter les 28 avertissements de pose non à jour, surveiller le NaNFRotator::Quaternionvu une fois surDM_RazDog_0(non reproduit), comparer le rendu StreetMap par captures. Pour U7 :RetargetPack.py(set_retarget_chain_settingssans effet, 9e argument deduplicate_and_retargetchangé) à adapter à 5.8. Hors U58 : retrait des 210 acteurs externes orphelins, décision de l'utilisateur après V2.0 (doc 21).
U6 — Comportement en jeu (N1 + utilisateur ; N3 pour un écart inexpliqué)
- build empaqueté Development 5.8 ; A/B contre le build 5.5 sur le même parcours (nouvelle partie + Continuer,
LogStats) ; réglages vidéo (VQ) revus pour 5.8 ; contrôle visuel utilisateur ; registre des erreurs mis à jour. - Résultat U6 (2026-10-08, CHG-256) : porte G-U6 franchie (GO de l'utilisateur). Build Development 5.8 OK au 4e
essai (2 échecs C1001 / C2206 non déterministes sous UBA, mémoire engagée ~61 / 75 Go ; sans UBA la compilation passe,
cause estimée UBA et/ou mémoire) ; UAT code 0, 179 s, 1 avertissement de cuisson (
LegacyIterative,bUseZenStore=False). A/BLogStats5.5 DC4 / 5.8, même carte et même sauvegarde : AccessedNone 442 / 364, erreurs 6 / 5, fatal 0 / 0 ; équivalent (estimé, un parcours).Tools/LogStats.ps1corrigé (5.8 écrit « (real) property » : 0 avant, 364 après). Menu Video, « Recommended » → High (VRAM 8 146 Mo), niveaux relus après relance, son, reprise de partie et rues : conformes selon l'utilisateur. NaN,PersonCumming,Save Preset, « pose non à jour » : 0 au journal du jeu. VAL PASS. Référence Modules 5.8 figée (2 195 fichiers). Pour U7 : tournée Mesure (fenêtre visible) et 28 poses de démo Manny / Quinn reportées par décision de l'utilisateur ;-NoUBAà porter dans la skilllp-build; copie d'une sauvegarde =Saved\SaveGames+Content\Saves(SAV1 / ERR-042). Pour U8 : brouillard aux niveaux 0-1 (Effects Low-Med) non comparé 5.5 / 5.8 ; 4Gamethread hitchsurMapMarkers_C.LPFocusWidgetComponentà surveiller ; Shipping en cuisson à froid.
U7 — Mods (N1 + utilisateur ; N3 si une surface du contrat bouge)
- version de référence
Releases/2026.10.2.0; recuisson des 3 mods d'assets dans l'atelier (addon) ; contrôle que le contrat est inchangé (structure,.lpmod, gestionnaire, avertissement de version) ; essai en jeu. - Résultat U7 (2026-10-09, CHG-257) : essais T1–T7 tous passés. T4 (mod 5.5 dans le jeu 5.8) : plantage au démarrage
2/2 (
FZenPackageHeader), d'où la garde D2 (décisions de l'utilisateur) : trois contrôles (moteur par en-tête de conteneur +AssetRegistry.bin+EngineVersiondu.uplugin; version min2026.10.2.0; version max =ProjectVersion), mod refusé démonté au démarrage avec fenêtre de raison, une case par contrôle dans Settings > Misc, mod sansMODULE_GAME_VERSIONchargé avec avertissement,BuildModécritEngineVersion, gestionnaire marquant « (not loaded) ». T4 rejoué : refus sans plantage ; cases levées : le plantage revient. Défaut de coiffure par défaut (personnage chauve après ouverture du gestionnaire, présent depuis H1/H3a) corrigé en 5.8 seulement (C1 + C2) ; non corrigé en V1.x. Référence : Shipping 5.8-createreleaseversion=2026.10.2.0→Releases/2026.10.2.0(conteneur 5, registre 24) ;2026.10.1.5et1.6rangées en sauvegarde. Recuisson : 3 archives*-1.0-for-LifePlay-2026.10.2.0(70 / 84 / 20 paquets, auteur « LifePlay Revival »,EngineVersion5.8.3) ; T2 : 3 mods acceptés, 104 clips, 138 coiffures, aucun avertissement ; T5 : un mod V2.0 empêche la V1.x de démarrer (Invalid pak file version (12)), consigné au guide moddeurs ; T7 : chaîne NewMod → HairPipeline → EditMod → BuildMod → jeu en 5.8, PASS. Builds 0 erreur, 0 avertissement ;LPTestStringCompat3120 / 0 / 60. VAL PASS (3 réserves de preuve : constats visuels, rechargement T6). Pour U8 : publier les 3 archives2026.10.2.0; Shipping final et archivage des PDB ; recréer la référence si le code change après2026.10.2.0. Pour U7b : capture de la tournée Mesure indépendante de la fenêtre,RetargetPack.pyen 5.8, 28 avertissements « pose non à jour ». Hors U58 : mise à jour des scripts écrivant à la racine deetat/et réorganisation deetat/de la copie 5.8 (lot dédié), transfert desModSources/*/Contenthors git, lot MCP STM, personnages enfoncés dans la rue, bugs non prioritaires, C3, bouton du nom d'un mod refusé et libellé moteur (doc 29),McpAutomationBridge(doc 30) (doc 21). - Résultat U7b (2026-10-09, CHG-259) : reports de l'atelier et des poses traités. Tournée Mesure :
-RenderOffScreenseul évite l'assert D3D12 (ERR-050) mais ignore-ResX/-ResY(viewport ≈ 888×500, cadrage ×0,555, ERR-051) ;-RenderOffScreen -ExecCmds="r.SetRes 1600x900w"(piloteAnimPipeline.ps1,.battransmettant les arguments, usage interactif identique à l'octet) rend la géométrie de la référenceU4-REF55: 20/20 lignes, JSON 10/10, dimensions 20/20, 0 assertion.RetargetPack.py: trois ruptures en 5.8 (9e argument deduplicate_and_retarget,set_retarget_chain_settings, retargeter neuf sans op) et destruction des références avant l'échec ; décision de l'utilisateur : portage après V2.0, garde-fou seulement (refus sous 5.6 et plus avant toute suppression, ERR-052). 28 poses « pose non à jour » : défaut du pack de démo, présent aussi en 5.5.4 (la référence « 0 en 5.5 » de U5 était antérieure à l'ajout du pack) ; « Update Source » sur les 28 : 56 lignes → 0 auCompileAllBlueprints, 28_animintactes (ERR-053). Addonce2e269; poses hors git (instantanéBackup_5.5\U7b). VAL PASS. Reste : erreur HyperAIStudio au démarrage (code de sortie 1), correctif du lot 29 bloquant avant la cuisson U8 (doc 21).
U8 — Shipping, publication, évaluation (N1 + N2)
- build Shipping, archives (règles de publication), README ; évaluation multi-agents (modèle prévu / utilisé) ; porte de publication (utilisateur).
- Différé (décision utilisateur du 2026-10-09) : rien n'est livré avant la phase de débogage et d'optimisation ;
le Shipping, les archives et la porte de publication passent après la stabilisation (doc 29) et l'optimisation
(doc 30). Le découpage ci-dessous est conservé pour ce moment. D'ici là, la preuve en jeu du correctif
ContactMenu(STM-T4c) se fait au parcours STA-T1 (build Development) ; les reports « pour U8 » (brouillard Effects Low-Med, hitchsMapMarkers_C) sont déjà au tableau des défauts connus du doc 29. - Découpage (SEQ1, 2026-10-09) : une fiche par résultat vérifiable ; T2 → T3 → T4 séquentielles (même copie, même moteur), T6 et T8 en parallèle de T5.
- Avancement (2026-10-09, CHG-272) : T0 et T1 menées en lecture seule (décision utilisateur « U8-T0 et T1
seulement » ; le report vaut pour T2 à T11). Livrables
etat/U58/U8/U8-T0-INV.md,U8-T1-CART.md, suiviU8-SUIVI.md. T1 : depuis la référence2026.10.2.0(cuite à 10:38 surcb79c24+ fichiers commités en31615b2/9242cdb), seulContent/BPs/Person.uasset(6cb8e81, CHG-263) change le contenu cuit ;LifePlayEditorToolsest éditeur seulement ; les 3 archives restent cohérentes (imports estimés). Décision utilisateur : choix A (garder) / B (recréer sous le même numéro) / C (nouvelle version) reporté à la reprise de U8 ; T1 sera rejouée à ce moment, après G-ST et OB, le contenu cuit devant encore changer. Constats de T0 à traiter : build Shipping V2.0 sans PDB (archivage des PDB de T4 = recompilation) ; report doc 21 « erreur HyperAIStudio » non coché alors que CHG-260 / ERR-054 semblent le corriger (à vérifier, lot STM) ; cuisson à froid absente du tableau des défauts connus du doc 29, contrairement à ce que dit le paragraphe « Différé ». - Reprise partielle (décision utilisateur du 2026-10-09, CHG-275) : « reprenons U8 », puis choix « U8 T2-T5 sans
publier » : le report SEQ1 est levé pour T2 à T5 seulement (compilation Shipping, cuisson complète, empaquetage
avec PDB, smoke
LogStats), sans publication ; T6 à T11 restent différées après G-ST et OB. Choix de la référence (T1 § 4) : A, garder2026.10.2.0pour ce passage : cuisson sans-createreleaseversion, dossier d'archive neuf,Releases/et les 3 archives de mods inchangés ; B ou C se tranche à la publication. T1 non rejouée (depuis sa mesure, seulTools/FicheStats.py, non cuit, a changé hors Docs). Registreetat/U58/U8/U8-TACHES.md. - Résultat T2 à T5 (2026-10-09, CHG-276) : T2 compilation Shipping code 0, 0 / 0 ; T3 cuisson complète sans
-iterate(FULL COOK, 8 923 paquets, 0 / 0, 164 s, DDC gardée : décision utilisateur) ; T4 archiveD:\Game\LifePlay_Build_5.8_Shipping_U8(2 220 fichiers), PDB dans…_Shipping_U8_PDB(BUILD-ID.txt) ; T5 redéfinie (le Shipping n'écrit pas de journal,bUseLoggingInShippingabsent) : T5a smoke Shipping joué par l'utilisateur PASS (aucun défaut ; copie isolée par-UserDir, le Shipping écrivant sinon dans%LOCALAPPDATA%\LifePlay\Saved), T5b archive Development-skipcooksur la même cuisson (.ucasidentique), T5cLogStatscontre U6 PASS avec réserve (ContactMenu63 → 0 ; rafaleFloats_3portée au doc 29). Aucune publication ; T6 à T11 restent différées. - Reprise (2026-10-10 / 11, CHG-323) : après la fin du gel, décisions D1 à D9 de l'utilisateur (référence
2026.10.2.0recréée, DDC gardée, 3 mods recuits, publication à la porte T11 seulement). Candidat U8r sur36d1fa4, puis refonte U8r2 sur4283c13(commit STE) : compilation « up to date », cuisson complète (FULL COOK, 8 923 paquets, 0 / 0, 151 s), archive Shipping de 2 078 fichiers avec PDB etBUILD-ID.txtà côté,CheckPackage4 PASS, référence recréée ; smoke Shipping PASS (0 plantage, réglages vidéo conservés) ; mesure Development PASS avec réserves (88 SPAWN,ContactMenu0, hitchs 0,Accessed None18,Floats_372 etNo SkeletalMesh10 289 portés au doc 29) ; identité des données PASS (418 / 418 Blueprints, 280 / 280 villes, totaux = U5) ; T7 PASS avec réserves ; 3 mods recuits (T8a). T6 annulée (décision de l'utilisateur, sans captures ; rendu Low / Med jugé acceptable à l'œil, comparaison 5.5 impossible). Archive de jeuLifePlay_Revival_V2.0_Windows_Game.7zpréparée en jeu léger (vin_Baseetvin_VanillaRealistic, 1 452 fichiers, 1 291 890 476 o, SHA-2564f68afcb…), README racine V2.0 préparé, rien poussé ni téléversé. Reste : T9 (indicateurs), T10 (évaluation), puis la porte T11 (utilisateur), qui exige G-OB clos et la sortie de ST (D2), le contrôle PUB de toute la brancheue5.8, le lien, la taille et le SHA-256 de l'archive au README, et le nettoyage des chemins personnels des docs 27 et 28 (condition ouverte, non traitée dans ce lot). Livrablesetat/U58/U8/; registreU8-TACHES.md. - Porte T11 (2026-10-11, CHG-325) : close sur non-publication. Décision de l'utilisateur : « décision final v2.0
restera une version de migration et ne sera pas publié. clore T11. Nous attendront un prochain cycle pour livrer la
build ». U8 est clos sans publication : aucun push, aucune fusion vers
main, aucun tag, aucun téléversement ; les conditions de la porte et les reports du doc 21 (l. 210, 223, 229) passent au prochain cycle de livraison ; artefacts conservés hors dépôt (etat/U58/U8/U8-T11-PORTE.md).
| Fiche | Résultat vérifiable | Niveau / agent |
|---|---|---|
| U8-T0 | état de départ : 3 dépôts, pins, reports « pour U8 » du registre (doc 21) et de U6 / U7 / STM-T4c | N0 lp-inventory |
| U8-T1 | code ou contenu changé depuis 2026.10.2.0 ? (CHG-260 LifePlayEditorTools, CHG-263 Person.uasset) → décision utilisateur : recréer la référence ou non |
N1 lp-cart (modèle surchargé sonnet) |
| U8-T2 | compilation Shipping seule (journal, 0 erreur, avertissements comptés) | N0 lp-builder |
| U8-T3 | cuisson à DDC froide, durée mesurée | N0 lp-builder |
| U8-T4 | empaquetage, archivage des PDB | N0 lp-builder |
| U8-T5 | smoke Shipping : nouvelle partie + Continuer, LogStats (ContactMenu 63 → 0 attendu, STM-T4c), hitchs MapMarkers_C comptés |
N1 lp-validator + utilisateur |
| U8-T6 | brouillard Effects Low-Med : captures 5.5 / 5.8 même cadrage | utilisateur + N1 |
| U8-T7 | VAL du Shipping (critères globaux 1 à 6) | N1 lp-validator |
| U8-T8 | README 5.8 et 3 archives 2026.10.2.0 préparées selon les règles PUB, rien poussé |
N1 lp-writer |
| U8-T9 | indicateurs extraits des transcriptions (tours, pic de contexte, jetons, erreurs par fiche) | N0 (script) |
| U8-T10 | évaluation multi-agents à partir des seuls comptes rendus et de T9 | N2 orchestrateur |
| U8-T11 | porte de publication | utilisateur |
U9 — Voie alternative UE5 native (N3 + N1), différée après V2.0 (D9 ; prévue à l'origine en parallèle de U5–U6)
- pour chaque correctif (
LPStringCompat: ParseIntoArray, Find / Contains / Split ;LPMeshCompat;LPNavigationHelpers; padding des boutons) : inventaire des Blueprints appelants et des cas où les sémantiques UE4 et UE5 divergent ; - interrupteur par correctif (réglage de configuration, défaut = sémantique UE4 comme aujourd'hui) qui bascule l'implémentation vers l'appel UE5 natif, sans toucher aux Blueprints ;
- banc de comparaison (étendre
LPTestStringCompatet les relevés-LPVerify*) : mêmes entrées, sorties UE4 / UE5, liste des écarts et de leurs effets en jeu ; - livrable
etat/U58/U9/U9-CART.mdet interrupteurs compilés, désactivés ; la bascule effective (et un éventuel nettoyage des Blueprints) reste une décision utilisateur ultérieure.
Critères d'acceptation globaux
- Le jeu 5.8 compile (éditeur, Development, Shipping) sans l'addon et avec.
- Chargement et cuisson sans erreur ; villes et Blueprints identiques en données à la référence 5.5.
- Comportement en jeu équivalent au build 5.5 (A/B, contrôle visuel), réglages vidéo fonctionnels.
- Mods : contrat inchangé, 3 mods recuits chargés, mods 5.5 signalés par l'avertissement de version.
- Plus aucun outil, critère ni réglage fondé sur 4.27 ; chemin moteur à un seul endroit.
- CHG par lot, commits par phase, rien poussé sans accord.
Risques
- Plugin
StreetMap(tiers) non maintenu pour 5.8 → portage maison (U4). - Changements de rendu par défaut (Lumen, MegaLights, Substrate) → écarts visuels à arbitrer (U6, mémoire « comparer avant de revenir en arrière »).
- Sémantique de chaînes ou de conteneurs encore modifiée par 5.6–5.8 →
LPTestStringCompatrejoué en U3. - Toolchain : 5.8 peut exiger un MSVC plus récent que 14.44 → U0-T2.