109 lines
7.1 KiB
Markdown
109 lines
7.1 KiB
Markdown
|
|
# 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`.
|