LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-C54-DIAG.md

109 lines
7.1 KiB
Markdown
Raw Normal View History

# Fiche STG-C54 — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
DIAG en lecture seule (demande de Big Boss, 2026-10-14 ; gel des scènes de sexe levé par l'utilisateur pour l'alpha) : **C5-4, couple
qui flotte au-dessus du lit**. Scène Carly / John, chambre de Carly, mode Scene, vers 22:10-22:14 UTC. Lot STG, registre `STG-TACHES.md`.
Sans UE, sans écriture hors de ce livrable.
## 1. Sources
| Repère | Fichier | MD5 |
|---|---|---|
| J5 | `D:\Game\LifePlay_Backup_5.5\COMMUN-5\essais\LifePlay_commun5_session1_BOSS.log` | `9c1ebcdc…` |
| J4a / J4b | `…\COMMUN-4\essais\LifePlay_commun4_session1_BOSS.log` / `session2` | `4b039fd2…` / `36974dfe…` |
| J3, J2 | `…\COMMUN-3\essais\LifePlay_commun3_session1_definitif_BOSS.log`, `…\COMMUN-2\essais\LifePlay_commun2_definitif_BOSS.log` | `27e654cc…`, `3f2355f4…` |
| C | `Source/LifePlay/LPShowCoupleSubsystem.cpp` (805 lignes, commit `04b0535`, non modifié depuis) ; `Plugins/LPAnimCore/…/LPCoupleSim*` | — |
## 2. Ce que montre le journal (établi)
- 22:10:11.546 : « fnt_chair02-f-0-sit unoccupied by John », puis « … by Carly ». Les deux quittent leur chaise pour la scène.
- 22:10:11.639 : « Show couple : branche (PlayerCharacter + Person_C_2147481884) » ; « Pawn chambre Block=14 … Ignore->Block=4 ».
- Boîte « pose » (os vivants des deux maillages) : centre relatif Z = -60,9, étendue X 102,9 / Y 44,5 / **Z 32,2**.
- C'est une forme couchée de 2 m de long et 64 cm de haut : la pose `SF_ft07` est déjà jouée.
- Relevés M1 de 22:10:12 à 22:14 (62) :
- les deux personnages au même point, centre de capsule **z = 34,7 / 34,8** ; `NoCollision` ;
- meneur `MOVE_Walking`, partenaire `MOVE_None` ;
- `meshZ -88,0`, `anim single:SF_ft07_0/1` ;
- trace de visibilité complexe (M1c) arrêtée sur `Room_C_0.NODE_AddStaticMeshComponent-0` (le lit) à **-55,9** ;
- sol de la pièce (`Box`) à -102,2 ;
- le couple a été déplacé huit fois (x de -3131683 à -3131778, y de -14967190 à -14967271), toujours au-dessus du lit, z
inchangé.
- Hauteurs :
| Repère | Hauteur | Calcul |
|---|---|---|
| racine des maillages | **-53,2** | 34,8 − 88,0 |
| dessus du lit (trace complexe) | -55,9 | 2,7 cm sous la racine |
| os les plus bas (boîte de 22:10:11) | -58,3 | 34,8 − 60,9 − 32,2 |
| os les plus hauts | 6,1 | |
| sol de la pièce | -102,2 | |
| hauteur du lit | 46,3 | -55,9 − (-102,2) |
À 22:10:11, les corps (os) **descendent 2,4 cm sous la surface touchée par la trace** : d'après les données, ils reposent sur le lit,
ils ne flottent pas.
## 3. Le même placement depuis COMMUN-2 (établi)
Hauteur du centre du joueur pendant les scènes de couple (`NoCollision`), par essai :
| Essai | Animations | z | Surface sous le couple (trace) |
|---|---|---|---|
| COMMUN-2 | `MF_kol07`, `MF_sp02/04/14`, `MF_layBJ10`, `FM_layFD*`, `MF_Na208`, `MF_fp02` | 34,8 | 5,0 : un objet au-dessus de la racine, pas le lit |
| COMMUN-3 S1 | `MF_kol07`, `MF_sp01` | 34,8 | -55,9 |
| COMMUN-4 S1 | `MF_kol07`, `MF_cg204`, `MF_fp05`, `MF_bedADG`, `MF_fp01` | **42,0** | -49,1 |
| COMMUN-4 S2 | `SF_ft07`, `FF_gf03` | 34,8 | -55,9 |
| COMMUN-5 | `SF_ft07` | 34,7 / 34,8 | -55,9 |
- La racine est **toujours** posée à environ 3 cm au-dessus de la surface du lit (2,7 et 3,1 cm), quelle que soit l'animation, depuis
COMMUN-2.
- Ce placement est fait par les Blueprints : le chemin `Sex` / `moveToBedIfPossible` de Room, qui lit `GI.ActorTransforms` (voir
`STG-C5-CART.md` § 1). `LPShowCoupleSubsystem` ne fixe pas la hauteur de départ : il mesure la boîte (`FitToBodies`), puis la garde
pendant les déplacements (`KeepTogether`, avec le lit franchissable `IsBedMesh`, sans gravité).
- **Aucun correctif STG n'y joue** :
| Correctif | Raison |
|---|---|
| KO3c | dans `Walk`, qui n'est pas appelé quand `SexOn` est vrai |
| S-F5 / S-F5j | en extérieur seulement ; aucun relevage quand `SexOn` est vrai ; ici la pièce est intérieure (échelle Z 0,2) |
| S-F4b | en extérieur seulement |
| M1c | mesure seulement |
| B7-a | `Show`, garde `SexOn` |
| K8-a | places des meubles, pas le lit de la scène |
Le défaut est donc **d'origine** pour STG : un placement Blueprint inchangé depuis le portage, et `LPShowCoupleSubsystem` inchangé
depuis `04b0535`.
## 4. Pourquoi l'utilisateur voit le couple flotter (estimé, deux hypothèses)
Les données de 22:10:11 disent « au contact ». La capture dit « plusieurs dizaines de centimètres au-dessus du matelas ». Deux lectures
sont possibles, et le journal ne permet pas de trancher :
- **H1, décalage propre à l'animation** : la mesure de 22:10:11 est prise à la première image de `SF_ft07`. Si l'animation monte ensuite
le bassin (cycle) ou si la pose de référence diffère, les corps s'élèvent pendant la lecture. M1 ne relève que la capsule et la racine,
pas les os. Une animation créée pour une racine au sol, avec la hauteur du lit déjà incluse, donnerait environ 46 cm de trop (la hauteur
du lit). C'est l'ordre de grandeur décrit.
- **H2, matelas plus bas que la surface tracée** : la trace complexe touche peut-être, à ce point, une partie du lit plus haute que le
matelas (cadre, couverture, tête de lit). Les corps reposeraient alors sur cette surface, au-dessus du matelas visible.
## 5. Mesure proposée (pour trancher, faible coût)
**M1d** (≈ 20 lignes dans `LPDebugSubsystem`, ligne `COUPLE` du relevé, seulement quand `SexOn` est vrai) :
- os le plus bas et os du bassin (Z monde) de chaque maillage ;
- surface sous le bassin (trace complexe vers le bas, en ignorant les deux personnages) ;
- nom de l'animation et position dans le cycle.
Un essai de 5 min sur deux ou trois animations (lit et sol) suffit à départager H1 et H2. Pas d'asset, 1 build.
## 6. Correctif proposé (après M1d), estimation
| Id | Geste | Coût | Risque |
|---|---|---|---|
| C54-a (si H1) | **Recalage vertical au contact** : à chaque changement d'animation de la scène, puis toutes les 0,5 s, abaisser ou monter la racine du couple pour que l'os le plus bas des deux corps soit à 1 cm au-dessus de la surface trouvée par une trace vers le bas (lit ou sol). Seulement en scène de couple, avec une hystérésis de 5 cm | ≈ 40 lignes C++ dans `LPShowCoupleSubsystem` (`FitToBodies` / `KeepTogether`), N3, VAL, 1 build, essai sur 5 animations | moyen : poses volontairement hautes (debout sur le lit, à genoux), petites oscillations ; fichier hors STG à ce jour (lot ShowCouple) |
| C54-b (si H1, données) | Décalage Z par animation, dans une table de données (`SF_ft07` −46 cm, etc.) | 1 table, quelques lignes C++, mesure de chaque animation concernée | faible pour les animations mesurées ; les autres non couvertes |
| C54-c (si H2) | Prendre comme surface le dessus du matelas (trace limitée au maillage du lit, ou décalage propre au lit) | ≈ 15 lignes, plus une mesure par lit | faible |
Recommandation : **M1d d'abord** (une session), puis C54-a ou C54-c selon le résultat. C'est après les façades et S-F5k, qui restent
prioritaires.
## 7. Fichiers à commiter
`Docs/Migration/etat/ST/STG/STG-C54-DIAG.md`.