LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-B2qb-IMPL.md

71 lines
3.9 KiB
Markdown
Raw Normal View History

# Fiche STG-B2qb-IMPL — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5 — Agent orchestrateur STG (session principale) — Skills lp-lot, sk-change-safety
# STG-B2qb-IMPL : B2q-b1, plancher à l'échelle d'origine, plafond 25, racine au témoin (2026-10-14)
GO de Big Boss du 2026-10-14 pour B2q-b1 (`STG-B2q-DIAG.md` § 8.3), avec le complément du témoin (§ 8.4). Sans UE ni compilation ; VAL
statique par un agent distinct ; il entre dans COMMUN-9. B2q-b2 à b4 sont notés par Big Boss pour après l'alpha. Lot STG, registre
`STG-TACHES.md`.
## 1. Instantané
`Snapshot.ps1 -Lot STG-B2qb` (état B2q-a, build COMMUN-8) : `LPDirectControlSubsystem.cpp` `7448C8FB1091BD2A994CCA4AA7F8B7A6`, `.h`
`5F3492917B8202B267D8879E4613966B` (`D:\Game\LifePlay_Backup_5.5\STG-B2qb\manifest.csv`).
## 2. Changements (`STG-B2qb.diff` ; `git diff --no-index --numstat` : .cpp 19 ajoutées / 5 retirées, .h 2 / 0)
`LPDirectControlSubsystem.h` : le membre `OriginalBoundsScale` (`TMap<TWeakObjectPtr<UPrimitiveComponent>, float>`) contient l'échelle
d'origine des bornes de chaque corps.
`LPDirectControlSubsystem.cpp` (CRLF, 1 738 CR pour 1 738 LF), dans `FitPersonBounds` :
- **plafond** : `MaxScale` passe de 4 à **25** ;
- **plancher** : à la première vue d'un corps, sa `BoundsScale` est relevée **avant toute retouche** et ramenée dans [1 ; 25]. Dans le jeu
d'origine, elle vaut 3 (journal COMMUN-8 : `3.00 -> …`). Le facteur est ensuite `Clamp(besoin par axe, origine, 25)`. **Le corps ne
descend donc plus sous son échelle d'origine** : plus de ligne `-> 1.00` pour une personne debout ;
- les entrées de corps détruits sont retirées de `OriginalBoundsScale` à chaque balayage, comme pour `MeasuredSeats` ;
- **témoin** : la ligne `T-cull mesure` se termine par `; racine <os 0> a N cm du bassin, a M cm du composant` ;
- le commentaire d'en-tête de la fonction est mis à jour (bornes [origine ; 25], raison du plafond).
Inchangé :
- le besoin par axe, avec une tolérance de 0,3 demi-étendue ;
- l'hystérésis de 10 % ;
- la boucle unique toutes les 0,5 s sur les Person visibles ;
- l'alerte T-cull, au plus une par seconde ;
- aucun effet sur les collisions ni les tracés.
## 3. Coût attendu
Au café, les personnes assises (racine à ≈ 3 m du bassin) montent à S ≈ 23. Leurs bornes deviennent assez grandes pour qu'elles ne soient
plus jamais éliminées (ni frustum ni occlusion), ombres comprises : 4 à 6 corps Daz au café. Debout, rien ne change par rapport à
l'origine (S = 3). C'est à mesurer à l'essai.
## 4. Points à confirmer (fiche d'essai COMMUN-9)
1. **Café** (`fnt_new048`) et **bar** :
- C2 tout autour des personnes assises, joueur compris : plus aucune disparition, et aucune alerte `T-cull … non rendue` ;
- au journal : `B2q-a : … BoundsScale 3.00 -> 2x.xx` au café, et `T-cull mesure … racine … a ≈ 290-300 cm du bassin`.
2. **Debout** : aucune ligne `B2q-a … -> 1.00`.
3. **Coût** : lignes `LPDebug hitch` au café et au bar, comparées à COMMUN-8 (même endroit) ; `stat unit` si la console est accessible.
## 5. Ce qui n'a pas été fait
- Compilation et essai : au build COMMUN-9.
- B2q-b2 (recentrer `RootBoneTranslation`), B2q-b3 (asset physique en mémoire) et B2q-b4 (animations) : après l'alpha.
## 6. MD5 après
| Fichier | MD5 |
|---|---|
| `LPDirectControlSubsystem.cpp` | `4CF589B266FF61C8D61AE68B323FD381` |
| `LPDirectControlSubsystem.h` | `A82ED5CFFD97152B9237034BD7F49F4A` |
## 7. Retour arrière (proposé, jamais lancé sans accord)
`Restore.ps1 -Lot STG-B2qb`, qui ramène l'état B2q-a (`7448C8FB…` / `5F349291…`). Avant tout, prendre l'instantané `STG-B2qb-retour`.
## 8. Fichiers à commiter
M `Source/LifePlay/LPDirectControlSubsystem.cpp`, M `Source/LifePlay/LPDirectControlSubsystem.h`, A `Docs/Migration/etat/ST/STG/STG-B2qb-IMPL.md`,
A `Docs/Migration/etat/ST/STG/STG-B2qb.diff`.
Tours : 5