4.9 KiB
Fiche STG-MZ-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-MZ-IMPL : M-Z (hauteur du maillage au lever) et S-F5p (relevage dès la pose) (2026-10-14)
GO de Big Boss du 2026-10-14 (STG-COMMUN9-DIAG.md § 4). Sans UE ni compilation ; VAL statique par un agent distinct ; il entre dans
COMMUN-10. Lot STG, registre STG-TACHES.md.
Gardes demandées :
- M-Z :
- jamais pendant une animation de meuble, une scène de sexe ou une scène ;
- seulement quand la Person est debout, sans meuble, depuis 1 s ;
- le gabarit est relu par classe, pas codé en dur.
- S-F5p :
- la garde de vitesse nulle est conservée ;
- pas de relevage pendant la marche ni sous un menu.
1. Instantané
Snapshot.ps1 -Lot STG-MZ (D:\Game\LifePlay_Backup_5.5\STG-MZ\manifest.csv) :
| Fichier | MD5 avant |
|---|---|
LPDirectControlSubsystem.cpp / .h |
4CF589B2… / A82ED5CF… |
LPOutdoorRoomSubsystem.cpp / .h |
9DCF0A35… / 60FCE1DE… |
2. Changements (STG-MZ.diff ; numstat : DirectControl .cpp 33/0, .h 2/0 ; OutdoorRoom .cpp 34/1, .h 5/0)
2.1 M-Z (LPDirectControlSubsystem, CRLF)
.h: membreMeshZScans(TMap<TWeakObjectPtr<AActor>, int32>).FitPersonBounds(boucle existante, toutes les 0,5 s, sur les Person visibles) :- nettoyage des entrées détruites ;
bSceneRunning = ScenePlaying(GI) || MenuWhy == "Scene_C": une scène de sexe ou une boîte de scène bloque M-Z ;- pour chaque Person, la hauteur de gabarit est lue dans
Person->GetClass()->GetDefaultObject<ACharacter>()->GetMesh()->GetRelativeLocation().Z, c'est-à-dire le gabarit de sa classe (-90 attendu pourPerson_C), sans valeur codée en dur ; - conditions :
- aucun meuble (
OccupyingFntnon valide : pas d'animation de meuble en cours) ; - pas de scène ;
- capsule en collision (exclut les corps du sexe, en
NoCollision) ; - écart de plus de 1 cm entre la hauteur relative du maillage et celle du gabarit ;
- aucun meuble (
- 2 balayages de suite (1 s), puis
SetRelativeLocation(X, Y, Zgabarit)(X et Y inchangés). Une ligne de journal :M-Z : <Person> maillage relatif Z -80.4 -> -90.0 (gabarit Person_C), debout sans meuble. Le compteur est remis à zéro dès qu'une condition manque.
Note : currentAnimation (Blueprint) n'est pas utilisé comme garde. Il reste à fnt_… après le lever (journal COMMUN-9 : joueur
debout, currentAnimation=fnt_new048-f-0-sit) et bloquerait la correction. Le témoin d'animation de meuble est OccupyingFnt.
2.2 S-F5p (LPOutdoorRoomSubsystem, LF)
.h: membresLastPositions(personne → dernière position vue),OutdoorScaleetFastScanTime.Tick:- quand la pièce extérieure change (échelle différente, ou retour de l'intérieur), ouverture d'une fenêtre de 3 s pendant laquelle
LiftSunkPersonsest appelé à chaque tick (en plus du balayage de 0,5 s, qui garde les décors), et positions oubliées ; - en intérieur : remise à zéro.
- quand la pièce extérieure change (échelle différente, ou retour de l'intérieur), ouverture d'une fenêtre de 3 s pendant laquelle
LiftSunkPersons:- pour chaque personne retenue,
bJustPlacedest vrai si elle est absente deLastPositions(première vue dans la pièce) ou si elle a sauté de plus de 50 cm depuis le balayage précédent (téléportation par le Blueprint, par exempleOpenSpace) ; - une personne qui vient d'être posée passe la garde des 3 ou 4 examens immobiles et peut être relevée dès ce premier examen ;
- inchangé :
- la garde de vitesse (> 1 cm/s :
continue) et le seuil de 15 cm ; PlayerBusypour le joueur (pas sous un menu, ni pendant qu'il pilote) ;- les gardes de meuble, de scène et de sexe ;
- S-F5k, S-F5m et S-F5n.
- la garde de vitesse (> 1 cm/s :
- pour chaque personne retenue,
3. Ce qui n'a pas été fait
- Compilation et essai : au build COMMUN-10.
- Le Blueprint (
unOccupyFnt/PlayIdlequi ne rétablissent pasmeshZ) : versé pour STE par Big Boss, après l'alpha. - STG-POST2 (S-F2) : après l'alpha.
4. Points à confirmer (fiche COMMUN-10)
Voir fiches\STG-COMMUN10-BUILD.md, cas 1 à 3.
5. MD5 après
| Fichier | MD5 |
|---|---|
LPDirectControlSubsystem.cpp |
5F9D7E00402688822687E7EB32979BD1 |
LPDirectControlSubsystem.h |
01D5EA3C82C2A547065C7BC391B9B430 |
LPOutdoorRoomSubsystem.cpp |
DC68ED8AF8A635E54AA003B84C565BE9 |
LPOutdoorRoomSubsystem.h |
6A3EDD7339DDA483DAEF497372951188 |
6. Retour arrière (proposé, jamais lancé sans accord)
Restore.ps1 -Lot STG-MZ (ou -Only sur un des quatre fichiers). Avant tout, prendre l'instantané STG-MZ-retour.
7. Fichiers à commiter
M Source/LifePlay/LPDirectControlSubsystem.cpp, M Source/LifePlay/LPDirectControlSubsystem.h, M Source/LifePlay/LPOutdoorRoomSubsystem.cpp,
M Source/LifePlay/LPOutdoorRoomSubsystem.h, A Docs/Migration/etat/ST/STG/STG-MZ-IMPL.md, A Docs/Migration/etat/ST/STG/STG-MZ.diff.
Tours : 6