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

4.1 KiB
Raw Blame History

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

STF-T5-CART : les deux SpinBox_0 (MainMenu, CharGen), carte avant SPEC (2026-10-10)

Copie D:\Game\LifePlay-master 5.8 (HEAD après 2883b80). BUILD-GO STF-T5-T0 de Big Boss. Éditeur sans rendu, -unattended (aucune boîte de récupération après le plantage de J2 STE), journal Saved\Logs\portage\STF-T5-T0_Editor_20261010-133417.log. Lecture seule : find_nodes, get_node_infos, GetWidgets, GetWidgetDescription, get_properties ; Tools/uasset58.py sur les fichiers. MD5 avant = après : MainMenu 00e42d72…, CharGen 9669b103… (STE-TXT non commité), GI 606eb437….

1. (a) MainMenu : SpinBox_0 « Depth of Field Strength » (établi)

  • Widget : HorizontalBox_34 (dans SettingsScrollBox, infobulle « Set it to 0 to disable »), indice 1, slot HorizontalBoxSlot_1 ; libellé TextBlock_14 (indice 0). Propriétés : Min 0 / Max 20, glisser 0-20, Value 0, Delta 0, décimales 1 / 6, police Roboto Bold 20 (reste par défaut).
  • Liaison Function Value ← Get_SpinBox_0_Value_0 : GI (VariableGet_0) → ChargenCameras → [0] (copie) → CameraComponent → PostProcessSettings → Break → DepthOfFieldFarBlurSize × 2 → retour. Évaluée par SynchronizeProperties avant Construct (STA-T2b F2, sources moteur) : GI nul → 5 « Accessed None » par évaluation ; 240 dans le journal J1 (STF-VAL.md § J). Réévaluée ensuite à chaque image (attribut Slate lié) : sans erreur une fois GI affecté.
  • OnValueCommitted (ComponentBoundEvent_19) : SetFieldsInStruct_0 (PostProcessSettings, DepthOfFieldFarBlurSize ← InValue × 0.5 par CommutativeAssociativeBinaryOperator_9) → VariableSet_13 (CameraComponent.PostProcessSettings) ; cible GI.ChargenCameras[0].CameraComponent (VariableGet_20 → _21 → GetArrayItem_3 → VariableGet_27). Aucune garde (ne part que sur action du joueur : GI valide ; tableau supposé rempli, STA-T2b « estimé oui »).
  • Pas d'OnValueChanged sur ce widget.

2. (b) CharGen : SpinBox_0 « Counteract Vagina Deform » (établi)

  • Widget : AntiDeform (HorizontalBox de MorphVisualBox), indice 2, slot HorizontalBoxSlot_2 ; libellé TextBlock_69. Propriétés : Min 0, Max non surchargé, glisser 0-100, Value 0, police 12. Infobulle : « … you may need to spin the box back and forth a few times for it to work » : l'effet en direct pendant le glisser est voulu.
  • Pas de liaison de propriété : aucune fonction Get_SpinBox_0… ; dans l'asset, SpinBox_0 n'apparaît que dans les exports CharGen / CharGen_C (2), comme TextBlock_69 (sans liaison) (uasset58.py locate).
  • OnValueChanged (ComponentBoundEvent_85) : SetMorphTarget(GI.CharacterBeingEdited.Mesh, 'Genesis8Female__Chin Type 1 Assist', InValue × -1, bRemoveZeroWeight) (CallFunction_303, cible VariableGet_282 ← _281 ← _280 GI). Aucune garde : au premier SetValue / CommitValue de construction, GI est nul → 1 « Accessed None … property GI in CharGen_C » (journal J1 l. 1422). Mécanisme d'ERR-057, sans écriture de GI (seule lecture fautive).
  • CharGen porte la modification non commitée de STE-TXT (9669b103…), PIE J2 terminé par un plantage éditeur (SEditableText::SynchronizeTextStyle) : partie (b) bloquée jusqu'à décision utilisateur et commit STE-TXT.

3. Conséquences pour la SPEC

  • (a) relève de la méthode STF (liaison à retirer : widget remplacé ; init gardée dans Construct ; OnValueCommitted rebranché, garde ajoutée sur la chaîne cible).
  • (b) relève d'une simple garde (IsValid(GI) et IsValid(CharacterBeingEdited) avant SetMorphTarget, règle 4 lp-mcp : « vide » est l'état normal à la construction) ; passer sur OnValueCommitted casserait l'effet en direct voulu.
  • Piste A de STA-T2b (affecter GI dans OnInitialized) : exclue (lp-mcp § 4, ERR-057, CHG-294).

Fichiers écrits : ce livrable. Aucun fichier de la copie UE modifié.