LifePlay-Revival/Docs/Migration/etat/ST/STE/STE-H4-C0-SPEC.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

5 KiB
Raw Blame History

STE-H4-C0-SPEC : téléporter le mannequin avant ResetVars dans GI.destroyDummy (2026-10-11)

Orchestrateur LOT STE (lecture seule, sans copie UE). Source : STE-H4-DIAG.md § 3.6 (voie C0) ; dump dumps\GI__destroyDummy_D4.txt (DD4, 39 nœuds, pris sur GI B8B97C46 ; destroyDummy n'a été touchée ni par F-a, ni par O3, ni par G12, mais n'a pas été redumpée depuis : la relecture P5 ci-dessous fait foi). Décision de l'utilisateur (2026-10-11) : F5 → « C0, correctif minimal ». Placement (Big Boss) : IMPL après la porte T11 d'U8, sauf décision contraire de l'utilisateur.

1. Objectif mesurable

Dans destroyDummy, la chaîne d'exécution actuelle est SetActorHiddenInGame(true) (CallFunction_0) → ResetVars (CallFunction_1, vide le corps) → K2_SetActorTransform vers l'origine (CallFunction_2) → Set Valid = false (VariableSet_0) (DD4:148-170). La téléportation d'un mannequin déjà sans corps met à jour ses 5 composants attachés à des sockets et produit un groupe de 5 lignes F5 (Head ×2, pelvis, chestUpper, hip) dans la trame du DESTROY (STE-H4-DIAG.md § 3.2, établi). Après C0 : SetActorHiddenInGame → K2_SetActorTransform → ResetVars → Set Valid. Attendu : ce groupe disparaît de la trame du DESTROY, soit environ −445 lignes F5 pour un parcours comme J5 (estimé). Les groupes des ≈ 0,67 s suivantes et les lignes CenterBrow restent (hors C0).

2. Fichier touché, ordre

Content/BPs/GI.uasset, fonction destroyDummy, refPath /Game/BPs/GI.GI:destroyDummy.K2Node_<Nom>. Un appel MCP à la fois.

2.0 Préalables

  • P1 : BUILD-GO de Big Boss (après T11 d'U8, sauf décision de l'utilisateur) ; 0 processus étranger (Get-CimInstance).
  • P2 : MD5 de GI = celui de HEAD (16394D438788E986AC23FAEB427402B8 à 4283c13, ou la valeur commitée au moment du GO) ; git status --short -- Content vide.
  • P3 : .\Tools\Snapshot.ps1 -Lot STE-H4 -Path Content\BPs\GI.uasset, MD5 de la copie = P2.
  • P4 : éditeur headless (lp-mcp § 2), load_asset /Game/BPs/GI.
  • P5 : get_node_infos de CallFunction_0, _1, _2, VariableSet_0 : liens = colonne « avant » du § 2.1 ; tout écart → arrêt, rien écrit.

2.1 Liens d'exécution

Lien Avant (DD4) Après
CallFunction_0.then (SetActorHiddenInGame) → _1.execute (DD4:150) → _2.execute
CallFunction_2.then (K2_SetActorTransform) → VariableSet_0.execute (DD4:159) → _1.execute
CallFunction_1.then (ResetVars) → _2.execute (DD4:154) → VariableSet_0.execute
CallFunction_0.execute ← _4.then, IfThenElse_1.then (DD4:149) inchangé

2.2 Étapes MCP (exec : entrée execute 0, sortie then 0, à relire en P5)

  1. break_pins _0.then / _1.execute.
  2. break_pins _1.then / _2.execute.
  3. break_pins _2.then / VariableSet_0.execute.
  4. connect_pins _0.then → _2.execute.
  5. connect_pins _2.then → _1.execute.
  6. connect_pins _1.then → VariableSet_0.execute.
  7. get_node_infos des 4 nœuds : liens = colonne « après » ; données inchangées (self ← FunctionEntry_0.Dummy, NewTransform ← CallFunction_3, bTeleport = false).
  8. compile_blueprint (avertissements en erreurs) ; save_assets /Game/BPs/GI ; fermeture, UeState.ps1 = 0, MD5 relevé.

Volume : 0 nœud, 3 break_pins, 3 connect_pins ; destroyDummy reste à 39 nœuds.

3. Comportement avant / après

  • Même ensemble d'actions, ordre de deux appels inversé : le mannequin est déplacé à l'origine (caché) avant que ResetVars vide son corps et ses variables. ResetVars ne lit pas la position de l'acteur (estimé, PEG ResetVars : remise à zéro de variables et du maillage) ; K2_SetActorTransform ne lit aucune variable remise par ResetVars (établi : seules entrées self et MakeTransform constant, DD4:155-165).
  • Le maillage est encore présent pendant la téléportation : les composants attachés trouvent leurs sockets, pas de ligne F5 dans cette trame. bSweep = false : aucune collision évaluée.
  • Effet visible : aucun (le mannequin est déjà caché par CallFunction_0).

4. Repli

Avant commit : .\Tools\Restore.ps1 -Lot STE-H4 éditeur fermé, MD5 = P2. Après commit : git revert du commit du ticket.

5. Critères de VAL et de preuve

  • VAL (lp-validator) : dump -BP=GI -Fn=destroyDummy -Pins -Exec : 39 nœuds, 3 liens d'exécution changés comme au § 2.1, aucun autre écart ; CompileAllBlueprints 418/418 0/0 ; LPTestStringCompat 3120/0/60.
  • Preuve en jeu (parcours J5) : dans la trame de chaque DESTROY…Slot, plus de groupe F5 (Head ×2, pelvis, chestUpper, hip) attribué au mannequin détruit ; compte F5 total en baisse d'environ 5 × (nombre de DESTROY) ; aucun plantage ; à lire avec la mesure STE-H4 (§ 3.7 du DIAG).

6. Questions

Aucune : l'ordre est la seule modification, décidée par l'utilisateur. Le placement (après T11 d'U8) est décidé par l'utilisateur via Big Boss.