LifePlay-Revival/Docs/Migration/27_Plan_Migration_UE58.md
edujiro5972 17364dc59c U0-entree : fiches etat/ hors depot, synthese 28, CompilerVersion 14.38 epingle en 5.5 (CHG-249)
- Docs/Migration/etat/ ignore et retire du suivi (92 fichiers, restes sur le disque, copie dans LifePlay_Backup_5.5/etat)
- .cursor/ ignore
- 28_Synthese_Migration_UE58.md : synthese autonome de l'audit UA, de la porte G-U et du lot SK
- DefaultEngine.ini : CompilerVersion=14.38.33130 (VS 2026 en coexistence), compilation de controle 5.5 code 0
- plan 27 : resultat U0-T2/T2b (toolset 5.8 14.50.35717 non banni)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:31:12 +02:00

20 KiB
Raw Blame History

name overview todos isProject
Migration UE 5.5 → UE 5.8 (U) 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).
id content status
lot-ua Lot UA — Audit avant départ (jeu, plugins, mods, moteur ; essai de compilation 5.8 ; effort et risques) pending
id content status
gate-gu Porte G-U — go / no-go de l'utilisateur sur la base de l'audit (aucun portage avant) pending
id content status
lot-u0 Lot U0 — Préparation (moteur 5.8, chaîne de compilation, copie de travail, décisions) pending
id content status
lot-u1 Lot U1 — Cartographie (notes de mise à niveau 5.6/5.7/5.8, API, plugins, outils, reliquats 4.27) pending
id content status
lot-u2 Lot U2 — Retrait de l'outillage 4.27 et paramétrage du chemin moteur pending
id content status
lot-u3 Lot U3 — Bascule moteur et compilation (jeu, outils, plugins du dépôt) pending
id content status
lot-u4 Lot U4 — Plugins tiers et addon (StreetMap, McpAutomationBridge, LifePlay-Sandbox) pending
id content status
lot-u5 Lot U5 — Contenu (réenregistrement des paquets, avertissements, villes, Blueprints) pending
id content status
lot-u6 Lot U6 — Comportement en jeu (build Development, A/B contre le build 5.5, contrôle visuel) pending
id content status
lot-u7 Lot U7 — Mods (contrat figé ; nouvelle version de référence ; mods recuits) pending
id content status
lot-u8 Lot U8 — Shipping, publication, évaluation pending
id content status
lot-u9 Lot U9 — Voie alternative UE5 native pour les correctifs de sémantique UE4 (préparée, non activée) pending
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/.git (dépôt local) ; 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
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 (P2 à P5 tranchées le 2026-10-08, voir ci-dessus ; P1, P6, P7 à confirmer en U0)

# 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.

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.md et 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 store False pendant la migration ; D3 retirer 16 commandlets de portage (garder LPResavePackages, LPTestStringCompat) ; D4/D7 McpAutomationBridge désactivé pour V2.0, MCP Epic évalué hors chemin critique ; D5 référence LifePlay_Build_5.5_DC4 + V1.5 ; D6 4.27 archivé après V2.0 ; D8 Blueprint Reader activé en 5.5 (Editor, non commité) ; D9 U9 après V2.0 ; D10 réenregistrement hors Heavy ; D13 Fab/Bridge Optional. D2 après le test T4 (U7) ; D11, D12 en U3. Portes intermédiaires ajoutées : G-U3 (0 erreur, LPTestStringCompat vert) 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 ; livrable etat/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.33130 dans 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\Zen avant le premier lancement de l'éditeur 5.8 (UA-OUTILS, recommandation 1) ; livrable etat/U58/U0/U0-VS2026.md. Résultat U0-T2/T2b (2026-10-08) : VS 2026 18.10 installe le dossier MSVC\14.50.35717 dont le cl.exe est en 14.50.35739 ; UBT 5.8 teste le bannissement sur la version du cl.exe (MicrosoftPlatformSDK.cs:1156, :1416), donc ce toolset n'est pas banni ; CompilerVersion est 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 avec D:\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-final sur main ; copie de travail P4 (robocopy, exclusions ; le dossier D:\Game\LifePlay-master 5.8 existe déjà avec un .mcp.json utilisateur — serveur Epic « Unreal MCP » http://localhost:8000/mcp — à conserver : exclure .mcp.json de la copie, ne pas écraser, vérifier qu'il reste ignoré par git) ; branche ue5.8 ; dépôt des modules recopié ; contrôle git status propre.
  • U0-T4 (N2, orchestrateur + utilisateur) : décisions P1–P7 validées par l'utilisateur → section « verrouillées ».

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.5 dans Tools/, lanceurs .bat, mémoire) ;
  • livrable etat/U58/U1/U1-CART.md ; handoff → U2/U3.

U2 — Retrait 4.27 et chemin moteur (N1)

  • retrait des commandlets P3 et de leurs entrées Build.cs ; Config et Tools sans référence 4.27 ;
  • un seul point de configuration du moteur (Tools/Engine.ps1 lu 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.

U3 — Bascule moteur et compilation (N3 pour les correctifs, N4 en cas de blocage ; N0 pour les compilations)

  • EngineAssociation 5.8, régénération des fichiers de projet, compilation LifePlayEditor ; boucle erreurs → correctifs (opus) → compilation (haiku) ; cible : 0 erreur, avertissements de dépréciation listés.

U4 — Plugins tiers et addon (N3 + N1)

  • StreetMap, ModdingExtra, LPAnimCore compilés 5.8 ; McpAutomationBridge selon P7 ;
  • addon LifePlay-Sandbox : branche ue5.8, compilation, tournée Mesure (non-régression des JSON/CSV contre la référence 5.5, comme SB2-T5).

U5 — Contenu (N1 + N0)

  • ouverture du projet, LPResavePackages sur tout Content, journal de chargement sans erreur ; cuisson sans avertissement ; LPCheckStreetMap (280 villes) ; relevé des nœuds Blueprint dépréciés et correctifs.

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.

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.

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).

U9 — Voie alternative UE5 native (N3 + N1), 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 LPTestStringCompat et 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.md et 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

  1. Le jeu 5.8 compile (éditeur, Development, Shipping) sans l'addon et avec.
  2. Chargement et cuisson sans erreur ; villes et Blueprints identiques en données à la référence 5.5.
  3. Comportement en jeu équivalent au build 5.5 (A/B, contrôle visuel), réglages vidéo fonctionnels.
  4. Mods : contrat inchangé, 3 mods recuits chargés, mods 5.5 signalés par l'avertissement de version.
  5. Plus aucun outil, critère ni réglage fondé sur 4.27 ; chemin moteur à un seul endroit.
  6. 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 → LPTestStringCompat rejoué en U3.
  • Toolchain : 5.8 peut exiger un MSVC plus récent que 14.44 → U0-T2.