4.3 KiB
Fiche STC-T5 — Niveau N3 — Modèle prévu orchestrateur (Opus 5.5) | utilisé claude-opus-5-5 — Agent orchestrateur — Skills lp-mcp, lp-lot
STC-T5 : Blueprints MainMenu et GI par MCP (2026-10-10)
Copie D:\Game\LifePlay-master 5.8, éditeur 5.8.3 rouvert après STC-T4 (build code 0), outils Epic (UMGToolSet,
BlueprintTools, ObjectTools, AssetTools) ; lecture et contrôle par HyperAIStudio (hyper_diagnose). Instantané :
D:\Game\LifePlay_Backup_5.5\STC\manifest.csv (MainMenu 8F3730CD…, GI 0D1F8EDB…, pris avant toute écriture).
1. MainMenu (/Game/UI/MainMenu) — SPEC § 3
| Étape | Action | Preuve |
|---|---|---|
| Nœuds retirés | ComponentBoundEvent_207 (OnValueChanged SpinBoxCameraSpeed) + MacroInstance_0 (IsValid), VariableGet_59 (GI), VariableSet_126 (CameraSpeed) ; ComponentBoundEvent_61 (OnValueChanged SpinBoxSexDurationMultiplier) + MacroInstance_36, VariableGet_424, VariableSet_5 |
get_connected_subgraph : deux îlots fermés de 4 nœuds ; find_nodes sur les 10 graphes : aucune autre référence ; après suppression : 0 |
| Widgets retirés | RemoveWidget SpinBoxCameraSpeed, SpinBoxSexDurationMultiplier (pas ReplaceWidgetWithTemplate, qui conserve les liaisons) |
true / true |
| Widgets ajoutés | HorizontalBox_4 : [TextBlock_11, SizeBoxCameraSpeed (WidthOverride 260) > SliderCameraSpeed, TextCameraSpeedValue] ; HorizontalBox_0 : [Text, SpinBoxSexDuration] |
relecture : slider Min 1, Max 7, StepSize 1, MouseUsesStep, Value 3 ; SpinBox Min 0.2, Max 10, glisser 0.2-10, Value 2, style / police / couleur recopiés de SpinBoxSceneFrequency ; texte : police de TextBlock_11, « 3 » |
| Gestionnaire caméra | OnValueChanged(SliderCameraSpeed) (ComponentBoundEvent_30) → SetCameraSpeed(GetGameInstance, Value) (CallFunction_66, _67) → TextCameraSpeedValue.SetText(ToText(Round(Value))) (_70, _68, _69, VariableGet_45) |
get_node_infos : toutes broches reliées comme prévu |
| Gestionnaire durée | OnValueCommitted(SpinBoxSexDuration) (ComponentBoundEvent_31) → Branche(IsValid(GI)) (IfThenElse_8, CallFunction_71, VariableGet_46) → GI.SexDurationMult = InValue (VariableSet_27) ; aucun gestionnaire sur OnValueChanged |
idem |
| Construct | Set GI (VariableSet_2904) → SliderCameraSpeed.SetValue(GetCameraSpeed()) (_72, _77) → TextCameraSpeedValue.SetText(ToText(Round(GetCameraSpeed()))) (_74, _75, _76) → SpinBoxSexDuration.SetValue(GI.SexDurationMult) (_73, VariableGet_53, _50) → UpdateDonors (_1278, inchangé ensuite) |
relecture de la chaîne |
| Écart à la SPEC § 3.3 | le slider lit l'ini (GetCameraSpeed) et non GI.CameraSpeed : LoadSettings (et donc ApplyCameraSpeedAtStartup) ne s'exécute qu'au lancement d'une partie (DelayedStart, appelé seulement par 4 boutons de MainMenu) ; à l'écran titre GI garde ses défauts CDO. L'ini fait foi (D4) : affichage juste à l'écran titre comme en partie. |
find_nodes « DelayedStart » ; remontée LoadSettings ← BeginPlay ← BeginPlay ← DelayedStart |
| Compilation | compile_blueprint (warnings_as_errors) puis hyper_diagnose : up_to_date, 0 avertissement au journal ; save_assets |
needs_attention 0, dirty 0 |
| Liaisons | recherche binaire dans le .uasset enregistré : SpinBoxCameraSpeed 0, SpinBoxSexDurationMultiplier 0 occurrence ; SliderCameraSpeed 7, SpinBoxSexDuration 7, LPUserSettingsLibrary 2 |
MD5 après la 1re sauvegarde FFD62DC9… (2 172 009 o) |
2. GI (/Game/BPs/GI) — SPEC § 4
find_nodes « LoadSettings » sur les 377 graphes : 2 nœuds (définition CustomEvent_3270, seul appel CallFunction_1007).
Lien 1007.then → CallFunction_186 rompu ; inséré ApplyCameraSpeedAtStartup (CallFunction_448, GameInstance ← Self_0) :
CallFunction_80 → 1007 (LoadSettings) → 448 → 186. 186.execute n'avait pas d'autre entrée. Compilation up_to_date,
0 ligne d'avertissement GI au journal ; enregistré.
3. Constat hors périmètre (estimé, à confirmer)
LoadSettings ne s'exécute qu'au lancement d'une partie : un réglage changé à l'écran titre (hors caméra, désormais dans
l'ini) est écrasé par GameSettings.sav au lancement suivant, sauf si une sauvegarde l'y a écrit. Comportement d'origine ;
à signaler au lot STF (12 SpinBox) et à l'utilisateur.