5 KiB
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 -- Contentvide. - 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_infosdeCallFunction_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)
break_pins_0.then/_1.execute.break_pins_1.then/_2.execute.break_pins_2.then/VariableSet_0.execute.connect_pins_0.then→_2.execute.connect_pins_2.then→_1.execute.connect_pins_1.then→VariableSet_0.execute.get_node_infosdes 4 nœuds : liens = colonne « après » ; données inchangées (self←FunctionEntry_0.Dummy,NewTransform←CallFunction_3,bTeleport = false).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
ResetVarsvide son corps et ses variables.ResetVarsne lit pas la position de l'acteur (estimé, PEGResetVars: remise à zéro de variables et du maillage) ;K2_SetActorTransformne lit aucune variable remise parResetVars(établi : seules entréesselfetMakeTransformconstant, 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.