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

STE-H5c-IMPL : gardes O1 (Room), O3 (clearScenePersons) et G12 (AddVariable) — 2026-10-10

Orchestrateur LOT STE ; BUILD-GO étapes 1-2 de Big Boss ; décisions de l'utilisateur : Q-H5c-2 = « O1 + O3, ciblées » (après C1, STE-J4.md § 8), G12 = STE-H3c (Q1 = A, Q-H3c-2 = « seulement si un reste »). SPEC : STE-H5c-DIAG.md (tableau des options, O1 / O3), STE-H3c-SPEC.md § 2.2 bis (G12).

1. État de départ et instantanés (éditeur fermé)

  • GI = M1 4773054E738A0AB166ED1971FD4FA889 (F-a, non commité) ; Room = D051CE9465FCEB8021F3030BF569F626 (5 723 964 o, propre, dernier commit 17bf1c7) ; 0 processus.
  • Snapshot.ps1 -Lot STE-H5c : D:\Game\LifePlay_Backup_5.5\STE-H5c\Content\BPs\GI.uasset (4773054E) et ...\Room.uasset (D051CE94) ; Snapshot.ps1 -Lot STE-H3c : D:\Game\LifePlay_Backup_5.5\STE-H3c\Content\BPs\GI.uasset (4773054E). MD5 des copies contrôlés.

2. Écritures MCP (éditeur headless lancé 23:12:28, un appel à la fois)

Journal scratchpad\editor-STE-H5c.log (non suivi). Avant chaque save_assets, contrôle : seul l'éditeur de cette session tourne.

O1 — Room EventGraph

  • Relus : CallFunction_235 (Scène|GetSpecific, then → CallFunction_199.execute, PersonToReturn sortie 1 vers 12 entrées) ; CallFunction_199 (Utilitaires|Carte|Add, execute ← _235.then) ; Knot_1 (reroute, entrées ← IfThenElse_44.then, _40.else, _41.else, _43.else, CallFunction_255.then ; sortie → MacroInstance_26) : Knot_1 est le chemin de saut existant (le else de IfThenElse_43, juste avant GetSpecific, y mène déjà).
  • Créés : K2Node_CallFunction_62 (Utilitaires|IsValid, fonction pure, Object 0 → ReturnValue 0) et K2Node_IfThenElse_73 (Branche).
  • break_pins _235.then / _199.execute ; _235.then → _73.execute ; _235.PersonToReturn → _62.Object ; _62.ReturnValue → _73.Condition ; _73.then → _199.execute ; _73.else → Knot_1.InputPin. Relu conforme.
  • Compilation (avertissements en erreurs) sans erreur ni avertissement (journal 21:14:07 UTC) ; save_assets true (21:14:15).

O3 — GI.clearScenePersons

  • Relus : MacroInstance_0 (ForEachLoop, LoopBody → CallFunction_13.execute seul, Array Element sortie 1 vers 13 entrées) ; CallFunction_13 (clearDaily, then → IfThenElse_4).
  • Créés : K2Node_CallFunction_18 (Utilitaires|IsValid) et K2Node_IfThenElse_8 (Branche).
  • break_pins MacroInstance_0.LoopBody / _13.execute ; LoopBody → _8.execute ; Array Element → _18.Object ; _18.ReturnValue → _8.Condition ; _8.then → _13.execute ; _8.else vide (élément nul : tour suivant de la boucle). Relu conforme.

G12 — GI.AddVariable

  • Relus : IfThenElse_3951 (then → MacroInstance_1960.exec seul), MacroInstance_1960 (Utilities|IsValid, exec = entrée 0, et non 1 comme l'écrit le § 2.2 bis étape 4), CallArrayFunction_4346 (4 liens entrants), BreakStruct_1527 (Person_24_… = sortie 6, → GetArrayItem_2453.Array).
  • Créés : K2Node_CallArrayFunction_1 (Utilitaires|Tableau|IsValidIndex, TargetArray 0, IndexToTest 1 = 0 relu, ReturnValue 0) et K2Node_IfThenElse_0 (Branche).
  • break_pins _3951.then / _1960.exec ; _3951.then → _0.execute ; BreakStruct_1527.Person_24_… (6) → _1.TargetArray ; _1.ReturnValue → _0.Condition ; _0.then → _1960.exec ; _0.else → _4346.execute (5e lien entrant). Relu conforme (« Après » du § 2.2 bis).
  • Compilation de GI (avertissements en erreurs) sans erreur ni avertissement (21:15:28) ; save_assets true (21:15:43).

Éditeur fermé (Stop-Process 28948), UeState.ps1 = 0.

3. Résultat

Fichier Avant Après
Content/BPs/GI.uasset M1 4773054E… (52 545 296 o) M3 16394D438788E986AC23FAEB427402B8 (52 553 784 o)
Content/BPs/Room.uasset D051CE94… (5 723 964 o) E8F58B2A4A79DA0D62D8FACC18411CE8 (5 727 427 o)

Volume : 6 nœuds (O1 2, O3 2, G12 2), 3 break_pins, 14 connect_pins (O1 5, O3 4, G12 5 ; « 15 » corrigé après la VAL, écart E1), 0 set_pin_value. Nœuds attendus aux dumps de VAL : Room EventGraph 1008 → 1010, clearScenePersons 56 → 58, AddVariable 49 → 51 ; GI EventGraph inchangé (6234).

Écart à la SPEC : O1 et O3 posés en fonction pure IsValid + Branche (2 nœuds chacun, modèle de G-H2, CHG-315), au lieu de la macro IsValid (1 nœud) du DIAG : find_node_types « IsValid » donne Utilitaires|IsValid = fonction pure ; même sémantique (valide → chemin d'origine, nul → saut / tour suivant).

Repli : .\Tools\Restore.ps1 -Lot STE-H5c éditeur fermé (GI = M1, Room = D051CE94) ; G12 seule : -Lot STE-H3c (GI = M1, défait aussi O3) ; tout STE-H5b/H5c/H3c : -Lot STE-H5b (GI = B8B97C46) puis -Lot STE-H5c pour Room.