8.7 KiB
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é parLPSettingsSubsystem) 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.mdC1). 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, MD54ab5eba3…). 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.pyrelève, pour chaque widget de chaqueWidgetTree(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
CallFunctionqui posent un style (SetColorAndOpacity,SetFont,SetForegroundColor,SetOpacity,SetRenderOpacity,SetWidgetStyle,SetEditableTextBoxStyle,SetContentColorAndOpacity,SetBrushColor…) ; - les nœuds
VariableSetdeWidgetStyle,Font,ColorAndOpacity,ForegroundColoretStyle; - les liaisons du Widget Blueprint (
Bindings).
- la classe, les propriétés et la chaîne des parents (déduite de
Saved\LISIB\lisib_ana.pycomplè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, puispython -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.uassetdeContent\BPsqui citentWidgetBlueprintGeneratedClassdonne 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 :
CharGenSlideretGenitalSlider.MorphSpin(avec une opacité de rendu de 0,7), etCityMenu.UnknownSpin.CharGenSlider.MorphSpinetGenitalSlider.MorphSpinsont 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.FilenameEntryetStatMenu.FilenameEntry. Depuis STE-P1, ils le font parSet Widget Style (Text Box, LP). LeTextStyleest recopié du style courant (STE-TXT-DIAG.md§ 3.3), donc une couleur posée dansTextStyle.ColorAndOpacitysurvit au flash. - TextBlock (C) : la taille et la couleur sont fixées dans l'asset. Des nœuds changent la couleur en jeu :
SetColorAndOpacity:ActionetSexAction.ActionText,Bubble.Text,City.InstalledText,Quest.TextBlock_0;SceneOption.Line:SetOpacity0,45 ;TopRight.QuickStartBoxetTutorial.PopupBorder:SetContentColorAndOpacitysur un Border ;Inventory_Cloth.NameHairStyle: liaison deColorAndOpacity. 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 delisib_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.pngest 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.