LifePlay-Revival/Docs/Migration/etat/REL/STM1/STM1-RECH-01.md

124 lines
12 KiB
Markdown
Raw Normal View History

Fiche STM1-RECH-01 — Niveau N2 — Modèle prévu opus medium | utilisé claude-opus-5-5 — Agent session « Medium · STM1 » (pas de sous-agent) — Skills sk-protocol (lu en CART-01), lp-ue-compat (lu en CART-01)
# STM1-RECH-01 : carte de Londres valide et portage du plugin StreetMap en 5.8 (2026-10-20)
Ordre : Big Boss (`local_104ff22d`), 2026-10-20 03:00. Demande de l'utilisateur citée par Big Boss : « pour street map voir si on peut
récupérer une carte valide de londre et si le plugin intègre la version 5.8 ». Lecture seule : ni copie UE, ni MCP, ni écriture dans
`Content\` ou `Plugins\`, ni git qui écrit. Recherche web : GitHub (API `gh`, lecture) et une recherche web.
**Résultat : réussi pour les deux questions.**
**A.** La carte de Londres de la copie 5.8 est **intacte** : même octet pour octet que la 5.5 et que l'archive du 2026-10-20, et elle se cuit en entier (144 Mo).
Aucune version de remplacement n'est nécessaire. La carte « quelconque » vient donc d'ailleurs (repli sur `000Dummy` ou `Cities[0]`, STM1-CART-02).
**B.** Notre plugin **compile et charge en 5.8** : portage local fait en U4 (CHG-254) et build 5.8 réussie. L'amont n'est plus maintenu depuis 2023.
Deux forks publics visent la 5.8, mais notre plugin est une **variante LifePlay** (eaux, parcs, réglages propres) : un remplacement par un fork casserait plus qu'il ne répare.
## A. Une carte de Londres valide
### A1. L'asset actuel est-il intact ? (établi)
| Copie | Paquet source `Content/Heavy/StreetMap/Static/CentralLondon.uasset` | Cuit (`.uexp`, données de rendu) |
|---|---|---|
| 5.8 (travail) | MD5 `fba15a84cc46…`, 13 607 769 octets | `Saved/Cooked/Windows/…/CentralLondon.uexp` : 144 012 885 octets (2026-10-14 16:35) |
| 5.5 | `fba15a84cc46…`, 13 607 769 | 157 023 959 (2026-10-07) |
| Archive `LifePlay_Backup_5.5\ARCH58-20261020\LifePlay-master 5.8` | `fba15a84cc46…`, 13 607 769 | — |
| 4.27 (`ARCH427\LifePlay-master 4.27`) | `3ff43b1a89c7…`, 202 010 797 (format UE4, données de rendu dans le fichier) | build 2026.9 : 210 059 668 |
| `000Dummy` (repère) | `128c0628…`, 98 129 (5.5 = 5.8) | 47 231 |
Commande : `find LifePlay_Backup_5.5 "LifePlay-master 5.5" "LifePlay-master 5.8" -iname CentralLondon.uasset -path "*Static*"`, puis `md5sum` et `stat -c %s`, plus `stat` des `.uexp` cuits.
La baisse 4.27 → 5.x (202 → 13,6 Mo) est déjà expliquée et close sans perte : **ERR-018** (`Docs/Registre_Erreurs.md:32`). Les 280 maillages `Static`
(sommets, triangles, sections, matériaux, dimensions) sont identiques entre les assets 4.27 et 5.5 (CHG-044). En 5.8, `LPCheckStreetMap` donne
280/280 villes conformes (`etat/U58/U8/U8-T7b-VAL.md` § 3.3). Le cuit 5.8 fait trois mille fois la taille de `000Dummy` : la carte complète est bien embarquée.
Les archives `Releases/2026.10.1.5` et `2026.10.1.6` contiennent les livrables publiés (exécutable et paquets), pas l'asset source : rien de plus à y prendre (estimé, contenu non ouvert).
Les `.uasset` cuits de 1,6 à 2 Ko sont des en-têtes de paquet : les données sont dans le `.uexp`.
### A2. Le jeu d'origine en garde-t-il une autre version ? (établi : non)
- Le dépôt public `vinfamy/LifePlay` (dernier push le 2021-01-08) n'a pas de `Content/Heavy` (`gh api repos/vinfamy/LifePlay/contents/Content/Heavy` → HTTP 404). Le doc 12 (`Docs/12_Reconciliation_Vinfamy.md`, index `Docs/README.md:50`) conclut déjà « rien à récupérer ».
- `Content/Heavy/*` est ignoré par notre dépôt (`.gitignore:17`) : il n'existe pas d'autre version dans git. Les seules copies sont celles de A1, toutes équivalentes.
### A3. Régénérer depuis OpenStreetMap ? (établi : pas de source locale)
- Aucun fichier `.osm` ni `.osm.pbf` sous `D:\Game` (`find /d/Game -maxdepth 6 -iname "*.osm*"` : vide). L'asset `StreetMap/CentralLondon.uasset` ne garde aucun chemin `.osm` lisible (`grep -a`).
- L'outil existe : l'import `.osm` du module `StreetMapImporting` est compilé en 5.8 (B2). Il faudrait télécharger un extrait récent de Londres (Geofabrik, Overpass), l'importer, puis recréer le maillage `Static`.
- Coût et risques (estimé) : la carte obtenue serait **différente** de l'originale (OSM a changé depuis 2020 : bâtiments, routes, noms). Ces différences touchent les données de jeu indexées sur la carte (bâtiments nommés, aménités, `CityExpansion`, favoris, sauvegardes), la cohérence avec les 279 autres villes et les mods. Il faudrait aussi respecter la licence ODbL : attribution « © OpenStreetMap contributors » dans les crédits, avec une source exacte (règle des crédits du projet).
### A4. Lien avec CART-02 (estimé fort)
L'asset étant bon et cuit, une « map quelconque avec des bâtiments lambda » ne vient pas de l'asset de Londres. Elle vient du **choix de la ville** :
démarrage sur `000Dummy`, `GetCityByName` sans correspondance, ou `MoveCity` qui retombe sur `Cities[0]` (STM1-CART-02 § 1, M1-M5). Les observations
de CART-02 § 5 (messages bleus, journal `GetAssetByObjectPath ECHEC`) et la lecture MCP de `GI.Cities` restent la voie qui tranche.
## B. Le plugin StreetMap et UE 5.8
### B1. L'amont (établi)
| Fait | Source |
|---|---|
| `ue4plugins/StreetMap` : non archivé, 453 forks, dernier push le 2024-05-23 ; derniers commits du 2023-05-29 (« Miscellaneous fixes for warnings in 5.2 », « Fixed meshes not being rendered unless selected (invalid LOD) », « Fixed crash when reimporting if the .OSM file wasn't found ») | `gh api repos/ue4plugins/StreetMap` ; `gh api repos/ue4plugins/StreetMap/commits?per_page=3` ; https://github.com/ue4plugins/StreetMap |
| Le README ne nomme aucune version de moteur. Il annonce seulement l'intention de « keep the source code up to date » | https://github.com/ue4plugins/StreetMap (README) |
| Conclusion : l'amont s'arrête à UE 5.2, sans portage 5.3-5.8 | estimé (déduit des commits) |
### B2. Notre copie (établi : compile et fonctionne en 5.8)
| Fait | Source |
|---|---|
| Portage local en U4 : les 9 C4996 du lot sont corrigés, dont ceux de StreetMap (W1 `GetMaterialRelevance`, W2 `GetDetailsView`, W3 `FSlateFontInfo`, W4 `ImportVersion`), sous garde `UE_VERSION_OLDER_THAN(5, 8, 0)` | CHG-254, commit `5ed078d` ; `.claude/skills/lp-ue-compat/ruptures.md` § 3 ; `etat/U58/U4/U4-T3-IMPL.md` |
| Compilation 5.8 réussie : `[13/16] Compile [x64] Module.StreetMapRuntime.cpp`, 0 `C4996`, `Result: Succeeded` | `Saved/Logs/portage/U7_Build_20261009-103224.log` |
| Modules liés en U4 : StreetMapRuntime (l. 35-39) et StreetMapImporting (l. 71-75) | `etat/U58/U4/U4-T4-BUILD.md` (V3, journal `U4_Build_20261008-181959.log`) |
| DLL 5.8 présentes : `UnrealEditor-StreetMapRuntime.dll` (2026-10-08 22:03), `UnrealEditor-StreetMapImporting.dll` (22:07) ; plugin monté et chargé à chaque démarrage | `ls Plugins/StreetMap/Binaries/Win64` ; `Saved/Logs/LifePlay.log` (CART-01 § 2) |
| Les deux ruptures 5.8 corrigées par le fork isamarin n'existent pas chez nous : aucun `PostCreateBlueprint` ni `SetNum(…, false)` dans nos sources | `grep -n` dans `Plugins/StreetMap/Source` (vide) |
| Notre plugin **diverge** de l'amont : eaux et parcs (`WaterColor`, `ParkColor`, `GetWaters`, `GetParks`), `RoadOffesetZ`, `MakeMeshBatch` simplifié | `diff` entre `gh api …/contents/Source/StreetMapRuntime/{StreetMapSceneProxy,StreetMapComponent}.cpp` et nos fichiers |
| Le `.uplugin` reste « VersionName 1.0 » : ce numéro ne dit rien de la version du moteur | `Plugins/StreetMap/StreetMap.uplugin` |
| Rappel CART-01 : en jeu, la carte est un `StaticMeshComponent`. Le plugin n'y fournit que les données (`UStreetMap`) et l'import en éditeur | STM1-CART-01 § 1 |
### B3. Forks qui visent 5.8 (établi : existent ; qualité non éprouvée)
| Fork | Ce qu'il apporte | Source |
|---|---|---|
| `isamarin/StreetMap` | 2026-09-15 : « fix UE 5.8 build compatibility » (`SetNum` → `EAllowShrinking`, `UActorFactory::PostCreateBlueprint` supprimé en 5.8), module de tests d'automatisation (6/6 annoncés), correctifs de plantages et de fuites | `gh api repos/isamarin/StreetMap/commits/<sha>` |
| `carla-simulator/StreetMap`, branche `ue58-digitaltwins` | 2026-09-02 : « UE 5.8 port for CARLA » ; dépend du plugin Carla : inutilisable seul (estimé) | `gh api repos/carla-simulator/StreetMap/commits?sha=ue58-digitaltwins` |
| Autres (`lucyyyLL`, `synapticore-studio`, `GeoCivilTech`…) | activité 2025-2026 sans portage 5.8 annoncé dans les derniers commits | `gh api repos/ue4plugins/StreetMap/forks?sort=newest` |
## Options (aucune décision prise)
| Option | Ce qu'elle règle | Coût | Risque |
|---|---|---|---|
| **O1 (recommandée)** : garder l'asset et le plugin actuels ; trancher la cause par les observations de CART-02 § 5 et la lecture MCP de `GI.Cities` (après CG2) | la cause probable de F3 (choix de la ville) | faible : observations de l'utilisateur, une lecture MCP, puis un correctif ciblé du GI ou des données | faible : aucun asset ni plugin remplacé |
| O2 : reprendre ponctuellement des correctifs d'`isamarin` (plantages à l'import `.osm`, tests) dans notre variante, sous instantané, avec CHG | robustesse de l'import en éditeur, pas F3 | moyen : diff fichier par fichier contre notre variante | moyen : conflits avec nos ajouts (eaux, parcs) ; sans effet sur la carte en jeu |
| O3 : régénérer Londres depuis un extrait OSM récent | rien pour F3 si l'asset est bon ; seulement une carte « à jour » | élevé : import, maillage, contrôle, cuisson, crédits ODbL | élevé : carte différente de l'originale, données de jeu et sauvegardes désalignées, mods |
| O4 : remplacer le plugin par un fork 5.8 | rien pour F3 | moyen à élevé | élevé : perte de nos ajouts, assets `UStreetMap` peut-être illisibles si les structures changent |
## Mesuré (extraits bruts)
```
$ md5 + taille de Static/CentralLondon.uasset
fba15a84cc46 13607769 LifePlay_Backup_5.5/ARCH58-20261020/LifePlay-master 5.8/Content/Heavy/StreetMap/Static/CentralLondon.uasset
fba15a84cc46 13607769 LifePlay-master 5.5/Content/Heavy/StreetMap/Static/CentralLondon.uasset
fba15a84cc46 13607769 LifePlay-master 5.8/Content/Heavy/StreetMap/Static/CentralLondon.uasset
3ff43b1a89c7 202010797 LifePlay_Backup_5.5/ARCH427/LifePlay-master 4.27/Content/Heavy/StreetMap/Static/CentralLondon.uasset
$ stat .uexp cuits
144012885 2026-10-14 16:35:34 LifePlay-master 5.8/Saved/Cooked/Windows/.../Static/CentralLondon.uexp
47231 2026-10-14 16:35:41 LifePlay-master 5.8/Saved/Cooked/Windows/.../Static/000Dummy.uexp
$ gh api repos/ue4plugins/StreetMap --jq '{pushed_at,archived,forks_count}'
{"archived":false,"forks_count":453,"pushed_at":"2024-05-23T09:52:01Z"}
$ grep -a "StreetMap\|Result:" Saved/Logs/portage/U7_Build_20261009-103224.log
[13/16] Compile [x64] Module.StreetMapRuntime.cpp [NoUba]
Result: Succeeded
$ gh api repos/vinfamy/LifePlay/contents/Content/Heavy
gh: Not Found (HTTP 404)
```
## Incertitudes, écarts, fichiers
- Non vérifié : le rendu de la carte en jeu (sans copie UE). Le contenu des archives `Releases` n'a pas été ouvert. Les correctifs d'`isamarin` n'ont été ni compilés ni testés chez nous.
- La dernière compilation de `StreetMapImporting` relevée est celle d'U4 (2026-10-08). Le journal ADD1 du 2026-10-19 ne recompile pas StreetMap (0 ligne) : les DLL du 2026-10-08 sont à jour.
- Fichiers écrits : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\STM1\STM1-RECH-01.md` (A) ; `STM1-TACHES.md` (M). Fichiers téléchargés de GitHub pour le `diff` : dossier temporaire du système, hors projet.
Tours : ≈ 17 / 40 (déclaré ; `FicheStats.py` fait foi). Recherche externe : bien en dessous de la moitié du budget.
À verser :
- `lp-ue-compat` § 1 ou `lp-paths` : StreetMap = variante LifePlay du dépôt `ue4plugins/StreetMap` (amont arrêté en 5.2) ; portage 5.8 local (U4) ; forks 5.8 connus : `isamarin/StreetMap`, `carla-simulator/StreetMap@ue58-digitaltwins`.
- `lp-paths` : `Content/Heavy` n'est ni dans git ni dans `vinfamy/LifePlay` ; les seules copies de référence des villes sont les archives locales (ARCH427, ARCH58-20261020).
Suite : Big Boss doit présenter les options à l'utilisateur (O1 recommandée) et maintenir la lecture MCP de CART-02 § 4 après CG2. État : RECH-01 close, aucun fichier du projet modifié.