LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-MZ-IMPL.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

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 : membre MeshZScans (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 pour Person_C), sans valeur codée en dur ;
    • conditions :
      • aucun meuble (OccupyingFnt non 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 ;
    • 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 : membres LastPositions (personne → dernière position vue), OutdoorScale et FastScanTime.
  • 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 LiftSunkPersons est 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.
  • LiftSunkPersons :
    • pour chaque personne retenue, bJustPlaced est vrai si elle est absente de LastPositions (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 exemple OpenSpace) ;
    • 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 ;
      • PlayerBusy pour 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.

3. Ce qui n'a pas été fait

  • Compilation et essai : au build COMMUN-10.
  • Le Blueprint (unOccupyFnt / PlayIdle qui ne rétablissent pas meshZ) : 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