LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9.7 KiB
VQ1-SPEC — Spécification DefaultScalability.ini (Low → Epic)
Fiche : VQ1-T1
Rôle : A-ARCH
Modèle attendu : claude-sonnet-5-5-high (M2)
Date : 07 octobre 2026
Workspace : d:\Game\LifePlay-master 5.5
Statut : Spécification — prête pour implémentation (VQ1-T2)
Dépend de : VQ0-CART.md (cartographie des réglages Video), lot L7c (Config/DefaultEngine.ini)
1. Objectif
Définir, pour le projet, un fichier Config/DefaultScalability.ini qui précise explicitement les cvars appliqués par les niveaux de qualité 0 (Low) → 3 (Epic) pour quatre groupes seulement :
| Groupe | cvar de niveau | Section INI (par niveau) |
|---|---|---|
| Ombres | sg.ShadowQuality |
[ShadowQuality@0] … [ShadowQuality@3] |
| Textures | sg.TextureQuality |
[TextureQuality@0] … [TextureQuality@3] |
| Effets | sg.EffectsQuality |
[EffectsQuality@0] … [EffectsQuality@3] |
| Anti-aliasing (qualité) | sg.AntiAliasingQuality |
[AntiAliasingQuality@0] … [AntiAliasingQuality@3] |
Ces quatre groupes préparent le futur bloc LPVideo* (VQ0-CART §7) et remplacent la dépendance implicite aux valeurs par défaut du moteur par des valeurs lisibles, versionnées et revues.
2. Périmètre et interdits
2.1 Dans le périmètre
- Niveaux 0, 1, 2, 3 des 4 groupes ci-dessus.
- Cvars de qualité « classiques » UE5 (résolution d'ombres, cascades, pool de textures, anisotropie, qualité de réfraction, qualité du post-AA).
2.2 Interdits (hors périmètre — ne doit jamais apparaître dans DefaultScalability.ini)
| Interdit | Raison |
|---|---|
Illumination globale dynamique (r.DynamicGlobalIlluminationMethod, r.Lumen.*, groupe GlobalIlluminationQuality) |
Verrouillée à 0 par le lot L7c (rendu 4.27 conservé). |
Ombres virtuelles / VSM (r.Shadow.Virtual.*, y compris r.Shadow.Virtual.Enable) |
Verrouillées à 0 par L7c. Aucune cvar r.Shadow.Virtual.* ne doit être ajoutée, même « inoffensive ». |
Méthode d'anti-aliasing (r.AntiAliasingMethod) |
Verrouillée à 2 (TAA) par le lot L6a / L7c : TSR fait scintiller les maillages à morphs. Le groupe AntiAliasingQuality ne règle que la qualité, pas la méthode. |
Méthode de reflets (r.ReflectionMethod, r.SSR.*, groupe ReflectionQuality) |
Verrouillée à 2 (SSR) par L7c. |
Groupes ViewDistanceQuality, PostProcessQuality, ShadingQuality, FoliageQuality, LandscapeQuality, ResolutionQuality, GlobalIlluminationQuality, ReflectionQuality, SkeletalMeshQuality, HeightFieldShadowQuality… |
Non demandés ; les valeurs moteur (BaseScalability.ini) restent inchangées. |
Niveau Cinematic (@Cine, niveau 4) |
Non exposé au joueur ; valeurs moteur conservées. |
Toute modification de Config/DefaultEngine.ini |
Les contraintes L7c/L6a y restent la source de vérité. |
Garde-fou L7c (rappel) :
r.DynamicGlobalIlluminationMethod=0,r.ReflectionMethod=2,r.Shadow.Virtual.Enable=0,r.AntiAliasingMethod=2dans[/Script/Engine.RendererSettings]deDefaultEngine.ini. Ces valeurs sont au niveau de priorité ProjectSetting, supérieur à Scalability : elles ne peuvent pas être écrasées par un niveau de scalabilité, mais la règle ci-dessus évite néanmoins toute tentative.
3. Correspondance des niveaux
| Niveau | Nom | Usage |
|---|---|---|
| 0 | Low | Machines faibles / GPU intégrés |
| 1 | Medium | Machines modestes |
| 2 | High | Cible standard |
| 3 | Epic | Qualité maximale proposée ; reste conservatrice (pas de valeur au-delà du palier Epic moteur) |
Principe « conservateur » : chaque valeur est choisie au plus égale à l'équivalent Epic du moteur UE 5.5 et sans activer de fonctionnalité nouvelle par rapport au rendu 4.27 validé. Aucune cvar susceptible de changer le look (volumetric fog, distance-field shadows, capsule shadows, SSS profile, bloom…) n'est incluse : elles restent aux valeurs moteur.
4. Tableau niveau → cvars
4.1 ShadowQuality (sg.ShadowQuality)
| cvar | 0 Low | 1 Medium | 2 High | 3 Epic | Commentaire |
|---|---|---|---|---|---|
r.Shadow.CSM.MaxCascades |
1 | 2 | 3 | 4 | Cascades du soleil |
r.Shadow.MaxResolution |
512 | 1024 | 2048 | 2048 | Résolution max ombre dynamique (plafonnée à 2048) |
r.Shadow.MaxCSMResolution |
512 | 1024 | 2048 | 2048 | Résolution max par cascade |
r.Shadow.RadiusThreshold |
0.06 | 0.05 | 0.04 | 0.03 | Rayon écran min. pour projeter une ombre |
r.Shadow.DistanceScale |
0.6 | 0.7 | 0.85 | 1.0 | Distance de rendu des ombres |
r.Shadow.CSM.TransitionScale |
0.0 | 0.25 | 0.6 | 1.0 | Fondu entre cascades |
r.Shadow.PreShadowResolutionFactor |
0.5 | 0.5 | 0.75 | 1.0 | Résolution des pré-ombres |
Non inclus volontairement : r.Shadow.Virtual.* (interdit), r.DistanceFieldShadowing, r.CapsuleShadows, r.VolumetricFog*, r.LightMaxDrawDistanceScale, r.LightFunctionQuality.
Cohérence : r.MinScreenRadiusForCSMDepth=0.010000 reste fixé dans DefaultEngine.ini (non touché).
4.2 TextureQuality (sg.TextureQuality)
| cvar | 0 Low | 1 Medium | 2 High | 3 Epic | Commentaire |
|---|---|---|---|---|---|
r.Streaming.MipBias |
2.5 | 1 | 0 | 0 | Mips abaissés (0 = pleine résolution) |
r.MaxAnisotropy |
0 | 2 | 4 | 8 | Filtrage anisotrope |
r.Streaming.PoolSize |
200 | 400 | 700 | 1000 | Budget pool de streaming (Mo) |
r.Streaming.MaxEffectiveScreenSize |
0 | 0 | 0 | 0 | 0 = comportement moteur |
r.TextureStreaming=True reste imposé par DefaultEngine.ini.
4.3 EffectsQuality (sg.EffectsQuality)
| cvar | 0 Low | 1 Medium | 2 High | 3 Epic | Commentaire |
|---|---|---|---|---|---|
r.TranslucencyLightingVolumeDim |
24 | 32 | 48 | 64 | Volume d'éclairage des translucides |
r.RefractionQuality |
0 | 2 | 2 | 3 | Qualité de réfraction |
r.SSS.Scale |
0.25 | 0.5 | 0.75 | 1.0 | Échelle subsurface scattering |
r.SSS.SampleSet |
0 | 1 | 2 | 2 | Jeu d'échantillons SSS |
r.DetailMode |
0 | 1 | 2 | 2 | Seuil des composants « detail mode » |
fx.Niagara.QualityLevel |
0 | 1 | 2 | 3 | Niveau de qualité Niagara |
Non inclus : r.SSR.Quality, r.Lumen.* (interdits), r.BloomQuality, r.SceneColorFormat, r.EmitterSpawnRateScale.
4.4 AntiAliasingQuality (sg.AntiAliasingQuality)
| cvar | 0 Low | 1 Medium | 2 High | 3 Epic | Commentaire |
|---|---|---|---|---|---|
r.PostProcessAAQuality |
0 | 2 | 4 | 4 | Qualité du post-AA (échelle moteur 0–6) |
Non inclus : r.AntiAliasingMethod (interdit, fixé à 2/TAA), r.TSR.* (TSR non utilisé), r.TemporalAA*.
r.PostProcessAAQuality=4 pour Epic = palier moteur ; la valeur 6 est réservée à Cinematic et n'est pas utilisée.
5. Note « Overall »
sg.OverallQuality (« Overall ») n'a pas de section propre dans DefaultScalability.ini : l'application d'un niveau Overall N consiste à appliquer le même niveau N aux quatre groupes (sg.ShadowQuality, sg.TextureQuality, sg.EffectsQuality, sg.AntiAliasingQuality = N). Les autres groupes de scalabilité restent à leur valeur courante.
Conséquence pour le futur sous-système LPVideo* : un sélecteur « Overall » doit écrire N sur ces 4 groupes uniquement (via Scalability::SetQualityLevels en préservant les autres champs de FQualityLevels), et ne pas déclencher d'effet de bord sur GI, reflets, VSM ou méthode d'AA.
6. Règles de fusion et de priorité
Config/DefaultScalability.iniest lu aprèsEngine/Config/BaseScalability.ini; les sections portant le même nom ([ShadowQuality@2]…) sont fusionnées clé par clé : les clés non listées conservent la valeur moteur.- Les cvars appliquées par scalabilité ont la priorité
SetByScalability, inférieure àSetByProjectSetting(DefaultEngine.ini). Les verrous L7c ne peuvent donc pas être contournés. - Les valeurs
sg.*choisies par le joueur sont persistées dansGameUserSettings.ini(Saved/Config/Windows) ; elles choisissent le niveau, pas le contenu des sections. - Aucun
DeviceProfilen'est défini dansConfig/(pas deDefaultDeviceProfiles.ini) : pas de surcharge supplémentaire à prévoir. - Le fichier ne contient que des sections
@0–@3des 4 groupes, rien d'autre.
7. Points d'attention (VQ0-CART §6)
- Redondance BP : les curseurs BP
ShadowQuality,PostProcessAAQuality(qui piloter.PostProcessAAQualitydirectement),PostProcessQualityrestent actifs. Un curseur BPAA Qualityqui fixe directementr.PostProcessAAQualityaura priorité de dernière écriture sur le niveausg.AntiAliasingQuality; le futurLPVideo*devra les masquer/synchroniser (hors périmètre VQ1). - Aucun changement C++/Blueprint dans VQ1 : uniquement configuration.
- Vérification des valeurs moteur : les valeurs de §4 sont fondées sur les paliers usuels de
BaseScalability.iniUE 5.x ; elles doivent être confrontées au fichier de l'installation 5.5 lors de la validation (VQ1-VAL).
8. Critères d'acceptation (pour VQ1-T2 et validation)
Config/DefaultScalability.iniexiste et ne contient que[ShadowQuality@0..3],[TextureQuality@0..3],[EffectsQuality@0..3],[AntiAliasingQuality@0..3].- Aucune occurrence de
Virtual,Lumen,GlobalIllumination,AntiAliasingMethod,ReflectionMethod,SSRdans le fichier. Config/DefaultEngine.iniinchangé (L7c intact).- En jeu,
sg.ShadowQuality 0..3(etc.) modifier.Shadow.MaxResolution,r.Streaming.PoolSize, etc. conformément au §4 (Scalabilityconsole /stat/r.Xen lecture). - Rendu à niveau 3 : GI dynamique, VSM et méthode d'AA inchangés (Lumen/VSM off, TAA).