LifePlay-Revival/Docs/Migration/etat/REL/STM1/STM1-B6-FIN.md
edujiro5972 56dfcfc3d2 LifePlay UE 5.8 : état de développement au 2026-10-20
Tickets : PUB-20261020-T1

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

6.2 KiB
Raw Blame History

Fiche STM1-B6 (IMPL O2 + BUILD-FIN, STM1-SPEC-08) — Niveau N3 — Modèle prévu opus medium | utilisé claude-opus-5-5 — Agent session « Medium · STM1 » (pas de sous-agent) — Skills sk-protocol

STM1-B6 : masquage des maisons génériques posées dans l'eau (O2, option D) (2026-10-20)

Décisions :

  • choix de l'utilisateur, tapé dans cette session et cité mot pour mot : « option D » ;
  • GO de Big Boss sur SPEC-08 et sur le code sans processus UE ;
  • puis GO de jeton UE (après la BUILD-FIN de KEY2). Ordre : CopieEtat, instantané, éditeur, commandlet (Water/CentralLondon_Mask, seul asset écrit), Development.

Résultat : code et builds à 0. Masque écrit (59 centres). Aucun autre asset modifié. L'essai en jeu reste à faire (build d'essai sur ordre de l'utilisateur).

1. Code

Fichier État MD5 avant (instantané STM1-O2) MD5 après Lignes Fins de ligne
Source/LifePlay/LPCityWaterMask.h A – 966dc14d525c34c7fd19d0f0b73b8a6d 34 LF (0 CR)
Source/LifePlay/LPCityWaterSubsystem.h M DEB58EC1… 2cdc10018eb1287d7f9e302eee182185 72 LF (0 CR)
Source/LifePlay/LPCityWaterSubsystem.cpp M EC0946C5… 9c0b257ee0ae377146aeda72519330bf 323 LF (0 CR)
Source/LifePlayEditorTools/LPBuildCityWaterCommandlet.cpp M C5709BDD… (après O3) ; 69746A35… avant O3 (instantané STM1-O3) fa6fbb72cabc0fd73663ef0e86942309 731 LF (0 CR)
  • ULPCityWaterMask (UDataAsset, module LifePlay) : City, SourceBuildingCount, Centers (centres de boîte, repère de la carte, cm) et AreasM2.
  • Commandlet, deux options :
    • -ListBuildingsInWater=<f.md> [-ThresholdM2] (O3) ;
    • -MaskOnly (O2) : écrit /Game/Heavy/StreetMap/Water/<Ville>_Mask. Il ne relit ni ne réécrit le maillage d'eau, refuse d'écraser un masque existant, et ne fait qu'un rapport en -DryRun.
  • Sous-système de l'eau :
    • LoadMask est appelé à chaque changement de carte ;
    • HideHousesInWater traite les UInstancedStaticMeshComponent de MapMarkers dont le maillage commence par House ou Skyscraper. Les arbres et jeeps ne sont pas touchés ;
    • chaque instance est ramenée dans le repère de la carte, puis comparée aux centres du masque (≤ 50 cm, cases de 1 m) ;
    • une instance trouvée est mise à l'échelle 0 par UpdateInstanceTransform, avec un MarkRenderStateDirty par composant ;
    • une nouvelle passe a lieu quand le nombre d'instances change ;
    • constantes : SpareAboveAreaM2 = 0 (option D : aucune épargne), MatchToleranceCm = 50, MaskCellCm = 100 ;
    • témoin, écrit au changement seulement : [LPCity] EAU <Ville> : masque n centres ; instances maisons N ; masquees m ; epargnees k (seuil s m2) ; centres sans instance c.
  • Aucun Blueprint, GI, MapMarkers ni carte modifié. Aucune lecture du GI ajoutée.

2. Builds et commandlet (jeton UE)

