LifePlay-Revival/Docs/Migration/etat/ST/STF/STF-T0-CART.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

7.1 KiB
Raw Blame History

Fiche STF-T0 — Niveau N1 — Modèle prévu orchestrateur STF (Opus 5.5) | utilisé claude-opus-5-5 — Agent orchestrateur — Skills lp-lot, lp-mcp, sk-protocol

STF-T0 : les 12 SpinBox de MainMenu liées à GI (hors caméra / durée), carte préalable (2026-10-10)

Copie D:\Game\LifePlay-master 5.8 (branche ue5.8, HEAD 20620f6), pendant le gel STC : aucune écriture, aucun outil d'écriture MCP. Sources : etat\ST\STC\STC-T0-CART.md (bornes, défauts GI), diagnostic side-session-notes\local_b6d8fc6e-…\STC-reponse-fable.md § 1.1 (liaisons, lecture binaire de l'asset), dump etat\ST\STB\dumps\MainMenu__EventGraph.txt (2026-10-09, antérieur à CHG-294 : CHG-294 n'a retiré que OnInitialized ; gestionnaires SpinBox réputés inchangés, à relire par get_node_infos après le gel, § 4), source Source\LifePlay\LPSettingsSubsystem.cpp. Deux appels MCP en lecture seule (list_toolsets, ObjectTools.list_properties sur /Game/UI/MainMenu.MainMenu), éditeur de la session STC, aucune autre session MCP active.

1. Les 12 couples (établi : bornes et défauts STC-T0, liaisons diagnostic § 1.1)

# SpinBox Variable GI Min / Max Défaut GI Liaison Value Gestionnaire OnValueChanged (n°) Chaîne écrite (dump)
1 ChildGrowthMult ChildGrowthMultiplier 0.01 / 10000 1 Property GI.ChildGrowthMultiplier 6 IsValid (Macro_2) → Set (VariableSet_1) ; GI = VariableGet_29 (partagé avec 13, 17)
2 ShadeDepth ShadeDepth 0 / 1 0.5 Property GI.ShadeDepth 118 IsValid (Macro_40) → Set (VariableSet_106) → Cast MID du blendable [1] du PostProcessVolume de GI → SetScalarParameterValue('ShadeDepth', valeur), échec → PrintString 'Cast failed'
3 SpinBoxBGA Vol_BGA 0 / 5 0.5 Property GI.Vol_BGA 20 IsValid (Macro_10) → Set (VariableSet_16) ; GI = VariableGet_1 (partagé avec 21, 22, 23)
4 SpinBoxMarkerSize MarkerSize 1 / 100 28 Property GI.MarkerSize 13 IsValid (Macro_5) → Set (VariableSet_6) ; OnValueCommitted existant (15) : RetriggerableDelay 2 s → GI.SpawnMapMarkers(false)
5 SpinBoxMoan Vol_Moan 0 / 5 1 Property GI.Vol_Moan 23 IsValid (Macro_8) → Set (VariableSet_19)
6 SpinBoxPhysicsMult PhysicsMult 0 / 100 1 Property GI.PhysicsMult 17 IsValid (Macro_7) → Set (VariableSet_11)
7 SpinBoxSceneFrequency SceneFrequency 0.2 / 100 10 Property GI.SceneFrequency 178 IsValid (Macro_42) → Set (VariableSet_116)
8 SpinBoxSexDescription SexLineDuration 1 / 100 15 Property GI.SexLineDuration 84 IsValid (Macro_90) → Set (VariableSet_48)
9 SpinBoxSex Vol_Sex 0 / 5 1 Property GI.Vol_Sex 22 IsValid (Macro_12) → Set (VariableSet_18)
10 SpinBoxSquirtMult SquirtMult 0 / 100 2 Property GI.SquirtMult 26 Set (VariableSet_25) sans IsValid (GI = VariableGet_40)
11 SpinBoxUI Vol_UI 0 / 5 1 Property GI.Vol_UI 21 IsValid (Macro_11) → Set (VariableSet_17)
12 SpinBoxPregnancyTerm PregnancyMultiplier 0.01 / 3 1 Property GI.PregnancyMultiplier 42 (nom d'événement hérité BndEvt__SpinBox_0_…_42) IsValid (Macro_57) → Set (VariableSet_70)

Persistance (etat\ST\STB\STB-SET-INV.md § 2-3) : seules SceneFrequency et SexLineDuration figurent dans GameSettings.sav ; les 10 autres ne sont dans aucun .sav (estimé : défauts de GI à chaque lancement).

Compte : 12 liaisons Property, 12 gestionnaires OnValueChanged, 1 OnValueCommitted existant (MarkerSize). Hors périmètre : SpinBox_0 (flou de champ CharGen, liaison Function, OnValueCommitted 19), caméra et durée (STC).

2. Points particuliers (établi par le dump, à confirmer au § 4)

  • ShadeDepth (2) : le gestionnaire applique aussi la valeur au matériau de post-traitement. Déplacé sur OnValueCommitted, l'aperçu en direct pendant un glisser disparaît (application en fin de geste, saisie ou flèche). La chaîne entière (Set + matériau) part sur OnValueCommitted, comportement à la validation inchangé.
  • SquirtMult (10) : aucune garde IsValid. Aujourd'hui SynchronizeProperties (GI nul) déclenche donc un Set sur None à chaque ouverture du menu (Accessed None probable, estimé : non relevé dans LogStats). Après correctif, le gestionnaire ne part que sur action du joueur (GI valide) ; ajout d'un IsValid pour l'uniformité, état « vide » impossible après Construct (règle 4 lp-mcp : écrit au CHG).
  • Nœuds GI partagés : VariableGet_29 (6, 13, 17), VariableGet_1 (20-23) ; déplacer un gestionnaire ne doit pas couper les autres (rebrancher les broches d'exécution et InValue seulement).
  • Volumes (3, 5, 9, 11) : Vol_* sont relus par GI ailleurs (GI__EventGraph.txt:22870-22898) ; l'effet suit à la prochaine lecture, un commit en fin de geste ne change rien d'audible pendant le glisser (estimé).
  • Construct (dump l. 121-141) : Construct → Cast To GI → Set GI (VariableSet_2904) → CallFunction_1278 (UpdateDonors). STC y insère ses SetValue (STC-SPEC § 3.3) ; STF s'insère après la chaîne STC, avant UpdateDonors.
  • C++ : LPSettingsSubsystem.cpp:256-366 (CollectSpinBoxes, HardenSettingsControls) traite les SpinBox par type (style, police), jamais par nom ni par valeur : un remplacement de widget reste couvert. Aucune autre référence aux 12 noms dans Source\.

3. Retrait d'une liaison Property : méthode (ouvert)

  • STC-SPEC § 1 : « aucun outil MCP ne retire une liaison de propriété » → remplacement du widget par un widget neuf d'un autre nom (méthode A, modèle STC).
  • ObjectTools.list_properties sur /Game/UI/MainMenu.MainMenu renvoie les propriétés de la classe générée (variables de widgets, gI…), pas le tableau Bindings du UWidgetBlueprint (établi, cette session). Écriture directe du tableau (méthode B : garder les noms et les événements) : non démontrée ; à mesurer en STF-T1, après le gel, sans écriture (lecture du tableau par un autre chemin d'objet ou par UMGToolSet, MVVMToolset).
  • Choix tranché en STF-T1 sur deux faits : (1) ce qu'a donné la méthode A en STC (avertissements de liaisons orphelines, STC-SPEC § 7, relecture des Bindings après STC) ; (2) existence d'une écriture du tableau Bindings par un outil Epic. Sans (2), méthode A.

4. Reste à mesurer après la levée du gel STC (STF-T1)

  1. get_node_infos sur les 12 gestionnaires et sur la chaîne Construct réelle (après STC) : confirmer le § 1 sur l'asset courant.
  2. UMGToolSet.GetWidgets : parent, créneau, propriétés (style, police, MinFractionalDigits, Delta, bornes de glisser) de chacun des 12 widgets, pour la méthode A.
  3. Relecture binaire des deux tableaux Bindings après STC (attendu 33 − 2 = 31 entrées, dont nos 12).
  4. Méthode B : existe ou non (§ 3).

Fichiers à commiter : aucun (Docs/Migration/etat/ est ignoré par git, .gitignore:74 de la copie 5.5).