From f953e0393fce658446f25ed530e74f88e5f34e4c Mon Sep 17 00:00:00 2001 From: edujiro5972 <336072401+edujiro5972@users.noreply.github.com> Date: Thu, 8 Oct 2026 09:22:18 +0200 Subject: [PATCH] U-PLAN : plan de migration UE 5.5 vers 5.8 (lots U0 a U9, CHG-247) Co-Authored-By: Claude Opus 5.5 --- Docs/Migration/27_Plan_Migration_UE58.md | 173 +++++++++++++++++++++++ Docs/Migration/Journal_Modifications.md | 1 + Docs/Migration/README.md | 1 + 3 files changed, 175 insertions(+) create mode 100644 Docs/Migration/27_Plan_Migration_UE58.md diff --git a/Docs/Migration/27_Plan_Migration_UE58.md b/Docs/Migration/27_Plan_Migration_UE58.md new file mode 100644 index 0000000..443f12f --- /dev/null +++ b/Docs/Migration/27_Plan_Migration_UE58.md @@ -0,0 +1,173 @@ +--- +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-u0 + content: Lot U0 — Préparation (moteur 5.8, chaîne de compilation, copie de travail, décisions) + status: pending + - id: lot-u1 + content: Lot U1 — Cartographie (notes de mise à niveau 5.6/5.7/5.8, API, plugins, outils, reliquats 4.27) + status: pending + - id: lot-u2 + content: Lot U2 — Retrait de l'outillage 4.27 et paramétrage du chemin moteur + status: pending + - id: lot-u3 + content: Lot U3 — Bascule moteur et compilation (jeu, outils, plugins du dépôt) + status: pending + - id: lot-u4 + content: Lot U4 — Plugins tiers et addon (StreetMap, McpAutomationBridge, LifePlay-Sandbox) + status: pending + - id: lot-u5 + content: Lot U5 — Contenu (réenregistrement des paquets, avertissements, villes, Blueprints) + status: pending + - id: lot-u6 + content: Lot U6 — Comportement en jeu (build Development, A/B contre le build 5.5, contrôle visuel) + status: pending + - id: lot-u7 + content: Lot U7 — Mods (contrat figé ; nouvelle version de référence ; mods recuits) + status: pending + - id: lot-u8 + content: Lot U8 — Shipping, publication, évaluation + status: pending + - id: lot-u9 + content: Lot U9 — Voie alternative UE5 native pour les correctifs de sémantique UE4 (préparée, non activée) + 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/.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//`, plugins `Mods//` 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` | + +## 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. + +## Matrice modèles IA ↔ complexité + +| Palier | Complexité | Modèle | Profil | +|---|---|---|---| +| M0 | mécanique | haiku | installation vérifiée, compilation + journal, cuisson, copies | +| M1 | exploration large | haiku (Explore) | inventaires, recherches multi-chemins | +| M2 | raisonnement ciblé | sonnet | specs bornées, retraits, docs, VAL, A/B de journaux, commits | +| M3 | refactor | opus (session principale) | correctifs d'API 5.8, plugins, sous-systèmes | +| M4 | synthèse / décision | opus (session principale) | portes, arbitrages, évaluation | + +Règles de secours et pièges : comme `21_Sandbox_Addon.md` (fiche « n'écris aucun script ; en cas d'échec, recopie +l'erreur ») ; mémoire `lifeplay-build-pitfalls` ; mesures en build empaqueté Development seulement ; tests d'empaquetage +avec nouvelle partie (liste des villes) et Continuer. + +## Lots et fiches + +### 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 (M0 haiku)** : 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-T3 (M2 sonnet)** : tag local `ue5.5-final` sur `main` ; copie de travail P4 (robocopy, exclusions) ; branche `ue5.8` ; dépôt des modules recopié ; contrôle `git status` propre. +- **U0-T4 (M4)** : décisions P1–P7 validées par l'utilisateur → section « verrouillées ». + +### U1 — Cartographie (M2 sonnet, + M1 haiku pour les recherches) +- 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 (M2 sonnet) +- 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 (M3 opus + M0 haiku) +- `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 (M3 opus + M2 sonnet) +- `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 (M2 sonnet + M0 haiku) +- 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 (M2 sonnet + utilisateur) +- 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 (M2 sonnet + utilisateur) +- 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 (M2 sonnet + M4) +- 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 (M3 opus + M2 sonnet), 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. diff --git a/Docs/Migration/Journal_Modifications.md b/Docs/Migration/Journal_Modifications.md index 54b8624..eced503 100644 --- a/Docs/Migration/Journal_Modifications.md +++ b/Docs/Migration/Journal_Modifications.md @@ -1131,6 +1131,7 @@ Validation L7c/L7d (2026-10-02, parc, même cadrage) : la nuit reste claire (sol | CHG-155 | 2026-10-05 | ShowCouple | Un lit est reconnu par son nom. Il ne bloque un déplacement que vers le bas, pour se poser ; le retour horizontal n'est plus arrêté et le contact ne renvoie plus la boîte | après avoir quitté le lit, la boîte ne pouvait plus y revenir | revenir au test `DoesPackageExist` et au filtre du flanc seul | | CHG-156 | 2026-10-05 | Clavier | `LPKeyboardSubsystem` : bouton « Clavier » ajouté à l'exécution dans `MainMenu.SettingsScrollBox` ; panneau pour changer, ajouter ou retirer une touche (actions et axes clavier). Écrit dans `Saved/Config/Windows`, pas dans `GameSettings.sav` | pouvoir réaffecter les touches, dont Q, sans modifier les Blueprints | retirer `LPKeyboardSubsystem.h/.cpp` et la dépendance `UMG` | | CHG-158 | 2026-10-05 | Réglages | `LPSettingsSubsystem` : onglets Audio, Video, Lewd, General, Keyboard, Misc au-dessus de `SettingsScrollBox`. Les lignes du Blueprint restent en place et sont montrées selon leur texte ; le reste va dans Misc. Keyboard affiche la liste des touches | la liste unique ne montrait pas le clavier | retirer `LPSettingsSubsystem.h/.cpp` | +| CHG-247 | 2026-10-08 | U-PLAN | `Docs/Migration/27_Plan_Migration_UE58.md` (nouveau), index `Docs/Migration/README.md` | plan de migration UE 5.5 → 5.8 (lots U0–U9) ; décisions utilisateur : 4.27 abandonné, gestion des mods figée, correctifs UE4 gardés avec voie UE5 préparée (U9), commandlets du portage 4.27 retirés (U2), dossier séparé `LifePlay-master 5.8`, V2.0 (2026.10.2.0) | document seul : `git revert` du commit | | CHG-246 | 2026-10-08 | DOCNUM | `Docs/Migration/23_Video_Quality.md` → `25_Video_Quality.md`, `24_Eval_Agents_VideoQuality.md` → `26_Eval_Agents_VideoQuality.md` (`git mv`, titres « 25 — », « 26 — »), références mises à jour (journal CHG-237 à 240, `etat/VQ/VQ5/VQ5-VAL.md`, docs 25/26), index `Docs/Migration/README.md` complété (20, 21, 22, 24, 25, 26), report « numéros en double » de `21_Sandbox_Addon.md` coché | numéros de docs en double (23, 24) ; renumérotation par ordre de création | `.\Tools\Restore.ps1 -Lot DOCNUM` | | CHG-245 | 2026-10-07 | DC4 | `LifePlay.uproject` (plugin `McpAutomationBridge` `"Optional": true`), `Source/LifePlay/LifePlay.Build.cs` (dépendance `Json` retirée), docs (`09_Commandes_Utiles.md`, `18_Build_Debug.md`, `21_Sandbox_Addon.md`, `24_Plan_Decouplage_Sandbox.md`, `etat/sandbox/DC4/*`) (commit code `fbbcee1`) | preuve « jeu seul » : clone strictement propre sans addon compile (éditeur + Development, code 0), build Development empaqueté sans addon (BUILD SUCCESSFUL), test en jeu utilisateur (nouvelle partie, sauvegarde, Continuer) ; défaut trouvé : `McpAutomationBridge` (ignoré par git) bloquait un clone propre ; piège UBT `Makefile.bin` documenté dans `09`/`18`. Motif : prouver que le jeu public compile et tourne sans l'addon `LifePlay-Sandbox` | pin inchangé `79f0205` | `.\Tools\Restore.ps1 -Lot DC4` | | CHG-244 | 2026-10-08 | PROP / ERR-043 | `Docs/Migration/etat/PROP/PROP-BUG.md`, `PROP-CART.md` ; dumps `etat/PROP/PROP_LPDumpFunction_20261008-*.txt` ; `Source/LifePlay/LPPersonPropGuardSubsystem.h/.cpp` (nouveaux) | « seul le verre reste apparent » : `destroyDummy` sans `clearProps` + mesh vide. Garde runtime : si Person caché ou `Mesh` sans SkeletalMesh → `clearProps` + purge tableau `Props` + enfants SMC `NODE_AddStaticMeshComponent*` seulement (pas les vetements `*SM`) ; si visible → retire props orphelines (parent ≠ Mesh ou socket None/invalide). Fiche bug complète (symptôme, repro, cause, non-causes, acceptation). Compile `LifePlayEditor` PASS ; **PIE à valider** | — → créés | supprimer `etat/PROP/` et les deux sources | diff --git a/Docs/Migration/README.md b/Docs/Migration/README.md index 764cb31..76aaa9b 100644 --- a/Docs/Migration/README.md +++ b/Docs/Migration/README.md @@ -39,6 +39,7 @@ La migration a été reprise le 2026-09-29, après l'échec d'un premier portage | [24_Plan_Decouplage_Sandbox.md](24_Plan_Decouplage_Sandbox.md) | pilotage | découplage jeu / sandbox (DC0–DC4) : jeu compilable sans l'addon, atelier de mods dans l'addon | | [25_Video_Quality.md](25_Video_Quality.md) | référence, lots | qualité vidéo et réglages graphiques (chantier VQ, VQ0–VQ4) | | [26_Eval_Agents_VideoQuality.md](26_Eval_Agents_VideoQuality.md) | évaluation | déroulé multi-agents du chantier VQ (VQ5) | +| [27_Plan_Migration_UE58.md](27_Plan_Migration_UE58.md) | pilotage | migration UE 5.5 → 5.8 (lots U0–U9) : 4.27 abandonné, gestion des mods figée, V2.0 | | [Journal_Modifications.md](Journal_Modifications.md) | traçabilité | `CHG-001` à `CHG-246`, chacune avec son retour arrière | | [Registre_Erreurs.md](Registre_Erreurs.md) | traçabilité | `ERR-001` à `ERR-037`, statut et lot | | `correctifs/` | relecture | écarts de code 4.27 → 5.5 en patchs (`P01` à `P06`) |