418 lines
41 KiB
Markdown
418 lines
41 KiB
Markdown
---
|
||
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.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 (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) ; 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 ».
|
||
**Résultat U0-T3/T4 (2026-10-08)** : tag local `ue5.5-final` = `1542dfa` ; copie `D:\Game\LifePlay-master 5.8` sur
|
||
la branche `ue5.8` (robocopy 17 087 fichiers, 10,5 Go, `.mcp.json` utilisateur conservé, jonction `.claude\skills`
|
||
recréée, dépôt Modules `ade587f` propre) ; 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.5` dans `Tools/`, 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, `bUseZenStore` False → True) ; 2 correctifs
|
||
spécifiés avec garde de version, pistes `IAnimationDataModel` et 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 ; `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.
|
||
- **Décisions utilisateur (2026-10-08, sur l'inventaire U1-T3)** : dossiers de sortie `LifePlay_Build_5.5*`
|
||
(`Tools/BuildDebug.ps1:25`, `StagingDirectory` de `Config/DefaultGame.ini:16`) → `_5.8` dans la branche `ue5.8`
|
||
(la sauvegarde `LifePlay_Backup_5.5` reste) ; contrôles de référence `CheckIntegrity.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 » de `LPStringCompat` / `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 **valeur** `r.AntiAliasingMethod=2` reste (VQ ne règle que `sg.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 sans `LPFix*`, moteur lu dans `Tools/Engine.ps1`) ;
|
||
il servira en U5 aux corrections de nœuds dépréciés (U1-T4) ; `LPDumpFunction` et `LPCheckMeshAssignment` sont gardés.
|
||
- **Résultat U2 (2026-10-08, branche `ue5.8`)** : 16 commandlets retirés ; `Tools/Engine.ps1` lit la version dans
|
||
`EngineAssociation` (U3 n'a qu'à changer le `.uproject`) ; compilation de contrôle UE 5.5 code 0, `LPTestStringCompat`
|
||
3120/0/60 ; VAL PASS. Reste pour U3 : commentaire `LifePlay.Build.cs:27` (« LifePlayEditorTools l'inclut », périmé),
|
||
mentions « 5.5 » de `LPStringCompat.h` / `LPTestStringCompatCommandlet.h` à relire ; pour U4 : 8 scripts de l'addon
|
||
avec `UE_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)
|
||
- `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.
|
||
- **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) ;
|
||
écrire `bUseZenStore=False` explicitement (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 ; CVar `r.TranslucencyLightingVolumeDim` renommée (ensure 5.7) ; `LPTestStringCompat` 3120/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
|
||
lignes `boite pose` (R1 = repli) → contrôle de R1 en U4 (Sandbox). Outillage figé : `Tools/Build.ps1` (`-FromLog`),
|
||
skill `lp-validate`. Pour U4 : addon branche `ue5.8` dans 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`) et `Save Preset` en PIE.
|
||
|
||
### 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).
|
||
- **Résultat U4 (2026-10-08, CHG-254)** : addon en worktree `D:\Game\LifePlay-Sandbox-5.8` (branche `ue5.8` depuis
|
||
`f9033a1`) ; le checkout 5.5 reste pour le jeu 5.5 ; `AdditionalPluginDirectories` → `../LifePlay-Sandbox-5.8/Plugins`.
|
||
Scripts de l'addon par `Engine.ps1`, Target.cs V7, `CompilerVersion=14.50.35717`. D12 : 9 C4996 corrigés sous garde
|
||
`UE_VERSION_OLDER_THAN(5,8,0)` ; `LifePlayEditor` 0 erreur, 0 avertissement. `LPSandbox.uproject` autonome 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 pour `BuildMod`,
|
||
`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écuter
|
||
`BuildMod`, `EditMod`, `HairPipeline` en 5.8. Hors U58 : correction de `LPSandbox.uproject` en 5.5 (doc 21).
|
||
|
||
### 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.
|
||
- **Diagnostic proposé par U1 (à décider)** : `bEnableMutableContainerWarnings=True` temporaire dans la copie 5.8, puis
|
||
`CompileAllBlueprints` (les 11 fonctions `Array_*` à signature changée sont tolérées jusqu'en 5.9 ; la liste
|
||
`AllowedMutableContainerFunctions` compte 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) : `LPResavePackages` code 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 hors `Content`. Filet : tag `U5-avant` et
|
||
instantané `D:\Game\LifePlay_Backup_5.5\U5` (3 092 fichiers `Content` hors `Heavy` + `Config`) ; git ne suit que
|
||
292 fichiers de `Content`, l'instantané est le seul vrai filet (la synthèse 28 disait à tort « réversible par `git
|
||
checkout` »). Empreinte `LPDumpAssets` avant / après : 1 634 lignes = 590 `PackageMetaData` + 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 de `RTG_Mannequin` (démo Epic, op désactivée)
|
||
perdus au chargement, pas au resave. `CompileAllBlueprints` 5.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, aucun `Array_*` à corriger avant 5.9. `LPCheckStreetMap` 280/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érence `CompileAllBlueprints` 5.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 NaN `FRotator::Quaternion` vu une fois sur `DM_RazDog_0` (non reproduit), comparer le rendu StreetMap
|
||
par captures. Pour U7 : `RetargetPack.py` (`set_retarget_chain_settings` sans effet, 9e argument de
|
||
`duplicate_and_retarget` changé) à 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/B `LogStats` 5.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.ps1` corrigé (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 skill `lp-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 ; 4 `Gamethread hitch` sur `MapMarkers_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` + `EngineVersion` du `.uplugin` ; version min `2026.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 sans `MODULE_GAME_VERSION` chargé avec avertissement, `BuildMod` écrit `EngineVersion`, 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.5` et `1.6` rangées en sauvegarde. Recuisson : 3 archives `*-1.0-for-LifePlay-2026.10.2.0`
|
||
(70 / 84 / 20 paquets, auteur « LifePlay Revival », `EngineVersion` 5.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 ; `LPTestStringCompat` 3120 / 0 / 60. VAL PASS (3 réserves de preuve : constats visuels,
|
||
rechargement T6). Pour U8 : publier les 3 archives `2026.10.2.0` ; Shipping final et archivage des PDB ; recréer la
|
||
référence si le code change après `2026.10.2.0`. Pour U7b : capture de la tournée Mesure indépendante de la fenêtre,
|
||
`RetargetPack.py` en 5.8, 28 avertissements « pose non à jour ». Hors U58 : mise à jour des scripts écrivant à la
|
||
racine de `etat/` et réorganisation de `etat/` de la copie 5.8 (lot dédié), transfert des `ModSources/*/Content` hors
|
||
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 : `-RenderOffScreen`
|
||
seul évite l'assert D3D12 (ERR-050) mais ignore `-ResX` / `-ResY` (viewport ≈ 888×500, cadrage ×0,555, ERR-051) ;
|
||
`-RenderOffScreen -ExecCmds="r.SetRes 1600x900w"` (pilote `AnimPipeline.ps1`, `.bat` transmettant les arguments, usage
|
||
interactif identique à l'octet) rend la géométrie de la référence `U4-REF55` : 20/20 lignes, JSON 10/10, dimensions
|
||
20/20, 0 assertion. `RetargetPack.py` : trois ruptures en 5.8 (9e argument de `duplicate_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 au `CompileAllBlueprints`, 28 `_anim`
|
||
intactes (ERR-053). Addon `ce2e269` ; 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,
|
||
hitchs `MapMarkers_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`, suivi
|
||
`U8-SUIVI.md`. T1 : depuis la référence `2026.10.2.0` (cuite à 10:38 sur `cb79c24` + fichiers commités en `31615b2`
|
||
/ `9242cdb`), seul `Content/BPs/Person.uasset` (`6cb8e81`, CHG-263) change le contenu cuit ; `LifePlayEditorTools` est
|
||
é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, garder `2026.10.2.0`** pour 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, seul `Tools/FicheStats.py`, non cuit, a changé hors Docs). Registre `etat/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 archive
|
||
`D:\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, `bUseLoggingInShipping` absent) : 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 `-skipcook` sur la même cuisson (`.ucas` identique),
|
||
T5c `LogStats` contre U6 PASS avec réserve (`ContactMenu` 63 → 0 ; rafale `Floats_3` porté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.0` recréée, DDC gardée, 3 mods recuits, publication à la porte T11 seulement). Candidat U8r sur `36d1fa4`,
|
||
puis refonte **U8r2 sur `4283c13`** (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 et `BUILD-ID.txt` à côté, `CheckPackage` 4 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, `ContactMenu` 0, hitchs 0, `Accessed None` 18, `Floats_3` 72 et `No SkeletalMesh` 10 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 jeu** `LifePlay_Revival_V2.0_Windows_Game.7z` préparée en jeu léger
|
||
(`vin_Base` et `vin_VanillaRealistic`, 1 452 fichiers, 1 291 890 476 o, SHA-256 `4f68afcb…`), 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 branche `ue5.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). Livrables `etat/U58/U8/` ; registre `U8-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 `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.
|