# 28 — Synthèse de la migration UE 5.5 → 5.8 (audit UA, porte G-U, lot SK) Fiche U0-DOC1 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet — Agent lp-writer — Skills sk-protocol, lp-doc, lp-lot Mise à jour U1-DOC — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-writer Date : 2026-10-08. Complète le plan [27_Plan_Migration_UE58.md](27_Plan_Migration_UE58.md) (décisions et lots : on n'y revient pas ici). Ce document se suffit à lui-même : il reprend les constats de l'audit UA, l'effort et les risques, les décisions de la porte G-U, l'arbre de compétences des sous-agents (lot SK) et tient le journal des lots U0 à U9. ## 1. Objet et statut des sources - Les fiches de travail de l'audit UA et du lot SK vivent dans le dossier `Docs/Migration/etat/`, **local et hors git** (décision de l'utilisateur, 2026-10-08) ; copie de sûreté : `D:\Game\LifePlay_Backup_5.5\etat\`. Ce document les remplace dans le dépôt ; il ne renvoie à aucune d'elles par lien. - Sources de synthèse : fiches UA-T1 à UA-T7 (jeu, plugins, mods, moteur, essai de compilation, synthèse, outils), UA-FAB, fiches SK-T1 à SK-T4. L'essai de compilation 5.8 (UA-ESSAI) **fait foi** sur les audits antérieurs. - Conventions (comme les docs 25 à 27) : **établi** = constaté dans un fichier ou un journal, avec référence ; **estimé** = déduit, méthode dite ; **incertain** = ne se tranche que par un essai nommé. Les décisions appartiennent à l'utilisateur. Unité d'effort : 1 séance ≈ une demi-journée ≈ 3 h de travail orchestré, builds compris. - Moteurs : 5.5.4 (projet actuel) et 5.8.3 (CL 58210709, installé le 2026-10-08) ; 4.27.2 abandonné. ## 2. Audit UA — constats établis par domaine ### 2.1 Jeu (UA-T1) | Constat | Statut | Preuve | |---|---|---| | Module `LifePlay` : 51 fichiers, 9 212 lignes, 25 UCLASS dont 16 sous-systèmes ; 17 fonctions exposées aux Blueprints | établi | `Source/LifePlay/*.h` (UA-JEU § 1) | | Module `LifePlayEditorTools` : 69 fichiers, 7 915 lignes, 32 UCLASS (tous des commandlets) | établi | `Source/LifePlayEditorTools/` (UA-JEU § 1) | | Cibles en `BuildSettingsVersion.V5` et `Unreal5_5` : elles bloquent la cible éditeur sous 5.8 | établi | `Source/LifePlay.Target.cs:11-13`, `Source/LifePlayEditor.Target.cs:11-13` ; essai A (voir 2.5) | | 40 lignes `FTSTicker` dans 14 sous-systèmes ; `FTSTicker`, `FSavePackageArgs`, `IPluginManager::GetEnabledPlugins*` inchangés en 5.8 | établi | `LPColorGradeSubsystem.cpp:76,81` ; en-têtes 5.8 (UA-MOTEUR c20) | | 32 commandlets : 18 classés « portage 4.27 », 1 portage/optimisation, 3 diagnostics ponctuels, 10 outils actifs | établi (décompte) ; classement à confirmer par le propriétaire | en-têtes des `*Commandlet.h` (UA-JEU § 3) | | `Content` : 9 068 `.uasset` dont 8 270 sous `Heavy` (6 219,3 Mo) et 798 hors `Heavy` ; `BPs/GI` 51,9 Mo | établi | `find Content -name '*.uasset'` (UA-JEU § 4) | | Rendu verrouillé : TAA (`r.AntiAliasingMethod=2`), sans Lumen, sans VSM, SSR ; DX12 | établi | `Config/DefaultEngine.ini` (UA-JEU § 5.2) | | Empaquetage pak + IoStore, `StagingDirectory` codé en dur, clé `bUseZenStore` absente (le défaut moteur s'applique) | établi | `Config/DefaultGame.ini` (UA-JEU § 5.3, UA-MOTEUR (a)) | | `r.TranslucencyLightingVolumeDim` renommée `r.TranslucencyLightingVolume.Dim` (alias déprécié, appliqué avec avertissement) | établi | `UE_5.8/Engine/Source/Runtime/Renderer/Private/TranslucentLighting.cpp:3398` | | `r.PostProcessAAQuality` et `r.MinScreenRadiusForCSMDepth` introuvables dans le code des deux moteurs (clés probablement déjà sans effet en 5.5) | incertain | essai : lire la valeur par la console (UA-MOTEUR c11, c12) | | 10 scripts codent le chemin `UE_5.5` (2 côté jeu, 8 côté addon) | établi | `Tools/BuildDebug.ps1:19`, `Tools/RunCommandlet.ps1:20` (UA-OUTILS § 2) | | Graphes Blueprint : nœuds dépréciés par 5.6 à 5.8 sur `GI`, `Person`, `UI/ModManager`, `UI/ModuleTick`, `UI/MainMenu`, `CharGen` | incertain | aucun `.uasset` ouvert en UA ; Blueprint Reader en 5.5 puis `CompileAllBlueprints` en 5.8 | ### 2.2 Plugins (UA-T2, corrigé par l'essai) | Constat | Statut | Preuve | |---|---|---| | `LPAnimCore` : 5 fichiers, 783 lignes ; `ModdingExtra` : 6 fichiers, 655 lignes, 12 assets y font référence | établi | `Plugins/LPAnimCore`, `Plugins/ModdingExtra` (UA-PLUGINS § 1-2) | | `UAnimSequence::GetCompressedTrackToSkeletonMapTable` n'existe plus : rupture certaine | établi | `Plugins/LPAnimCore/Source/LPAnimCore/LPCoupleSimCore.cpp:127` (essai A1/A2) | | `GetBoneTransform(..., double Time, ...)` à `LPCoupleSimCore.cpp:155` : probablement sans correction (le même appel compile) | incertain | `LPPoseMeasure.cpp:1283` compile (`essai-A1.log:99-100`) ; masqué par l'erreur de `:127` | | `StreetMap` (tiers, MIT) compile : 0 erreur, 7 C4996 ; 310 assets du jeu le référencent ; amont figé depuis 2023 | établi (compilation) ; estimé (amont) | `StreetMapSceneProxy.cpp:21`, `StreetMapComponentDetails.cpp:36,51,157,165,173,299` ; recherche web UA-PLUGINS | | Rendu du proxy `StreetMap` sous le renderer 5.8 identique à 5.5 | incertain | captures même cadrage (U5/U6), `LPCheckStreetMap` 280/280 | | `McpAutomationBridge` compile sous 5.8 (0 erreur) mais ajoute ≈ 20 min à un build complet | établi | durée 25,5 min (A2) contre 4,9 min (B) | | `Fab` et `Bridge` sont présents dans 5.8 (l'hypothèse « absents » est infirmée) | établi | UA-ESSAI § 4 ; le `.uproject` ne les marque pas `Optional` | | Addon : `LPSandbox`, `LPAnimMeasure`, `LPModTools` compilés ; 1 C4996 | établi | `essai-A1.log:81-304` ; `LPHairFromStaticMeshCommandlet.cpp:430` | ### 2.3 Mods — contrat figé (UA-T3) | Constat | Statut | Preuve | |---|---|---| | Le contrat compte 17 surfaces (S1-S17) : fichiers texte (`.lpmod`, `.lphair`, données de module, `GI.ModEnableds`, `GameSettings.sav`), gestionnaire de mods, plugin `Mods//`, conteneur cuit, version de référence | établi | UA-MODS § 1 ; ex. `Source/LifePlay/LPModInfoSubsystem.cpp:49-72` | | Aucune surface texte ne change de format avec le moteur ; le code lecteur est à recompiler, les Blueprints à réenregistrer | établi | UA-MODS § 2 | | Tout conteneur cuit pour 5.5 est à recuire : cuisson sans version, le chargeur applique alors la version du moteur courant | établi | `ProjectParams.cs:1989`, `CookCommand.Automation.cs:44-46`, `AsyncLoading2.cpp:6525-6528` | | Un conteneur 5.5 monté par 5.8 : refus propre, erreur de chargement ou plantage (le TOC 5.5 serait accepté) | incertain | test T4 de U7 (`IoStore.cpp:1140-1147`) | | L'avertissement de version ne couvre que les modules cochés, 2 s après le démarrage | établi | `LPModInfoSubsystem.cpp:124-150` | | Versions de référence présentes : `Releases/2026.10.1.5` et `2026.10.1.6` (1,3 Go chacune) ; il faut recréer `2026.10.2.0` | établi | UA-MODS S12 ; `.gitignore:46` | | 3 mods d'assets à recuire (1 de coiffures, 2 d'animations) ; mods texte inchangés | établi | UA-MODS § 1 | | Interaction du Zen store avec `-createreleaseversion` / `-basedonreleaseversion` | incertain | neutralisée par la décision D1 ; sinon test R1 de UA-MODS | | Une sauvegarde `GameSettings.sav` 5.5 est relue par 5.8 | estimé | en-tête versionné (`GameplayStatics.cpp:123-141`) ; test T6 | ### 2.4 Moteur (UA-T4) | Constat | Statut | Preuve | |---|---|---| | Cible Windows minimale : Windows 10 (`0xA00`) ; Windows 7/8 exclus | établi | `UE_5.8/Engine/Config/Windows/Windows_SDK.json:89` | | MSVC `14.44.35207` **n'est pas banni** (le ban vise la version du compilateur 19.44.0-35210) ; 5.8 préfère 14.50.35717+ puis 14.44.35207+ | établi | `MicrosoftPlatformSDK.cs:1156` ; `Windows_SDK.json:31-46` (correction apportée à UA-MOTEUR) | | Zen store activé par défaut en 5.8 (5.5 : `False`) | établi | `UE_5.8/Engine/Config/BaseGame.ini:95` | | `FJsonObject` : clés `FStringView`, `Values` n'est plus un `TMap` sauf `UE_JSONOBJECT_LEGACY_STRING_KEYS=1` | établi | `UE_5.8/.../Json/Public/Dom/JsonObject.h:36-53,153-183` | | Audio Windows par défaut : WASAPI (5.5 : XAudio2) | établi | `UE_5.8/Engine/Config/Windows/WindowsEngine.ini` | | Substrate, Lumen, MegaLights : défauts inchangés pour un projet existant ; TAA reste disponible | établi | `RenderUtils.cpp:2069` ; `RendererSettings.h:194-199` (UA-MOTEUR c14-c16) | | Navigation, registre d'assets, `FString::ParseIntoArray` / `Find` : API présentes, sémantique non modifiée | établi (code) ; incertain (corps non comparé ligne à ligne) | `String.cpp.inl:479,1356-1365` ; test `LPTestStringCompat` en U3 | | Nouvelles clés de scalabilité de base (`r.Fog.SeparateComposition`, volumes hétérogènes) peuvent changer les brouillards aux niveaux 0-1 | établi (clés) ; estimé (effet visuel) | diff de `BaseScalability.ini` 5.5/5.8 ; contrôle en U6 | | Notes officielles 5.6 et 5.7 lues en entier seulement pour « Upgrade Notes » et « Platform SDK Upgrades » (reste filtré par mots-clés) | incertain | diff ciblé du code moteur en U1 | ### 2.5 Essai de compilation 5.8 (UA-T5) — copie jetable, aucune correction Commande commune : `Build.bat LifePlayEditor Win64 Development -Project= -WaitMutex -NoHotReload` sur 5.8.3 complet ; toolchain retenue par UBT : `14.50.35739` (VS 2026), SDK 22621, .NET 10 embarqué. | Passage | Réglage de la copie | Résultat | Durée | |---|---|---|---| | A | cibles d'origine (V5) | code 6, blocage de règle de cible avant compilation, 0 erreur C++ | 9,9 s | | A1 | `bOverrideBuildEnvironment = true` | 5 lignes d'erreur (2 causes), 9 C4996 ; 120 compilations lancées sur 143 | 26,5 min | | A2 | `BuildSettingsVersion.Latest` | mêmes erreurs et avertissements que A1 : le mode strict n'ajoute rien | 25,5 min | | B | A2 sans `McpAutomationBridge` | mêmes erreurs ; 7 C4996 (2 modules non atteints) | 4,9 min | **Les 2 erreurs de compilation** (établies, identiques en A1, A2 et B) : | # | Cause | Fichier:ligne | Erreurs | |---|---|---|---| | 1 | `UAnimSequence::GetCompressedTrackToSkeletonMapTable` supprimée du moteur | `Plugins/LPAnimCore/Source/LPAnimCore/LPCoupleSimCore.cpp:127` | C2039, C2530, 2 × C2143 | | 2 | `TMap::Contains` appelé avec le nouveau type de clé `FJsonObject` | `Plugins/ModdingExtra/Source/ModdingExtra/Private/LPDataCache.cpp:198` | C2664 | 9 avertissements C4996 (établi) : 7 dans `StreetMap` (`GetMaterialRelevance`, `GetDetailsView` ×2, `FSlateFontInfo` ×3, `ImportVersion`), 1 dans `LPDumpAssetsCommandlet.cpp:110` (`GetObjectsWithPackage(bool)`), 1 dans l'addon (`LPHairFromStaticMeshCommandlet.cpp:430`). Statuts : toutes les unités de compilation des 9 modules ont été compilées (établi, `essai-A1.log:81-304`) ; les 23 actions non exécutées sont des éditions de liens et la cible (estimé) ; le bilan complet des avertissements des modules non atteints reste incertain. ### 2.6 Outils et chaîne (UA-T7, UA-FAB) | Constat | Statut | Preuve | |---|---|---| | VS 2022 17.14 (`D:\Game\VS2022`) et VS 2026 18.10 coexistent ; MSVC 14.38.33130, 14.44.35207 et 14.50 installés | établi | `vswhere` (UA-OUTILS) ; UA-SYNTHESE § 6 | | UBT 5.5 retient 14.38 ; UBT 5.8 retient 14.50.35739 depuis VS 2026 | établi | journal UBT 5.5 du 2026-10-07 ; `essai-A1.log` | | Un build 5.5 reste sur le toolset 14.38 après l'ajout de VS 2026 | incertain | build 5.5 de contrôle en U0-T2b | | GPU RX 6600M (8 Go), pilote 26.8.1 conforme (suggéré 26.2.2) ; RAM 63,3 Go ; 8 cœurs | établi | `BaseHardware.ini:85-87` (UA-OUTILS § 1) | | `D:` est un NVMe en boîtier USB (moteurs, projet, DDC) : latence d'E/S plus forte | établi | UA-OUTILS § 1 | | Zen commun : installation 5.6.6, remplacée par 5.8.13 au premier lancement de l'éditeur 5.8, puis utilisée par 5.5 | estimé | `Common\Zen\Install` ; test : lancer l'éditeur 5.5 après 5.8 | | Bibliothèque Fab : 394 éléments acquis, 11 outils retenus en priorité 1 (Blueprint Reader, Blueprint Backup & Restore…) | établi | UA-FAB (lecture seule, rien installé) | Bilan du § 2 : **48 constats étiquetés** (45 lignes des tableaux 2.1 à 2.4 et 2.6, plus les 3 statuts de l'essai 2.5) : 33 établis, 3 estimés, 9 incertains, 3 mixtes (deux statuts dans la même ligne). Les passes, erreurs et avertissements de l'essai (tableaux 2.5) sont des mesures établies, non recomptées ici. ### 2.7 Cartographie U1 (2026-10-08, lecture seule ; hors du bilan des 48 constats ci-dessus) Contrat des mods et moteur (U1-T1) : | Constat | Statut | Preuve | |---|---|---| | Contrat des mods inchangé en 5.8 : découverte `Mods/`, activation par défaut, montage pak ordre 0, point de montage, registre d'assets dans le paquet, `-basedonreleaseversion` ; risque R2 de UA-MODS écarté par le code, confirmation en build empaqueté (test T-M1, U7) | établi (code) ; incertain (empaqueté) | lecture des sources 5.8 ; test T-M1 | | Formats cuits : pak 11 → 12, en-tête de conteneur 4 → 5, version d'objet UE5 1013 → 1018 : recuisson obligatoire | établi | en-têtes 5.5 / 5.8 | | Un mod cuit pour 5.8 dans le jeu 5.5 : arrêt fatal au démarrage | estimé | `PakFile.cpp:300` | | `bUseZenStore` : False (5.5) → True (5.8) ; le projet ne le fixe pas : écriture explicite en U3 (D1) | établi | `BaseGame.ini:95` | Correctifs de compilation (U1-T2) : ni compilés ni appliqués (statut « proposé, non compilé »). | # | Site | Correctif retenu | Garde | Équivalence | |---|---|---|---|---| | R1 | `LPCoupleSimCore.cpp:127` (fichier CRLF) | `GetCompressedData().Get().CompressedTrackToSkeletonMapTable` (`AnimSequence.h:885`, `AnimCompressionTypes.h:780`) ; même migration chez Epic (`MovieSceneSkeletalAnimationSection.cpp:722-723`) | `UE_VERSION_OLDER_THAN(5, 8, 0)` | jeu cuit : établi ; éditeur : estimé | | R2 | `LPDataCache.cpp:198` | `FString(File.Key.ToView())` (`SharedString.h:92-95`) ; variante sans garde `FString(*File.Key)` | oui (forme recommandée pour D11) | établi (mêmes caractères) | | `:155` | `LPCoupleSimCore.cpp:155` | aucun : conversion implicite `double` → `FAnimExtractContext` (constructeur non `explicit`, `AnimationAsset.h:303`) | non | estimé ; preuve au premier build U3 | Piste `IAnimationDataModel` écartée : API réservée à l'éditeur. Repli D11 (b) par macro `UE_JSONOBJECT_LEGACY_STRING_KEYS` impossible avec le moteur installé (`TargetRules.cs:2776-2778`, DLL Json compilée avec la valeur 0) : seul le correctif de code vaut. Autres clés `FJsonObject` du jeu et de l'addon : compilent, copies silencieuses sans effet (établi). Reliquats 4.27 (U1-T3) : 32 commandlets dont 16 à retirer (15 `LPFix*` et `LPConvertAtmosphericFog`) et 2 gardés (`LPResavePackages`, `LPTestStringCompat`) ; 3 réglages de chemin moteur (`LifePlay.uproject:3`, `Tools/BuildDebug.ps1:19`, `Tools/RunCommandlet.ps1:20`) ; environ 411 mentions 4.27 dans 28 docs (établi, décompte). Décisions : plan 27, § U2. Blueprints (U1-T4, commandlet en lecture seule `LPAuditBlueprintCalls` de l'addon, relevé en 5.5 puis croisé avec les en-têtes 5.8) : | Mesure | Valeur | Statut | |---|---|---| | Relevé 5.5 | 110 Blueprints (27 Blueprint, 73 Widget, 7 Anim, 3 ControlRig), 977 graphes, 46 617 nœuds, 498 membres natifs (449 fonctions, 49 propriétés), 63 classes de nœud, 0 échec | établi | | Croisement 5.8 | 458 membres inchangés, 25 propres au projet, 15 à signature changée (931 nœuds) ; aucun redirigé ni retiré | établi | | 15 signatures changées | surtout 11 `Array_*` passés en `UPARAM(ref)` : tolérés par `AllowedMutableContainerFunctions` (`BaseEditor.ini:197-215`, « REMOVE IN UE 5.9 ») ; la liste tolérée compte 13 entrées, pas 11 (U5) ; diagnostic U5 `bEnableMutableContainerWarnings` : 0 nœud, aucune correction avant 5.9 | établi (tolérance) ; fin en 5.9 | | Classes de nœud dépréciées | `K2Node_InputAction`, `K2Node_InputAxisEvent` : 38 nœuds dans `/Game/BPs/PC`, sans effet tant que `DeprecatedActionAndAxisNames` est vide | estimé | | Nœud à corriger en 5.8 | aucun | estimé | | Non couverts | `.umap`, nœuds Make/Break, AnimGraph, RigVM | incertain (U5) | ## 3. Effort et risques (UA-SYNTHESE) Marge : bornes hautes = bornes basses × 1,5 (première exécution en 5.8) + une escalade de niveau par lot ; scénario noir (échec de T4 **et** Blueprint cassé **et** écart StreetMap) : +3 à +5 séances. Méthode : UA-SYNTHESE § 7 (postes décomposés, cycles de build mesurés, durées 5.5 × facteur 5.8). | Lot | Contenu | Séances | Niveaux | Durée machine | |---|---|---|---|---| | U0 Préparation | VS Installer, épinglage 5.5, build de contrôle, tag `ue5.5-final`, copie 5.8, décisions | 1 - 1,5 | N0, N1, N2 | copie 5-15 min | | U1 Cartographie | diff moteur ciblé, spec des 2 correctifs, relevé Blueprint Reader | 1 - 2 | N1, N3 | — | | U2 Retrait 4.27 | 16 commandlets, point unique du chemin moteur | 1 - 1,5 | N1, N0 | build < 1 min | | U3 Bascule et compilation | 2 correctifs, 9 C4996, premier lancement éditeur 5.8, `LPTestStringCompat` | 1,5 - 3 | N3, N0, N4 | 4-8 builds de 8-12 min (estimé) | | U4 Plugins et addon | StreetMap, Mcp, scripts de l'addon, tournée Mesure | 2 - 3,5 | N3, N1, N2 | 2-4 builds | | U5 Contenu | resave hors `Heavy`, `CompileAllBlueprints`, `LPCheckStreetMap`, cuisson à froid | 2 - 4 | N1, N0, N3 | resave 0,2-3 h ; cook à froid 1-3 h (incertain) | | U6 Comportement en jeu | build Development 5.8, A/B `LogStats`, VQ, audio | 2 - 3 | N1, N3 | 15-30 min | | U7 Mods | version de référence, 3 cuissons DLC, tests T1-T7 dont T4 | 2,5 - 4 | N1, N0, N3 | 3 × 5-15 min | | U8 Shipping et publication | build Shipping, archives, évaluation, porte de publication | 1,5 - 2,5 | N1, N2 | ≈ 10 min + cook 15-30 min | | U9 Voie UE5 native | interrupteurs des correctifs de sémantique (différé) | 2 - 4 | N3, N1 | — | | **Total U0-U8** | | **14,5 - 25** | | ≈ 7 à 16 h ; actions utilisateur ≈ 6 à 10 h | | avec U9 | | 16,5 - 29 | | | Constantes mesurées (établi) : build éditeur 5.8 complet avec Mcp 26,5 min (A1) ; build 5.5 incrémental 13 s (`AP7_Build_20261006-212651.txt:74`) ; cook 5.5 à chaud 8 884 paquets en 6,0 min (`AP7_Ship_20261007-023526.txt:3697`) ; `CompileAllBlueprints` 121 s (référence propre 5.5 L7i : 269 BP, 0/0 ; le « 115 s » cité jusqu'ici venait de L1, avant correctifs ; corrigé en U5) ; `LPCheckStreetMap` 25 s ; resave de la liste CX-B07 86 s. | # | Risque | P×I | Parade principale | |---|---|---|---| | R1 | Mod cuit pour 5.5 monté dans le jeu 5.8 (plantage possible) | 3×3 = 9 | test T4 ; garde `MODULE_GAME_VERSION` (D2) | | R2 | Resave de masse (ERR-019), `GI` 51,9 Mo, nœuds dépréciés | 2×3 = 6 | Blueprint Backup & Restore, resave par lots hors `Heavy` (D10) | | R3 | Zen store par défaut change la chaîne de cuisson | 3×2 = 6 | `bUseZenStore=False` avant le premier cook (D1) | | R4 | Contrat JSON / `LPDataCache` altéré silencieusement | 2×3 = 6 | conversion explicite des clés (D11) + diff des caches | | R5 | Proxy de rendu StreetMap sous 5.8 | 2×3 = 6 | `LPCheckStreetMap`, captures même cadrage | | R6-R10 | Cook à froid très long (4) ; modules non mesurés (2, réduit) ; Zen server commun 5.5/5.8 (4) ; MSVC partagé (4) ; disque USB (3) | 2 à 4 | tâche de fond ; toolset épinglé par projet, jamais globalement ; `Snapshot.ps1` et git avant tout resave | | R11-R16 | Mcp bêta (2) ; pont IA expérimental (2) ; erreur résiduelle `:155` (1) ; sémantique `FString` (3) ; sauvegardes 5.5 (2) ; rendu / audio par défaut (2) | 1 à 3 | Mcp désactivé (D4) ; `LPTestStringCompat` dès U3 ; test T6 ; écoute et captures en U6 | Points de non-retour : réenregistrement des assets (U5, uniquement dans la copie 5.8 ; git ne suit que 292 fichiers de `Content` sur les 590 resauvés, donc « réversible par `git checkout` » était inexact : le filet est l'instantané `Snapshot.ps1 -Lot U5`, complété par `git checkout U5-avant -- Content` pour les 292 suivis ; correction U5, CHG-255) ; recuisson et republication des 3 mods (U7) ; publication V2.0 (U8, derrière une porte utilisateur explicite) ; désinstallation de 4.27 (reportée après V2.0, D6 ; réalisée (avancée, ARCH427, CHG-332) : dossiers remisés, moteur UE_4.27 gardé). Tout ce qui précède U7 est jetable depuis le tag `ue5.5-final`. Portes intermédiaires : **G-U3** (0 erreur, `LPTestStringCompat` vert, éditeur 5.8 ouvert) et **G-U6** (A/B et contrôle visuel équivalents à DC4). ## 4. Décisions de la porte G-U (2026-10-08) Décision : **GO séquencé U0-U8, U9 différé après V2.0** (détail dans le plan 27, section « Porte G-U »). Décisions déjà verrouillées avant la porte : cible 5.8, abandon de 4.27, mods figés, règles PUB, P2 à P5, P8. | # | Décision retenue | État | |---|---|---| | D1 | `bUseZenStore=False` explicite pour toute la migration ; Zen en lot dédié après V2.0 | tranchée | | D2 | Garde C++ `MODULE_GAME_VERSION` : décidée après le test T4 (U7) | en attente de T4 | | D3 | Retirer 16 commandlets de portage ; garder `LPResavePackages` et `LPTestStringCompat` | tranchée | | D4 | `McpAutomationBridge` désactivé pour V2.0 ; MCP officiel Epic évalué hors chemin critique, sur copie jetable | tranchée | | D5 | Référence de comportement : `LifePlay_Build_5.5_DC4` et V1.5 | tranchée | | D6 | Désinstallation et archivage de 4.27 après la publication V2.0 | réalisée (avancée, ARCH427, CHG-332) | | D7 | Mcp désactivé « pour V2.0 » (motif : coût et bêta, non plus l'absence de version 5.8) | tranchée avec D4 | | D8 | Blueprint Reader activé en 5.5 (Editor, non commité) avant U1 | tranchée | | D9 | U9 après V2.0 | tranchée | | D10 | Réenregistrement hors `Heavy` (798 assets) ; `Heavy` reste au format 5.5, converti à la volée | tranchée | | D11 | Correctif `LPDataCache` : code ou macro de compatibilité ; décision en U3 (recommandation : conversion explicite des clés) | à prendre en U3 | | D12 | Réglages stricts `Latest` et sort des 9 C4996 ; décision en U3 (recommandation : `Latest` et corriger les 9) | à prendre en U3 | | D13 | `Fab` et `Bridge` en `Optional: true` dans le `.uproject` de la copie 5.8 | tranchée | Préalable demandé par l'utilisateur : lot SK avant U0 (§ 5). ## 5. Lot SK — arbre de compétences des sous-agents ### 5.1 Niveaux de modèles (règle du 2026-10-08, plan 27) Opus en effort high orchestre ; il délègue vers le bas et vers le haut. Niveau (note a-f) : **N0** Haiku (0-2 : compilation, copies, inventaires) ; **N1** Sonnet (3-4 : outillage spécifié, retraits mécaniques, docs, commits) ; **N2** Opus high, orchestrateur (5-6 : fiches, arbitrages) ; **N3** Opus xhigh (7-8 : portage d'API, diagnostic sur graphe d'appels) ; **N4** Opus max (9-10 : portage transversal, échec de N3) ; **N5** Fable (11-12 : enjeu maximal). Grille de complexité : six critères de 0 à 2 (étendue, couplage, incertitude, coût d'erreur, difficulté de vérification, jugement). La fiche comporte 9 rubriques plus la rubrique 2b « agent + skills ». ### 5.2 Agents (option C : un agent par rôle, escalade par les agents de niveau) | Agent | Rôle | Niveau par défaut | |---|---|---| | `lp-builder` | compile, lance commandlets et cuissons, rapporte le journal | N0 | | `lp-inventory` | inventaires chiffrés, états git | N0-N1 | | `lp-cart` | cartographie C++ / Blueprint, audit de sous-système | N3 | | `lp-research` | recherche externe et sources moteur | N3 | | `lp-spec` | spécification exécutable | N3 | | `lp-impl` (+ variante `-max`) | C++, portage, refactor, configuration | N3 (N4) | | `lp-tooling` | commandlets, Python éditeur, PowerShell | N1 | | `lp-content` | chaînes de contenu, cuisson DLC des mods | N1 | | `lp-validator` | validation statique, smoke, diff, preuve par l'échec | N1 | | `lp-measure` | mesure A/B, préparation des tests utilisateur | N1 | | `lp-debugger` (+ variante `-max`) | diagnostic sémantique, runtime, plantage | N3 (N4) | | `lp-integrator` | commits par phase, pins, simulation de publication ; jamais de push | N1 | | `lp-writer` | journal, registre, docs numérotées, fiches | N1 | | `opus-xhigh`, `opus-max`, `fable-top` | agents d'escalade N3, N4, N5 (socle de méthode préchargé) | N3-N5 | Le niveau descend par la surcharge `model` de l'appel ; il monte par l'agent d'escalade. Les agents d'audit et de validation n'ont pas l'outil d'édition. Chaque agent précharge au plus 4 skills (≤ 6 000 jetons estimés). ### 5.3 Skills par couche (33 prévus) | Couche | Préfixe | Emplacement | Contenu | |---|---|---|---| | 1 — socle de méthode (9) | `sk-` | `%USERPROFILE%\.claude\skills\` (hors dépôt) | preuve établi / estimé / incertain, interdits et arrêt, recompte, orchestration, sécurité des changements, comparabilité, shell Windows, estimation, spécification, données web | | 2 — domaine générique (8) | `ue-`, `git-`, `debug-` | idem | build C++ et UBT, cuisson et empaquetage, patron de commandlet, UMG / Slate, lecture d'un plantage, commits par phase, débogage systématique, vérification avant clôture | | 3 — projet LifePlay (16) | `lp-` | dépôt addon privé, `Tools/claude/skills/`, exposé par une jonction vers `.claude/skills` | build, cuisson, mods, commandlets, mesure, diagnostic, git, publication, docs, lots, chemins, environnement, compatibilité UE4, chaînes de contenu, profils de validation | Règles d'adoption : revue intégrale avant toute copie tierce, licence MIT ou Apache-2.0 seulement, révision épinglée par SHA, SKILL.md ≤ 120 lignes, skills et agents en français, aucun contenu de jeu dans un skill, rien dans le dépôt public (`/.claude/` est ignoré, `.gitignore:72`). Rédaction en 4 vagues : V1 avant U0, V2 avant U4, V3 avant U7, V4 à l'évaluation de U8 (effort total estimé 3,5 à 5 séances). ### 5.4 Livré en V1 (constaté par présence des fichiers) | Livrable | État | Fiche | |---|---|---| | Couche 1-2 (7 skills) : `sk-protocol`, `sk-recount`, `sk-orchestrate`, `sk-change-safety`, `sk-windows-shell`, `debug-verification`, `ue-cpp-build` (adapté d'un dépôt MIT, révision épinglée) | établi | SK-T4-V1a, V1c | | Couche 3 (7 skills) : `lp-build`, `lp-commandlets`, `lp-doc`, `lp-lot`, `lp-paths`, `lp-env`, `lp-ue-compat` | établi | SK-T4-V1b, V1c | | Agents : `lp-builder`, `lp-inventory`, `lp-cart`, `lp-impl`, `lp-impl-max`, `lp-validator`, `lp-writer` (+ les 3 agents de niveau existants) | établi (fichiers présents) | `%USERPROFILE%\.claude\agents\` | | Témoin de préchargement : skill et agent `sk-probe` | établi (fichiers présents) | SK-T5 | Reste à écrire : V2 à V4 (19 skills, 6 agents de rôle dont `lp-spec`, `lp-research`, `lp-tooling`, `lp-measure`, `lp-debugger`, `lp-integrator`, `lp-content`). Résultat des tests SK-T5 (préchargement par l'application de bureau, jonction, surcharge de `model` sans effort) : non relevé dans les sources de cette synthèse, donc **incertain**. ## 6. Journal des lots U0 à U9 À compléter à chaque clôture de lot (une ligne par lot : date, résultat, CHG). Les lots UA, la porte G-U et le lot SK sont décrits aux § 2, 4 et 5. | Lot | Date de clôture | Résultat | CHG | |---|---|---|---| | U0 Préparation | 2026-10-08 | VS 2026 en coexistence ; 5.5 épinglé `CompilerVersion=14.38.33130` (compilation de contrôle code 0, éditeur démarré sans erreur) ; toolset 5.8 `14.50.35717` non banni (cl.exe 14.50.35739) ; tag `ue5.5-final` ; copie `LifePlay-master 5.8` sur `ue5.8` ; P1, P6, P7 verrouillées ; VAL PASS (T2, T2b, T3, doc 28) | CHG-249, CHG-250 | | U1 Cartographie | 2026-10-08 | Contrat des mods inchangé (recuisson obligatoire : pak 12, conteneur 5, objet 1018) ; 2 correctifs spécifiés avec garde de version (R1 `GetCompressedData()`, R2 `FString(File.Key.ToView())`), pistes `IAnimationDataModel` et macro D11 (b) écartées ; 32 commandlets (16 à retirer) et 3 réglages de chemin moteur ; audit Blueprint 5.5 : 110 BP, 46 617 nœuds, 15 signatures changées (931 nœuds), aucun nœud à corriger (estimé) | CHG-251 | | U2 Retrait 4.27 et chemin moteur | 2026-10-08 | 16 commandlets de portage retirés (32 fichiers, `SlateCore`/`NavigationSystem` sortis du Build.cs de `LifePlayEditorTools`) ; point unique `Tools/Engine.ps1` (version lue dans `EngineAssociation`, surcharge `LP_ENGINE_ROOT`, builds `LifePlay_Build_`) ; `CheckIntegrity.ps1` sans 4.27 (`-InitRef`, référence Modules à figer après G-U6) ; `StagingDirectory` `_5.8` ; bandeau « historique 4.27 » sur 12 docs, docs 08/09/10/13/index alignés ; compilation de contrôle UE 5.5 code 0 (toolset 14.38, aucun avertissement nouveau), `LPTestStringCompat` 3120/0/60 ; branche `ue5.8` seulement ; VAL PASS | CHG-252 | | U3 Bascule et compilation (porte G-U3) | 2026-10-08 | `EngineAssociation` 5.8, Target.cs V7 / Unreal5_8, MSVC 14.50.35717 ; R1 et R2 (forme A, D11) ; `bUseZenStore=False` ; CVar `r.TranslucencyLightingVolume.Dim` ; addon hors compilation jusqu'à U4, Mcp désactivé ; 1 build : 0 erreur, 8 C4996 (6 min 15) ; `LPTestStringCompat` 3120/0/60 ; éditeur 5.8 et PIE (3 signatures d'erreur Blueprint sur 47 propres à 5.8, pour U6) ; Zen commun 5.8.13 accepté par 5.5 ; `Tools/Build.ps1` et skill `lp-validate` ; VAL PASS | CHG-253 | | U4 Plugins tiers et addon | 2026-10-08 | Addon de retour dans la copie 5.8 : worktree `LifePlay-Sandbox-5.8` (branche `ue5.8` depuis `f9033a1`), le checkout 5.5 reste pour le jeu 5.5 ; scripts de l'addon lisant le moteur par `Engine.ps1`, Target.cs V7 ; D12 : 9 C4996 corrigés sous garde `UE_VERSION_OLDER_THAN(5,8,0)` (StreetMap ×7, `LPDumpAssetsCommandlet`, `LPHairFromStaticMeshCommandlet`), `LifePlayEditor` 0 erreur 0 avertissement ; `LPSandbox.uproject` autonome corrigé (UBT ne lit que les sous-dossiers d'un `AdditionalPluginDirectories`), piège AP7 confirmé en 5.8 ; tournée Mesure 5.8 contre référence 5.5 refaite au pin : R1 identique au caractère (boîte du couple tranchée), fichiers 44/44 et 73/73, écarts bruit flottant ≤ 3,8e-6 et libellés d'égalités nulles (PASS-ÉCART) ; plantage D3D12 en fenêtre minimisée ; VAL PASS (V1–V9), PASS-STATIC pour `BuildMod`, `EditMod`, `HairPipeline` | CHG-254 | | U5 Contenu | 2026-10-08 | Resave D10 : 590 paquets hors `Heavy` (800 moins 210 acteurs externes orphelins de cartes gabarit absentes), 590/590, 0 échec, 126 s, pic 8,8 Go, versions 5.5 → 5.8, −125,65 Mo, 292 fichiers suivis modifiés et rien hors `Content` ; conversion des assets d'animation sans perte (9 reciblages identiques au bit près, 3 témoins sensibles ; 2 drapeaux Stride Warp de `RTG_Mannequin` 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 ; `LPCheckStreetMap` 280/280, CSV identique à 5.5 ; cuisson complète à froid : 8 915 paquets, 0 erreur, 0 avertissement, 6 min 10 (DDC chaude), 2,6 Go ; éditeur 5.8 ouvert sans erreur de chargement ; filet : tag `U5-avant` + instantané `Backup_5.5\U5` (3 092 fichiers) ; VAL PASS (V1–V7) ; 4 reports au doc 21 | CHG-255 | | U6 Comportement en jeu (porte G-U6) | 2026-10-08 | Build Development 5.8 OK au 4e essai (2 échecs C1001 / C2206 sous UBA, mémoire ~61 / 75 Go ; sans UBA OK ; UAT code 0, 179 s, 1 avertissement de cuisson `LegacyIterative`) ; A/B `LogStats` 5.5 DC4 / 5.8 : AccessedNone 442 / 364, erreurs 6 / 5, fatal 0 / 0, équivalent (estimé, un parcours) ; `LogStats.ps1` corrigé pour « (real) property » (0 → 364) ; menu Video, « Recommended » → High (VRAM 8 146 Mo), relance, son, reprise de partie et rues OK selon l'utilisateur ; NaN, `PersonCumming`, `Save Preset`, « pose non à jour » : 0 au journal ; référence Modules 5.8 figée (2 195 fichiers) ; reports U7 (Mesure, poses, `-NoUBA`, copie de sauvegarde) et U8 (brouillard, hitch `MapMarkers_C`, cuisson à froid) ; VAL PASS | CHG-256 | | U7 Mods | 2026-10-09 | Mod 5.5 dans le jeu 5.8 : plantage au démarrage (2/2) → garde D2 (moteur / version min `2026.10.2.0` / version max = `ProjectVersion`, mod refusé démonté, 3 cases Settings > Misc, « (not loaded) » au gestionnaire, `EngineVersion` écrit par `BuildMod`) ; essais T1–T7 passés (3 mods acceptés, 104 clips, 138 coiffures ; mod V2.0 dans le jeu 5.5 : plantage explicite, consigné) ; coiffure par défaut perdue (depuis H1/H3a) corrigée en 5.8 seulement (C1 + C2) ; référence `Releases/2026.10.2.0` par Shipping 5.8 (conteneur 5, registre 24) ; 3 mods recuits (70 / 84 / 20 paquets) ; chaîne NewMod → HairPipeline → EditMod → BuildMod rejouée en 5.8 ; builds 0/0, `LPTestStringCompat` 3120/0/60 ; VAL PASS ; reports : U8 (publication des archives, Shipping final), U7b (capture Mesure, `RetargetPack.py`, poses), lot dédié et docs 29 / 30 | CHG-257, CHG-258 | | U7b Atelier et poses (reports U4, U5, U7) | 2026-10-09 | Tournée Mesure hors écran : `-RenderOffScreen -ExecCmds="r.SetRes 1600x900w"`, géométrie 20/20 lignes identiques à `U4-REF55`, JSON 10/10, dimensions 20/20, 0 assertion D3D12 ; `RetargetPack.py` : garde-fou (refus sous 5.6 et plus), portage après V2.0 ; 28 poses de démo régénérées (« Update Source ») : 56 lignes → 0 au `CompileAllBlueprints`, `_anim` intactes ; addon `ce2e269`, poses hors git ; VAL PASS ; reste : erreur HyperAIStudio au démarrage (lot 29, avant U8) | CHG-259 | | U8 Shipping, publication, évaluation | — | — | — | | U9 Voie UE5 native (différé après V2.0) | — | — | — | ## 7. Points ouverts Incertains à trancher par un essai : 1. Nature de l'échec d'un conteneur de mod 5.5 monté dans 5.8 : test T4 (U7) ; conditionne D2. 2. ~~Durée du premier cook 5.8 à froid et réussite du resave de `GI`~~ : **tranché en U5** — resave 590/590, 0 échec (126 s) ; cuisson complète à froid 8 915 paquets, 0 erreur, 0 avertissement, 6 min 10 avec DDC chaude (établi, livrables U5). Cuisson à DDC froide non mesurée. 3. ~~Nœuds Blueprint dépréciés 5.6-5.8~~ : **tranché en U5** — `CompileAllBlueprints` 5.8 : 410 BP, 0 erreur, 0 avertissement BP ; `bEnableMutableContainerWarnings` : 0 nœud, aucun `Array_*` à corriger avant 5.9 (établi). 4. Rendu du proxy `StreetMap` sous 5.8 : captures même cadrage en U5/U6. → U6 : rues identiques selon l'utilisateur, pas de captures même cadrage ; clos par constat de l'utilisateur (CHG-256). 5. Zen store × version de référence : neutralisé par D1, sinon test R1 de UA-MODS. 6. ~~Zen commun 5.5/5.8~~ : **tranché en U3** — installation commune passée en 5.8.13, acceptée par l'éditeur 5.5 (établi, U3-T4). 7. ~~Sémantique `FString`, ligne 155~~ : **tranché en U3** — `LPTestStringCompat` 3120/0/60 sous 5.8 ; `:155` compile sans erreur (établi). 8. ~~Toolset 14.38 conservé par 5.5 après l'ajout de VS 2026~~ : **tranché en U0-T2b** — `CompilerVersion=14.38.33130` épinglé, compilation de contrôle code 0 avec `D:\Game\VS2022\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64\cl.exe` (établi). 9. Résultats des tests SK-T5 et vagues V2 à V4 du lot SK. 10. ~~Boîte englobante du couple~~ : **tranché en U4** — boîte `AgMakeout` identique au caractère entre 5.5 et 5.8 dans le Sandbox éditeur (centre 20.831 / 1.400 / -0.534, étendue 41.180 / 50.958 / 89.466) ; R1 validé (le chemin « animations » n'est qu'un repli de `FitToBodies`, `LPShowCoupleSubsystem.cpp:377`). 11. ~~`bUseZenStore=False`~~ : **fait en U3** (`Config/DefaultGame.ini`, D1). 12. ~~Blueprints : `.umap`, nœuds Make/Break, AnimGraph et RigVM non couverts par l'audit U1~~ : **tranché en U5** par `CompileAllBlueprints` 5.8 (410 BP, 0 erreur, 0 avertissement BP) ; les 28 avertissements « Ressource de la pose … n'est pas à jour » restent ouverts (point 17). 13. Tournée Mesure sous 5.8 : elle exige une fenêtre visible (fenêtre minimisée = assert D3D12 `D3D12Texture.cpp:1551`, back buffer 8×8, pendant les planches). Rendre la capture indépendante de la fenêtre : U6 (registre du doc 21). → U6 : reporté en U7 (décision de l'utilisateur, 2026-10-08) ; d'ici là, tournée fenêtre visible (CHG-256). 14. `LPSandbox.uproject` en 5.5 : même défaut `AdditionalPluginDirectories` qu'en 5.8 (établi par le code UBT, non compilé en 5.5) ; correction à reporter dans l'addon 5.5 (branche `lot/DC3-atelier`), hors U58. 15. `BuildMod`, `EditMod`, `HairPipeline` jamais exécutés en 5.8 (PASS-STATIC seulement) : U7. 16. `RetargetPack.py` (étape 4 de la chaîne d'animation) : `set_retarget_chain_settings` sans effet en 5.8 (passer par l'op « FK Chains ») et 9e argument de `duplicate_and_retarget` changé (booléen → chemin) : U7 (atelier, doc 21). 17. 28 avertissements « Ressource de la pose … n'est pas à jour » en 5.8 (inchangés par le resave) : U6 (doc 21). → U6 : 0 « pose n'est pas à jour » au journal du jeu 5.5 comme 5.8 ; poses de démo Manny / Quinn, reportées en U7 (décision de l'utilisateur, CHG-256). 18. 210 acteurs externes orphelins dans `Content/__ExternalActors__` et `__ExternalObjects__` (cartes ThirdPerson / Vehicle absentes), non resauvés : retrait à décider par l'utilisateur, après V2.0 (doc 21). 19. NaN `FRotator::Quaternion` vu une fois au recalcul DDC de `/Game/Heavy/New3/Anims/DM_RazDog_0` (non reproduit) : à surveiller en U6 (doc 21). → U6 : 0 occurrence au journal du jeu 5.5 comme 5.8 ; non reproduit en jeu, clos (CHG-256). 20. Rendu du proxy `StreetMap` sous 5.8 : `LPCheckStreetMap` 280/280 et CSV identique à 5.5 établis en U5 ; le rendu lui-même reste à comparer par captures même cadrage (point 4, U6). → U6 : rues identiques selon l'utilisateur, pas de captures même cadrage ; clos par constat de l'utilisateur (CHG-256). 21. Scalabilité : nouvelles clés de base (`r.Fog.SeparateComposition`, volumes hétérogènes) pouvant changer le brouillard aux niveaux 0-1 (Effects Low-Med) : non contrôlé en U6 (pas de captures même cadrage) ; réserve pour U8, test Shipping (doc 21, CHG-256). Contradictions entre sources (la plus récente retenue) : | # | Contradiction | Retenu | |---|---|---| | C1 | UA-OUTILS : UBT 5.8 retient 14.44.35207 ; UA-ESSAI : 14.50.35739 | UA-ESSAI (après l'installation de VS 2026) | | C2 | UA-MOTEUR : 14.44.35207 banni ; UA-OUTILS : non banni (`MicrosoftPlatformSDK.cs:1156`) | non banni (UA-SYNTHESE § 6) | | C3 | UA-MOTEUR, UA-PLUGINS, UA-OUTILS : `Fab` / `Bridge` absents de 5.8 ; UA-ESSAI : présents | présents | | C4 | UA-PLUGINS : rupture certaine à `LPCoupleSimCore.cpp:155` ; essai : à `:127` | `:127` (essai) | | C5 | UA-PLUGINS : 21 plugins moteur activés ; UA-MOTEUR : 26 | les deux justes : 26 entrées activées au `.uproject`, dont 5 hors moteur (`LPAnimCore`, `LPSandbox`, `ModdingExtra`, `StreetMap`, `McpAutomationBridge`) → 21 plugins moteur (recompté en U0) | | C6 | UA-JEU : 18 commandlets de portage ; décision D3 : 16 retirés | 16 (2 gardés volontairement) | | C7 | UA-SYNTHESE et UA-OUTILS : épingler `ToolchainVersion` ; plan 27 (P8) : c'est `CompilerVersion` qui choisit MSVC, `ToolchainVersion` ne sert qu'à Clang (`VCEnvironment.cs` 5.5 l. 463-485) | plan 27, **confirmé en U0-T2b** (journal UBT : toolset 14.38.33130 retenu par `CompilerVersion`) ; en 5.8, `CompilerVersion` est comparé à la version du `cl.exe` ou au nom du dossier (`MicrosoftPlatformSDK.cs:581`, `:1147`) | | C8 | Lot SK : 45 types de tâche annoncés, 49 recomptés ; 28 skills annoncés, 33 au catalogue ; « 12 agents de rôle », 13 lignes de rôle au tableau | recomptes (49 types, 33 skills, 13 rôles) | | C9 | UA-MOTEUR (c8) cite `LPDataCache.cpp:52,196` ; l'essai place l'erreur à `:198` | `:198` (essai) | | C10 | Plan 27 (U0) : le toolset VS 2026 `14.50.35717` serait banni ; U0-T2 : le bannissement porte sur la version du `cl.exe` (`MicrosoftPlatformSDK.cs:1156`, `:1416`), ici 14.50.35739, hors plage `14.50.0-14.50.35722` (`Windows_SDK.json:41`) | non banni ; épingle 5.8 : `CompilerVersion=14.50.35717` | | C11 | UA-OUTILS : `Log.txt` UBT issu d'un run 5.8, version de 14.44 « 19.44.35228 » ; U0-T2 : run 5.5, version 14.44.35228 | U0-T2 | | C12 | UA-PLUGINS / UA-SYNTHESE : piste `IAnimationDataModel` pour R1 ; U1-T2 : API réservée à l'éditeur (`AnimSequenceBase.h:238-281`), inutilisable dans le module Runtime | U1-T2 : piste écartée | | C13 | UA-SYNTHESE, `lp-ue-compat` : macro `UE_JSONOBJECT_LEGACY_STRING_KEYS` comme repli D11 (b) ; U1-T2 : impossible avec le moteur installé (`TargetRules.cs:2776-2778`, DLL Json compilée avec 0) | U1-T2 : pas de repli par macro, correctif de code seul | | C14 | UA-MODS : attendu du test T5 (mod 5.8 monté dans le jeu 5.5) = TOC « Too new » refusé (`IoStore.cpp:1145-1147`) ou avertissement de version ; U1-T1 : la version de TOC n'a pas changé, le pak 12 provoque un arrêt fatal au démarrage (`PakFile.cpp:300`, estimé) | U1-T1 (attendu T5 corrigé) |