5.7 KiB
Fiches STE-H3, STE-H3b, STE-H2 — Niveau N3 (SPEC) / IMPL orchestrateur — Modèle prévu Opus 5.5 | utilisé Opus 5.5 (claude-opus-5-5) — Agent orchestrateur (MCP) — Skills lp-mcp, lp-lot, lp-repo
STE-GARDES-IMPL : gardes G1 à G11 et G-H2 dans GI (2026-10-10)
BUILD-GO de Big Boss (STE-GARDES). Tag STE-GARDES-avant sur 71511a2 (ticket STE-R4). Éditeur headless de 17:19:11 à
17:33:32 (heures relevées), journal Saved\Logs\portage\STE-GARDES_editeur_20261010-171911.log. Appels MCP un par un.
SPEC : STE-H3-SPEC.md (G1-G6), STE-H3b-SPEC.md (G7-G11, § 2.4 bis pour G9), STE-H2-DIAG.md (G-H2, « Correctif proposé »).
Décisions de l'utilisateur : Q1 = A, Q2 = G5 acceptée, Q3 = fiche à part (H3b), Q4 = a, Q5 = a, G9 = oui, H2 = garde + cause (H2b).
Dumps « avant » : STE-D3 identiques ligne pour ligne aux dumps STE-D / STE-D2 (STE-D-INV.md).
1. Fichier modifié
Content/BPs/GI.uasset, trois sous-lots enregistrés l'un après l'autre :
| Sous-lot | CHG | Instantané (état d'avant) | MD5 après | Heure |
|---|---|---|---|---|
| STE-H3 (G1-G6) | CHG-313 | LifePlay_Backup_5.5\STE-H3 : 606EB437… |
62FCCD5B… | 17:26 |
| STE-H3b (G7-G11) | CHG-314 | LifePlay_Backup_5.5\STE-H3b : 62FCCD5B… |
A5A0EDF0… | 17:32 |
| STE-H2 (G-H2) | CHG-315 | LifePlay_Backup_5.5\STE-H2 : A5A0EDF0… |
B8B97C46… (52 540 467 o) | 17:33 |
2. Gardes posées (nœuds créés ; tous les liens relus par get_node_infos avant et après)
| Garde | Graphe | Nœuds créés | Coupure | Chemin « vide » |
|---|---|---|---|---|
| G1 | setActorVar | CallFunction_7 (IsValid), IfThenElse_3 |
FunctionEntry_0.then / IfThenElse_2 |
rien |
| G2 | getActorVar | CallFunction_3 (IsValid), IfThenElse_1 |
FunctionEntry_0.then / VariableSet_0 |
FunctionResult_1 (0.0) |
| G3 | ReturnStatIfNeeded | CallArrayFunction_1 (IsValidIndex), IfThenElse_0, CallFunction_9 (IsValid), IfThenElse_1 |
81822/1019, 1019/7798 |
FunctionResult_7 (deux else) |
| G4 | CallFunction | CallArrayFunction_8, IfThenElse_12, CallFunction_355, IfThenElse_13 |
186/185 |
rien |
| G5 | CallFunction | CallArrayFunction_9, IfThenElse_14, CallFunction_356, IfThenElse_15 |
189/190 |
rien (plus de AI_Untils["0"] ni de ligne « by 0 », Q2) |
| G6 | CallFunction | CallArrayFunction_10, IfThenElse_16, CallFunction_357, IfThenElse_17 |
178/179 |
CallFunction_180 (AddVariable), deux else |
| G7 | CallFunction | CallArrayFunction_11, IfThenElse_18 |
141/142 |
CallFunction_143 (AddVariable) |
| G8 | CallFunction | CallArrayFunction_12, IfThenElse_19 |
150/162 |
rien |
| G9 | CallFunction | CallArrayFunction_13, IfThenElse_20 |
144/163 |
rien (plus d'écriture ActorVars["0"]) |
| G10 | CallFunction | CallArrayFunction_14, IfThenElse_21, CallFunction_358 (IsValid), IfThenElse_22, CallFunction_359 (Map Find, Key = "0"), MakeArray_178, CallFunction_360 (AddVariable, Class = Float) |
200/203 |
rejeu exact : AddVariable(Name, [Map_Find(AI_Untils, "0")], Bool, String, Person) |
| G11 | CallFunctionReturnBool | CallArrayFunction_4, IfThenElse_0, CallFunction_99 (IsValid), IfThenElse_1, CallFunction_98 (hasRelationship, Slot = "0"), VariableSet_51 (Set BoolToReturn) |
177620/VariableSet_57739 |
rejeu exact : BoolToReturn = hasRelationship("0", ActualParameters) → IfThenElse_8994 |
| G-H2 | EventGraph | CallFunction_567 (IsValid), IfThenElse_215 |
CallArrayFunction_231/MacroInstance_207 |
CallFunction_10426 (UpdatePlayerMesh) |
Totaux : 41 nœuds créés (G1-G6 : 20 ; G7-G11 : 19 ; G-H2 : 2), 13 coupures (corrigé d'après STE-VAL, écart E1 : la 1re version annonçait 37 par erreur d'addition ; la table ci-dessus était juste). type_id relus : Utilitaires|IsValid,
Utilitaires|ContrôleDeFlux|Branche, Utilitaires|Tableau|IsValidIndex (entrées TargetArray 0, IndexToTest 1 = 0),
Utilitaires|Carte|Find, Utilitaires|Array|Faireuntableau, Scène|AddVariable, Appelerunefonction|HasRelationship
(nœud |hasRelationship, pur), Variables|Pardéfaut|DéfinirBooltoReturn (nœud |SetBoolToReturn).
3. Écarts
hyper_blueprint_debug_inspectabsent du serveur MCP (déjà noté) : remplacé parcompile_blueprintwarnings_as_errors après chaque groupe (6 fois, OK) et le journal (6 « Compiling Blueprint '/Game/BPs/GI' », 0 ligne LogBlueprint d'erreur ou d'avertissement).- STE-H3b P2 demandait des dumps « avant » neufs après H3 : remplacés par la relecture
get_node_infosde chaque nœud cité dans l'éditeur (aucun écart), H3 n'ayant pas touché ces nœuds. - Les numéros de nœud créés diffèrent des noms de la SPEC (
G4-I, etc.) : correspondance au § 2.
4. Sortie
UeState à 0. CharGen E4C2EEA6… (STF), MainMenu 7292C6BE…, StatMenu 9030531C… inchangés.
git status --short -- Content Config Source = M Content/BPs/GI.uasset (+ ?? Source/LifePlay/LPReadableTextSubsystem.*,
lot LISIB, non touchés).
5. Points à confirmer en VAL
- Dumps après des 6 graphes touchés (setActorVar, getActorVar, ReturnStatIfNeeded, CallFunction, CallFunctionReturnBool,
EventGraph) contre les dumps STE-D3 /
GI__EventGraph_apres-STE-GI.txt: seuls les nœuds et liens du § 2. - CompileAllBlueprints 0/0 ; LPTestStringCompat 3120/0/60.
- Preuve en jeu : Grep
property Person in,Person_24,CallFunc_Array_Get_Item_3[0-3]|_41,CallFunc_GetSkeletalMesh_ReturnValue(pileUpdatePlayerMeshWithMorphs), ligne « by 0 » : à 0 ou en forte baisse (critères des SPEC § 7 et du DIAG H2).
6. Retour arrière (sur accord)
.\Tools\Restore.ps1 -Lot STE-H2 (défait G-H2), -Lot STE-H3b (défait G7-G11 et G-H2), -Lot STE-H3 (défait tout), éditeur
fermé ; ou tag STE-GARDES-avant (ticket RESTORE).