LifePlay-Revival/Docs/Migration/etat/ST/LISIB/LISIB-T1-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

8.7 KiB

Fiche LISIB-T1 — Niveau N1 — Modèle prévu Opus 5.5 (orchestrateur) | utilisé claude-opus-5-5 — Agent orchestrateur (session LISIB) — Skills lp-lot, sk-protocol, lp-ue-compat

LISIB-T1 : inventaire des textes peu lisibles hors Settings (2026-10-10)

Lecture seule. Aucun éditeur, commandlet, MCP, build ni écriture git. Fichiers écrits : ce document, l'annexe LISIB-T1-inventaire.md (tableaux A, B, C), LISIB-TACHES.md, et les outils hors git Saved\LISIB\.

1. Résultat

  • 548 widgets texte dans les 73 Widget Blueprints du jeu (tous dans Content\UI\). 32 sont dans le panneau Settings (MainMenu.SettingsScrollBox, déjà traité par LPSettingsSubsystem) et sont exclus. Il en reste 516.
  • 126 widgets signalés, en trois groupes :
    • A. 56 SpinBox, dans 12 assets. Elles sont toutes peu lisibles. 53 ont le texte par défaut du moteur, gris clair #B7B7B7, sur le pinceau gris clair #E6E6E6. Le contraste est d'environ 1,6:1. Les 3 autres ont un texte noir à 70 %. 32 sur 56 sont en taille 12, la police par défaut. C'est le cas décrit par l'utilisateur dans CharGen.
    • B. 20 champs de saisie : 17 EditableTextBox et 3 EditableText. 16 EditableTextBox n'ont aucune couleur de texte fixée : même cause que FilenameEntry de CharGen avant STE-TXT (STD-TXT-DIAG.md C1). 3 sont en taille 9.
    • C. 50 TextBlock : taille ≤ 12, alpha ≤ 0,7, opacité ≤ 0,7, ou teinte moyenne (rouge pur, cyan) dont la lisibilité dépend du fond. Leur couleur et leur taille ont toutes été choisies dans l'asset par l'auteur. Aucune ne vient d'un défaut du moteur.
  • Le groupe C contient aussi des TextBlock signalés seulement parce qu'ils sont cachés à l'ouverture (« (cache) »). Les autres widgets texte (390 : 388 TextBlock et 2 ComboBoxString) ont une taille ≥ 14 et sont blancs ou noirs à alpha ≥ 0,75 : ils ne sont pas signalés.

