LifePlay-Revival/Docs/Migration/etat/ST/STE/fiches/STE-H10.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.8 KiB

Fiche STE-H10 — Niveau N3 — Modèle prévu (modèle de l'agent lp-cart) | utilisé <modèle déclaré> — Agent lp-cart (SPEC, lecture seule) — Skills lp-mcp (lecture), lp-commandlets (lecture), sk-protocol

1 Objectif : SPEC des correctifs des saccades mesurées par la trace Insights STE-H9 (STE-H9-TRACE.md), en deux volets : (A) cheveux : chargement synchrone des maillages de cheveux à l'apparition / reprise des PNJ (LoadHairMeshIfNeeded → getSkeletalMeshFromPath → GetAsset → FlushAsyncLoading, 285 ms sur 442 ms d'actions latentes) ; (B) fin de scène : SavePreset appelé par DestroyPerson (≈ 110 ms par scène), RevertStripAll → ShowAppropriateGenital → IsGenitalExposed → GetSMBoolForSMC_Cloth (≈ 75 ms, ~190 000 Array_Get), Dress → ClearProxies, reconstruction de l'interface d'actions (TopRight Current, GI.ShowUI → CopyActionsToScroll, ≈ 120 ms). Pour chaque point : options comparées (ex. A : chargement asynchrone Async Load Asset, cache Map<String, SkeletalMesh> dans GI, préchargement à l'entrée d'un lieu ; B : différer / ne faire SavePreset que si le preset a changé, sortir une boucle d'une autre boucle, mettre en cache un résultat, ne reconstruire la liste d'actions que si elle change), avec nœuds nommés, câblage MCP exécutable, effet attendu en ms (à partir de la trace), effet visible, risque ; une question Q-H10-n par choix ; aucun choix tranché. Lot STE, registre STE-TACHES.md, ligne STE-H10. 2 Complexité : a2 b2 c2 d1 e1 f2 = 10 → N3 (aucun) 2b Agent : lp-cart — à invoquer : lp-mcp (§ 3-4, conventions d'écriture), lp-commandlets — outils retirés : aucun 3 Contexte : copie D:\Game\LifePlay-master 5.8, HEAD (GI 16394D43…, Person BE21838A…, TopRight 3DF4DEC4…). Décision de l'utilisateur (2026-10-11) : « Cheveux + fin de scène ». Placement (Big Boss) : écritures après la porte T11 d'U8, derrière C0 (STE-H4-C0-SPEC.md, GI.destroyDummy) ; Person libre (CAM n'y touche pas) ; GI partagé avec CAM (sous-lots B1, B4, B5) : lister précisément les fonctions / graphes de GI touchés. Dumps etat\ST\STE\dumps\ (.txt, locaux) : STE-D9 GI__LoadHairMeshIfNeeded_D9, GI__getSkeletalMeshFromPath_D9, GI__SavePreset_D9 (503 nœuds), GI__CopyActionsToScroll_D9, GI__GetSMBoolForSMC_Cloth_D9, Person__IsGenitalExposed_D9, Person__ShowAppropriateGenital_D9, Person__ClearProxies_D9, TopRight__EventGraph_D9 (906 nœuds ; Current, GenerateRecs), Person__graphes_D9 (liste des 134 graphes) ; GI__EventGraph_V5.txt (GI actuel : événements DestroyPerson, ShowUI), Person__EventGraph_D4.txt (Person inchangé : RevertStripAll, Dress), GI__clearScenePersons_V5.txt, GI__SpawnDummy_D4.txt, GI__LoadMeshIfNeeded_D4.txt. Mesures : STE-H9-TRACE.md (exports scratchpad\h9\), STE-H7-DIAG.md, STE-H8-DIAG.md, STE-H4-DIAG.md. 4 Entrées et questions :

  • A : où et combien de fois les cheveux sont chargés par PNJ (SPAWN, DressSavedActualActual, reprise de mannequin) ; même chemin rechargé plusieurs fois ? (cache) ; le résultat est-il utilisé dans la même trame (asynchrone possible ?) ;
  • B : ce que SavePreset écrit et pourquoi en fin de scène (nécessaire à chaque fois ?) ; structure des boucles d'IsGenitalExposed / GetSMBoolForSMC_Cloth (complexité) ; pourquoi CopyActionsToScroll recrée ~350 widgets ;
  • pour chaque option : liste exacte des graphes modifiés (GI / Person / TopRight), nombre de nœuds, instantanés, critères de VAL et de preuve en jeu (refaire la trace Insights, même parcours : temps des fonctions visées et trames ≥ 50 ms) ;
  • dumps manquants : commande exacte .\Tools\RunCommandlet.ps1 -Lot STE-D10 -Commandlet LPDumpFunction -Args '-BP=<BP> -Fn=<Fn> -Pins -Exec' -EtatDir "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE" ; s'arrêter sur ce point. 5 Pièges : lp-mcp § 3-4 (type_id localisés, indices de broches à relire) ; ne pas changer un comportement visible sans question ; un chargement asynchrone change l'ordre d'exécution (le PNJ peut s'afficher sans cheveux une trame) : le dire ; « établi » / « estimé » partout. 6 Interdits : aucune écriture hors du livrable ; pas d'éditeur, de commandlet, de build ni de jeu ; aucun commit ; aucune écriture dans Content ni Source (+ sk-protocol § 2). 7 Livrable : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-H10-SPEC.md au gabarit SPEC (volets A et B, options, questions Q-H10-n, liste des graphes GI touchés par option), en LF. 8 Critère d'acceptation : au moins une option exécutable par MCP sans improvisation pour A et pour B (ou dumps manquants exacts) ; gain attendu chiffré à partir de la trace ; liste des graphes GI touchés. 9 Budget et arrêt : ≈ 70 tours, pic ≤ 300 k, ≈ 50 min.