31 lines
4.3 KiB
Markdown
31 lines
4.3 KiB
Markdown
|
|
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.
|