2. Sources et méthode

  • Relevé 5.8 Saved\Logs\portage\U5_assets_apres.txt (233 673 521 o, 2026-10-08 20:31, MD5 4ab5eba3…). Il liste les propriétés non par défaut de chaque objet de chaque paquet, ainsi que les nœuds de graphe et leurs broches.
  • Saved\LISIB\lisib_inv.py relève, pour chaque widget de chaque WidgetTree (arbre de l'asset, pas celui de _C) :
    • la classe, les propriétés et la chaîne des parents (déduite de Slot) ;
    • les nœuds CallFunction qui posent un style (SetColorAndOpacity, SetFont, SetForegroundColor, SetOpacity, SetRenderOpacity, SetWidgetStyle, SetEditableTextBoxStyle, SetContentColorAndOpacity, SetBrushColor…) ;
    • les nœuds VariableSet de WidgetStyle, Font, ColorAndOpacity, ForegroundColor et Style ;
    • les liaisons du Widget Blueprint (Bindings).
  • Saved\LISIB\lisib_ana.py complète par les défauts du moteur, calcule la couleur sRGB et l'opacité cumulée, et applique les critères. Les critères sont : taille ≤ 12 ; luminance linéaire entre 0,08 et 0,7 ; alpha < 0,75 ; opacité cumulée des parents < 0,75.
  • Relance : python -I Saved\LISIB\lisib_inv.py <relevé> inv.json, puis python -I Saved\LISIB\lisib_ana.py inv.json rows.json (3,7 s). Comptes : 590 paquets, 548 widgets texte, 80 nœuds, 15 liaisons.
  • Recherche d'autres Widget Blueprints hors Content\UI : grep -a "WidgetTree" sur les 8 .uasset de Content\BPs qui citent WidgetBlueprintGeneratedClass donne 0 ; Plugins\ donne 0. Les 73 Widget Blueprints sont donc les seuls.

Défauts du moteur 5.8 (établis dans la source)

Classe Taille par défaut Couleur du texte par défaut Fond par défaut Source
SpinBox 12 Bold ForegroundColor = InvertedForeground = 0,472885 linéaire (#B7B7B7) Common/Spinbox.png gris 230 opaque (#E6E6E6) ; remplissage au repos Spinbox_Fill_Hovered SpinBox.cpp:23, :43, :52 ; UMGCoreStyle.cpp:70, :217, :745-752 ; SSpinBox.cpp:240-241
EditableTextBox 24 Regular TextStyle.ColorAndOpacity = UseForeground (texte hérité) Common/TextBox.png blanc à 80 % (pixel 255, alpha 204) EditableTextBox.cpp:41-51 ; UMGCoreStyle.cpp:238-240, :554-562 ; SlateTypes.cpp:297-304
EditableText 24 Regular UseForeground aucun EditableText.cpp:28-37 ; SlateTypes.cpp:260
TextBlock 24 Bold blanc opaque aucun TextBlock.cpp:28, :36
Pixels centraux décodés dans Engine\Content\Slate\Common : Spinbox.png 230, Spinbox_Hovered.png 220,
Spinbox_Fill.png 214, TextBox.png 255 / alpha 204 (concorde avec STD-TXT-DIAG.md:59).

3. Où le style est fixé

  • SpinBox (A) : dans l'asset, ou pas du tout (défaut du moteur). Aucun nœud de graphe ne pose le style, la couleur ou la police d'une SpinBox, et aucune liaison ne le fait. 24 SpinBox ont une police agrandie dans l'asset (16 ou 20 : BodyShape, BodyShapeMenu, CityMenu, VarianceSpinBox), mais gardent la couleur grise par défaut. 3 SpinBox ont un texte noir à 70 % fixé dans l'asset : CharGenSlider et GenitalSlider.MorphSpin (avec une opacité de rendu de 0,7), et CityMenu.UnknownSpin.
    • CharGenSlider.MorphSpin et GenitalSlider.MorphSpin sont les SpinBox des lignes de morphes de CharGen, répétées une fois par morphe. C'est probablement le « comme dans de nombreux cas » de l'utilisateur (estimé).
  • Champs de saisie (B) : seule la police est fixée dans l'asset. Deux graphes reconstruisent le style pendant le flash rouge d'un nom refusé : CharGen.FilenameEntry et StatMenu.FilenameEntry. Depuis STE-P1, ils le font par Set Widget Style (Text Box, LP). Le TextStyle est recopié du style courant (STE-TXT-DIAG.md § 3.3), donc une couleur posée dans TextStyle.ColorAndOpacity survit au flash.
  • TextBlock (C) : la taille et la couleur sont fixées dans l'asset. Des nœuds changent la couleur en jeu :
    • SetColorAndOpacity : Action et SexAction.ActionText, Bubble.Text, City.InstalledText, Quest.TextBlock_0 ;
    • SceneOption.Line : SetOpacity 0,45 ;
    • TopRight.QuickStartBox et Tutorial.PopupBorder : SetContentColorAndOpacity sur un Border ;
    • Inventory_Cloth.NameHairStyle : liaison de ColorAndOpacity. Toute valeur posée sur ces widgets serait réécrite par ces nœuds.
  • Liste complète des nœuds (80, dont les copies ExecuteUbergraph_*) : sortie de lisib_inv.py (Saved\LISIB\inv.json, clé nodes).

4. Écarts connus entre le relevé (2026-10-08) et l'état actuel

Quatre assets de Content\UI sont plus récents que le relevé : find -newer.

Asset Changement depuis le relevé Effet sur l'inventaire
CharGen STE-TXT (073f9df) : VarianceSpinBox.ForegroundColor et FilenameEntry.TextStyle.ColorAndOpacity = noir (0,0,0,1) ; STE-P1 : 2 nœuds Set remplacés par la fonction LP ; STF-T5b en cours ( M, pas de 0,5 sur SpinBox_0, gardes IsValid) A40 et B6 : texte maintenant noir sur le gris clair, lisible d'après le PIE STE-J2bis. A39 (SpinBox_0, groupe AntiDeform, « Counteract Vagina Deform ») reste gris 12 : c'est très probablement le widget vu par l'utilisateur pendant le PIE de STF-T5b (estimé)
StatMenu STE-P1 : 2 nœuds Set remplacés A56 et B18 inchangés : même paire que CharGen sans le correctif STE-TXT (signalé par STE-TXT, fiche § 3 c)
MainMenu STC, STF, STF-T5 (a) : contrôles de Settings seulement aucun : les 15 SpinBox de MainMenu sont dans SettingsScrollBox
SexInterface STB-SEX (476effb) : IsValidIndex dans le graphe aucun sur les widgets (estimé)
Écart de chaîne de compilation : le resave U5 a été commité à 21 h 50 (809102a), après le relevé de 20 h 31. Ce resave
est une conversion sans perte prouvée (message du commit) : aucun effet attendu (estimé).

5. Fonds : ce qui est établi et ce qui ne l'est pas

  • Établi : le fond propre d'une SpinBox ou d'une EditableTextBox, c'est-à-dire son pinceau (§ 2), et le Border le plus proche quand il porte une couleur (colonne « Fond relevé » de l'annexe).
  • Non établi : la couleur réellement vue derrière un texte. Elle dépend des images, des canevas superposés et de la scène 3D derrière l'interface. Le contraste d'un TextBlock du groupe C n'est donc qu'estimé. Seul le PIE le tranche.

6. Incertitudes et points à confirmer

  • Spinbox.png est absent des builds cuits (STD-TXT-DIAG.md:130). Le pinceau de repli en jeu empaqueté n'est pas vérifié.
  • Le rendu des 16 EditableTextBox sans couleur (B) n'est pas vu en jeu. Il est déduit du cas FilenameEntry de CharGen, confirmé en PIE (STE-J2).
  • 14 widgets sont cachés à l'ouverture (« (cache) »). Leur affichage dépend du graphe.

Suite : l'utilisateur approuve ou corrige le périmètre (LISIB-SPEC.md, Q1) ; état : inventaire fait, aucune écriture.