6.2 KiB
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, moduleLifePlay) :City,SourceBuildingCount,Centers(centres de boîte, repère de la carte, cm) etAreasM2.- 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 :
LoadMaskest appelé à chaque changement de carte ;HideHousesInWatertraite lesUInstancedStaticMeshComponentdeMapMarkersdont le maillage commence parHouseouSkyscraper. 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 unMarkRenderStateDirtypar 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.het.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.