# Geste Résultat Résumé
1 CopieEtat -Lot STM1 avant proc=0 ; alertes GIT attendues (fichiers STM1 et LPKeyboardSubsystem.cpp de KEY2) STM1-B6-AVANT.json
2 Instantané STM1-O2 : 3 sources, puis Content\Heavy\StreetMap\Water (CentralLondon 5BDF4F0A, M_LP_Water D413292C) 5 entrées LifePlay_Backup_5.5\STM1-O2\manifest.csv
3 Build.ps1 -Lot STM1 -EtatDir <absolu> (éditeur) code=0 duree=52s erreurs=0 avertissements=1 unites=3 STM1_Build_20261020-162803.txt
4 LPBuildCityWater … -MaskOnly -DryRun code=0 ; 59 centres ; masque non écrit STM1_LPBuildCityWater_20261020-162902.txt
5 LPBuildCityWater … -MaskOnly code=0 duree=21s ; asset ecrit : /Game/Heavy/StreetMap/Water/CentralLondon_Mask, 59 centres sur 49425 batiments ; maillage d'eau non touche STM1_LPBuildCityWater_20261020-162935.txt
6 Build.ps1 -Lot STM1 -Target LifePlay -Config Development -EtatDir <absolu> code=0 duree=53s erreurs=0 avertissements=1 unites=2 STM1_Build_20261020-163006.txt
7 CopieEtat -Lot STM1 après ; UeState proc=0 parasites=0 verrou=243:libre ; processus=0 STM1-B6-APRES.json

L'avertissement unique des deux builds est le C4701 de LPCameraModeSubsystem.cpp(2378), fichier du lot CAM2 et antérieur à STM1.

Les sorties des commandlets sont passées par le scratchpad (chemin sans espace, leçon d'O3) ; ce chemin est neutralisé dans les résumés.

3. MD5 des assets

Asset MD5 Taille État
Content/Heavy/StreetMap/Water/CentralLondon_Mask.uasset F6F684B295B31298F8FB747F4F5946F4 2 712 o A (seul fichier écrit dans Content, hors git)
Water/CentralLondon.uasset 5BDF4F0A6B3E709DAE9EFCFE8BCA2F6E 391 602 o inchangé
Water/M_LP_Water.uasset D413292C80C8C190766AD83ACFE2E418 5 717 o inchangé
BPs/GI / BPs/MapMarkers / BPs/StreetMap_Static 32FC0A97 / FB72765C / B7F20462 – inchangés (identiques à B5)
StreetMap/CentralLondon / Static/CentralLondon A6C4D9B6 / FBA15A84 – inchangés

find Content -newer <début du build éditeur> ne renvoie que CentralLondon_Mask.uasset. LPKeyboardSubsystem.cpp (KEY2) vaut toujours 0eb6a592 : non touché.

4. Essai en jeu (à faire, sur ordre de l'utilisateur)

Une build d'essai cuite est nécessaire : elle inclut le masque, puisque /Game est cuit en entier.

Sur la carte de Londres, en mode par défaut :

  • plus aucune maison générique sur la Tamise (59 bâtiments visés) ;
  • ponts, jeeps, arbres et quais intacts ;
  • une ligne [LPCity] EAU CentralLondon : masque 59 centres ; … masquees ≈ 59 ; epargnees 0 (seuil 0 m2) ; centres sans instance ≈ 0.

Si le nombre de centres sans instance est élevé, le repère des instances diffère de celui de la carte : à diagnostiquer avant toute retouche.

5. Fichiers

  • Projet : LPCityWaterMask.h (A) ; LPCityWaterSubsystem.h et .cpp (M) ; LPBuildCityWaterCommandlet.cpp (M).
  • Hors git : Content/Heavy/StreetMap/Water/CentralLondon_Mask.uasset (A).
  • Livrables : STM1-SPEC-08.md, STM1-B6-FIN.md, STM1-B6-AVANT.json, STM1-B6-APRES.json, résumés de build et de commandlet ci-dessus.
  • CHG : à réserver (brouillon).

État : O2 implémenté et compilé, jeton UE rendu ; essai en jeu en attente.