LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.3 KiB
3.3 KiB
VQ2-IMPL-H — Implémentation ULPVideoQualitySubsystem
Fiches : VQ2-T2 (+ VQ2-T3 CategoryOf)
Rôle : A-IMPL-H
Date : 07 octobre 2026
Spec : VQ2-SPEC.md
Modèle
| Modèle | |
|---|---|
| Prévu | claude-fable-5-1-thinking-high (bloqué par policy) |
| Attendu (consigne) | claude-sonnet-5-5-high (M2+, repli M3) |
| Réel | claude-sonnet-5-5-high (Claude Sonnet 5.5) |
Fichiers
| Fichier | Action |
|---|---|
Source/LifePlay/LPVideoQualitySubsystem.h |
Nouveau : FLPVideoLevels, ULPVideoQualitySubsystem |
Source/LifePlay/LPVideoQualitySubsystem.cpp |
Nouveau : SetLevels, RefreshWidgets, Load, Save, EnsureControls, Tick, ApplyToScalability |
Source/LifePlay/LPSettingsSubsystem.cpp |
CategoryOf + ApplyRows (T3) |
LifePlay.Build.cs et LPColorGradeSubsystem.* inchangés.
Réalisé
- Widgets
LPVideoOverall,LPVideoShadows,LPVideoTextures,LPVideoEffects,LPVideoAA,LPVideoRecommended, insérés viaInsertChildAtavant le premierLPColor*(repliAddChild+ réordonnancement desLPColor*). ApplyToScalability():Scalability::GetQualityLevels()puis écriture de 4 champs seulement (ShadowQuality,TextureQuality,EffectsQuality,AntiAliasingQuality),SetQualityLevels(Q, true), relecture et replisg.*enECVF_SetByConsole(R1).- Persistance
Saved/Config/Windows/LPVideoQuality.ini(Version=1,Overall,Shadows,Textures,Effects,AA) ;Overallrecalculé parNormalize()auLoad(). - Recommended : stub = niveau 2 (High), log
Video : Recommended = stub (High) ; VRAM prevue en VQ3. EnsureControls()met aussiShadowQuality,PostProcessQuality,PostProcessAAQualityenCollapsed.- T3
LPSettingsSubsystem.cpp:CategoryOf:LPVideo*→TabVideo;ShadowQuality,PostProcessQuality,PostProcessAAQuality→TabHidden(-2) ;BackButton→TabAlways(-1).ApplyRows:bShow = Category == TabAlways || (Category != TabHidden && ActiveTab != TabKeyboard && Category == ActiveTab); -1 toujours visible, -2 toujours replié.- Grep :
CategoryOfn'a qu'un seul appelant (ApplyRows).
Écarts / choix par rapport à la spec
- Drapeau
bConfigured: sans INI et sans action du joueur,ApplyToScalability()ne fait rien (état moteur préservé, §6.2 « aucun changement »). Les niveaux affichés sont alors relus depuis Scalability à chaque injection du menu. Dès qu'un INI existe ou queSetLevelsest appelé, les déclencheurs a/b/c réappliquent les niveaux. - Pas de
Save()à l'initialisation. AddRow: signature adaptée (ERow, widget de ligne en sortie) car l'insertion se fait après création des 6 lignes.- Pas de delegate
OnControlsInjected(Q2) :ULPSettingsSubsystem::TickrappelleApplyRows()quandGetChildrenCount()change (à confirmer en VQ2-VAL).
Build
Commande :
D:\Game\Launcher\Engine\UE_5.5\Engine\Build\Build.bat -> Engine\Build\BatchFiles\Build.bat
LifePlayEditor Win64 Development -Project="D:\Game\LifePlay-master 5.5\LifePlay.uproject"
Résultat : compile OK (UHT sans erreur, UnrealEditor-LifePlay.dll relié, exit code 0, aucun warning/erreur sur les fichiers VQ2).
Non testé en exécution (VQ2-VAL).