LifePlay-Revival/Docs/Migration/etat/U58/UA/UA-JEU.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

30 KiB

UA-JEU — Audit du jeu avant migration UE 5.5 → 5.8

Fiche UA-T1 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet

Date : 2026-10-08. Racine : D:\Game\LifePlay-master 5.5. Lecture seule : aucun build, aucun lancement, aucun .uasset ouvert (tailles et noms uniquement), aucun git d'écriture. Plan de référence : Docs/Migration/27_Plan_Migration_UE58.md.

Les commandes sont notées en tête de chaque section (shell POSIX, depuis la racine). « Ligne » = ligne de texte (grep -c compte des lignes, pas des occurrences multiples par ligne).

1. Modules C++ du jeu

Commandes : ls Source/<module> | wc -l ; cat Source/<module>/*.cpp Source/<module>/*.h | wc -l ; grep -h "UCLASS" Source/<module>/* | wc -l ; grep -ho "class [A-Z_]* *U[A-Za-z]*Subsystem" Source/LifePlay/*.h.

Module Type (uproject) Fichiers (.h + .cpp + Build.cs) Lignes (.h + .cpp) UCLASS dont U*Subsystem
LifePlay Runtime, Default 51 9 212 25 16
LifePlayEditorTools Editor, Default (AdditionalDependencies: Engine) 69 7 915 32 (tous des commandlets) 0

Cibles (Source/*.Target.cs) : LifePlay.Target.cs (Game) et LifePlayEditor.Target.cs (Editor), toutes deux DefaultBuildSettings = BuildSettingsVersion.V5 et IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_5. Aucune cible Server/Client. L'éditeur charge LifePlay + LifePlayEditorTools. LifePlayEditorTools a bUseUnity = false.

Classes de LifePlay (25 UCLASS, grep -h -A1 UCLASS Source/*/*.h) :

  • 16 sous-systèmes : ColorGrade, Debug, DirectControl, Hairstyle, Keyboard, MapMarkersGuard, ModDailies, ModInfo, OutdoorRoom, PersonPropGuard, SecondScreen, SessionLog, Settings, ShowCouple, Version, VideoQuality (include Subsystems/GameInstanceSubsystem.h x16).
  • 8 bibliothèques/compat : ULPAssetRegistryHelpers, ULPDataCompat, ULPMeshCompat, ULPModDailiesLibrary, ULPModSettingsLibrary, ULPNavigationHelpers, ULPStringCompat, ULPVictoryCompat.
  • 1 : ALifePlayGameModeBase.

Fonctions exposées aux Blueprints : grep -h -E "UFUNCTION\(.*BlueprintCallable" Source/LifePlay/*.h | wc -l = 7 ; ...BlueprintPure = 10 ; UFUNCTION au total = 36. Répartition (callable + pure, 17) : LPStringCompat 4, LPAssetRegistryHelpers 3, LPDataCompat 2, LPVictoryCompat 2, LPMeshCompat 1, LPModDailies 1, LPModInfoSubsystem 1, LPModSettingsLibrary 1, LPNavigationHelpers 1, LPSessionLogSubsystem 1.

Dépendances (Build.cs)

LifePlay.Build.cs (PCHUsage = UseExplicitOrSharedPCHs) :

  • Publiques : Core, CoreUObject, Engine, InputCore, AssetRegistry, NavigationSystem, LPAnimCore (plugin du jeu).
  • Privées : ImageWrapper, ApplicationCore, RHI, EngineSettings, Projects, Slate, SlateCore, UMG, Chaos.

LifePlayEditorTools.Build.cs :

  • Publiques : Core, CoreUObject, Engine, LifePlay.
  • Privées : UnrealEd, BlueprintGraph, KismetCompiler, AssetRegistry, StreetMapRuntime, SlateCore, NavigationSystem, UMG, UMGEditor, MeshDescription, Json.

En-têtes moteur inclus, par module UE

Commandes : grep -ho '#include *"[^"]*"' Source/<module>/* | sort | uniq -c | sort -rn, en excluant les en-têtes LP*, LifePlay* et .generated.h. Le regroupement par module UE est déduit du préfixe du chemin (heuristique, non IWYU) ; le détail par en-tête est reproductible avec la commande.

LifePlay (316 inclusions moteur) :

Module UE (déduit) Inclusions En-têtes les plus fréquents
Engine 120 Engine/GameInstance.h 15, Engine/World.h 8, Kismet/BlueprintFunctionLibrary.h 8, EngineUtils.h 5, Components/StaticMesh, SkeletalMesh, Capsule 4 chacun, GameFramework/*
Core 87 CoreMinimal 25, Containers/Ticker.h 14, Misc/Paths 8, Misc/FileHelper 6, HAL/FileManager 5, Misc/CommandLine 4, HAL/IConsoleManager 4, Modules/ModuleManager 3
UMG 45 Components/TextBlock 4, ScrollBox 4, Button 3, Blueprint/UserWidget 4
Slate / SlateCore 33 Styling/CoreStyle 6, Styling/SlateTypes 5, Widgets/Text/STextBlock 3, SBox / SBorder / SButton 3 chacun, SlateApplication 2
CoreUObject 15 UObject/UnrealType.h 11
AssetRegistry 5 IAssetRegistry.h 2, AssetRegistryModule.h 2, AssetData.h 1
RHI 3 RHI.h, RHIStats.h, DynamicRHI.h
EngineSettings 3 GeneralProjectSettings.h
ImageWrapper 2 IImageWrapper.h, IImageWrapperModule.h
Projects, NavigationSystem, InputCore, Chaos, Scalability 1 chacun Interfaces/IPluginManager.h, NavigationSystem.h, InputCoreTypes.h, Chaos/TriangleMeshImplicitObject.h, Scalability.h

LifePlayEditorTools (390 inclusions moteur) :

Module UE (déduit) Inclusions En-têtes les plus fréquents
UnrealEd / BlueprintGraph / UMGEditor 117 Kismet2/KismetEditorUtilities.h 17, EdGraph/EdGraph.h 17, EdGraphSchema_K2.h 16, Kismet2/BlueprintEditorUtils.h 15, K2Node_CallFunction.h 14, EdGraphPin 14, WidgetBlueprint.h 4, une vingtaine d'en-têtes K2Node_*
Core / Json 72 CoreMinimal 34, Misc/FileHelper 8, Misc/Paths 3, Json* 3
Engine 63 Engine/Blueprint.h 17, Engine/World.h 6, Components/*
CoreUObject 56 UObject/SavePackage.h 21, UObject/Package.h 21, UObject/UObjectGlobals.h 10
Engine (Commandlet) 32 Commandlets/Commandlet.h 32
AssetRegistry 30 AssetRegistryModule.h 21, AssetData.h 9
UMG 17 Blueprint/WidgetTree.h 4, Components/TextBlock, Button, Image…
NavigationSystem, StreetMapRuntime, MeshDescription, Slate 2, 1, 1, 1 NavigationSystem.h, StreetMap.h, MeshDescription.h, Styling/SlateTypes.h

2. API moteur à risque (nos sources)

Commande type : grep -n -E "<motif>" Source/LifePlay/* Source/LifePlayEditorTools/* ; décompte par grep -c (lignes), LifePlay / LifePlayEditorTools.

Motif LifePlay EditorTools Détail fichier:ligne
FTSTicker 40 0 14 sous-systèmes : AddTicker(FTickerDelegate::CreateUObject…) / RemoveTicker : LPColorGradeSubsystem.cpp:76,81 ; LPDirectControlSubsystem.cpp:566,582 ; LPHairstyleSubsystem.cpp:157,162 ; LPKeyboardSubsystem.cpp:538,547 ; LPMapMarkersGuardSubsystem.cpp:61,66 ; LPModDailies.cpp:88,93 ; LPModInfoSubsystem.cpp:79,85 ; LPOutdoorRoomSubsystem.cpp:29,34 ; LPPersonPropGuardSubsystem.cpp:66,72 ; LPSecondScreenSubsystem.cpp:50,55 ; LPSessionLogSubsystem.cpp:144,365,456 ; LPSettingsSubsystem.cpp:432,437 ; LPVideoQualitySubsystem.cpp:159,164 ; FTSTicker::FDelegateHandle en .h (ColorGrade:51, DirectControl:50, Hairstyle:91…)
UGameplayStatics 3 2 LPModSettingsLibrary.cpp:18,23,32 (Does/Load/SaveGameToSlot) ; LPDumpSaveCommandlet.cpp:42 (LoadGameFromMemory) ; LPTitleModManagerCommandlet.cpp:351 (GetPlayerController par nom)
AssetRegistry (motif large) 34 141 LPAssetRegistryHelpers.cpp:10-75 (GetAssetByObjectPath(FSoftObjectPath), GetSoftObjectPath) ; LPHairstyleSubsystem.cpp:499,595 ; LPModDailies.cpp:60,63,68 (ScanPathsSynchronous, GetAssetsByPath, AssetClassPath) ; 21 fichiers de commandlets appellent SearchAllAssets(true)
IPluginManager 3 0 LPModDailies.cpp:9,50 (GetEnabledPluginsWithContent)
MountExplicitlyLoaded / FPakPlatformFile / IoStore 0 0 aucun usage dans nos sources (voir §5.6 pour ModdingExtra)
ParseIntoArray 24 20 LifePlay : LPDataCompat.cpp (2), LPDirectControlSubsystem.cpp (3), LPHairstyleSubsystem.cpp (3), LPModInfoSubsystem.cpp (1), LPSessionLogSubsystem.cpp (6), LPStringCompat.cpp / .h (2 + 7) ; EditorTools : LPFixParseIntoArrayCommandlet (8 + 6) + 6 autres fichiers (1 chacun)
FString::Find 2 2 uniquement en commentaires : LPStringCompat.h:17,53 ; LPTestStringCompatCommandlet.cpp:35 ; LPTestStringCompatCommandlet.h:4 (le correctif CX-B12 réimplémente Find 4.27 dans ULPStringCompat)
GetSkinnedAsset 4 0 LPMeshCompat.cpp:18 ; LPSecondScreenSubsystem.cpp:31 ; LPMeshCompat.h:5,29 (commentaires)
USkeletalMesh 27 6 surtout LPDirectControlSubsystem, LPHairstyleSubsystem, LPMeshCompat
UPoseableMeshComponent 0 0 —
FSlate 44 0 LPKeyboardSubsystem.cpp (13), LPSettingsSubsystem.cpp (11), LPVideoQualitySubsystem.cpp / .h (7 + 2), LPColorGradeSubsystem.cpp / .h (6 + 1), LPDirectControlSubsystem.cpp (4)
SNew 28 0 LPKeyboardSubsystem.cpp (17), LPModInfoSubsystem.cpp (8 ; popup SOverlay/SBox/SBorder, l.158-163), LPDirectControlSubsystem.cpp (3)
UMG (motif) 3 4 LifePlay.Build.cs ; plus 45 inclusions de widgets UMG dans LifePlay (tableau §1)
Navigation 20 18 LPNavigationHelpers.h / .cpp ; NavigationSystem.h ; LPFixNavRandomPoint / LPFixDeprecatedNodes
Chaos 4 1 LPDebugSubsystem.cpp:9 (Chaos/TriangleMeshImplicitObject.h), :136 (Chaos::FTriangleMeshImplicitObjectPtr sur Body->TriMeshGeometries), :215, :227 ; le comptage EditorTools est un commentaire (LPSetComponentCollisionCommandlet.h:6)
Lumen 0 0 non utilisé dans les sources (GI dynamique désactivée en config, §5.2)
RHI 8 0 LPVideoQualitySubsystem.cpp:22-24 (DynamicRHI.h, RHI.h, RHIStats.h), :38 (GDynamicRHI), :43 (RHIGetTextureMemoryStats)
Scalability 17 0 LPVideoQualitySubsystem.cpp:184 (Scalability::FQualityLevels, GetQualityLevels) + 16 autres lignes du .cpp / .h
FCoreDelegates 2 0 LPDebugSubsystem.cpp:371 (OnEndFrame.AddUObject), :387 (RemoveAll)
UGameViewportClient 0 0 seul l'include Engine/GameViewportClient.h : LPDirectControlSubsystem.cpp:21, LPKeyboardSubsystem.cpp:10, LPModInfoSubsystem.cpp:7
FScreenshotRequest 0 0 —
TObjectPtr 5 1 LPDirectControlSubsystem.h:64,67,70,73 ; LPModDailies.h:45 ; LPPatchDailiesCommandlet.cpp:103
UE_DEPRECATED 0 0 aucune déclaration ; les avertissements de dépréciation du compilateur ne sont pas mesurés (aucun build)

Autres API notées au passage (grep ciblé, hors liste de la fiche) :

  • Sortie de journal : GLog->AddOutputDevice + 2 classes FOutputDevice (LPSessionLogSubsystem.cpp:71,122,170).
  • Commandlets : FSavePackageArgs 21 occurrences ; ReconstructNode 11 ; EdGraphSchema_K2.h 16 inclusions.
  • Chargement d'image : IImageWrapperModule::CreateImageWrapper (LPVictoryCompat.cpp:34-42).
  • FAssetData::ObjectPath (supprimé en 5.1) déjà remplacé par FSoftObjectPath (LPAssetRegistryHelpers).

3. Commandlets de LifePlayEditorTools (32)

Commande : ls Source/LifePlayEditorTools/*Commandlet.h + lecture des premières lignes de commentaire de chaque .h ; lignes = wc -l du .cpp. Classement d'après le texte d'en-tête et le nom, à confirmer par le propriétaire.

Commandlet Lignes .cpp Classe Source du classement
LPFixAssetRegistryNodes 219 portage 4.27 en-tête : « correctif introduit lors du portage 4.27, toujours actif »
LPFixAssetRegistryPins 319 portage 4.27 « correctif du 2026-09-28 »
LPFixButtonPadding 183 portage 4.27 « CX-B09 (ERR-034) »
LPFixDeprecatedNodes 323 portage 4.27 « remédiations R-03 et R-04 »
LPFixEditableTextBoxFont 264 portage 4.27 en-tête (broche Font)
LPFixFindCenter 255 portage 4.27 en-tête (FindCenterOfPolygon)
LPFixNavRandomPoint 303 portage 4.27 « lot L7b (R-04, CX-B11) »
LPFixOrphanBoundEvents 200 portage 4.27 « remédiation R-05 »
LPFixParseIntoArray 210 portage 4.27 « CX-B08 (ERR-027) »
LPFixPawnResponse 165 portage 4.27 en-tête (Room::addObject)
LPFixSceneCapture 159 portage 4.27 « lot L7j (ERR-031) »
LPFixSkeletalMeshGet 253 portage 4.27 « lot L7a (R-03, ERR-012) »
LPFixStringSearch 323 portage 4.27 « lot L7i (CX-B12) »
LPFixWhatWhere 315 portage 4.27 « couche de données, étape 4b »
LPFixZeroScaleActors 223 portage 4.27 « remédiation R-06 »
LPConvertAtmosphericFog 171 portage 4.27 « lot L7d, AAtmosphericFog dépréciée depuis 4.26 »
LPTestStringCompat 164 portage 4.27 (test) « lot L7i, test de ULPStringCompat »
LPResavePackages 96 portage 4.27 « CX-B07 (ERR-022, EX-03) »
LPSetComponentCollision 137 portage / optimisation « lot O9, défaut déjà présent en 4.27 »
LPCheckMeshAssignment 155 diagnostic ponctuel « diagnostic du 2026-09-08 »
LPCheckMeshes 84 diagnostic ponctuel « lot L7h (ERR-018) »
LPPairCollisionTest 519 essai isolé « essai isolé, éditeur seulement »
LPCheckStreetMap 192 actif « vérification du chargement des assets ville après migration »
LPDumpAssets 127 actif (outil) « photographie de paquets pour diff avant / après »
LPDumpCDO 91 diagnostic réutilisable « lot L7i »
LPDumpComponents 155 diagnostic réutilisable « ERR-031 »
LPDumpFunction 180 actif (outil d'analyse) « outil d'analyse »
LPDumpSave 94 diagnostic réutilisable « lot L7i »
LPDumpWidgetTree 124 diagnostic réutilisable « ERR-034, ERR-031 »
LPEditWidget 240 actif « lot UI14 »
LPPatchDailies 241 actif « lot AP5, chaîne d'animations »
LPTitleModManager 403 actif « lot UI15, gestionnaire de mods »

Décompte : 18 « portage 4.27 » (15 LPFix*, ConvertAtmosphericFog, TestStringCompat, ResavePackages) ; 1 portage / optimisation (SetComponentCollision) ; 3 diagnostics ponctuels ou essais (CheckMeshAssignment, CheckMeshes, PairCollisionTest) ; 10 outils actifs ou diagnostics réutilisables (CheckStreetMap, DumpAssets, DumpCDO, DumpComponents, DumpFunction, DumpSave, DumpWidgetTree, EditWidget, PatchDailies, TitleModManager). Total 32.

Les commandlets du portage 4.27 reposent sur les API éditeur les plus instables d'une version à l'autre (K2Node, EdGraph, SavePackage) : candidats à « retrait ou désactivation du module » pour réduire la surface de compilation en 5.8 ; décision à prendre à un niveau supérieur.

4. Blueprints et contenu

Commandes : for d in */; do find "$d" -name '*.uasset' | wc -l; done depuis Content/ ; tailles par find -printf '%s'. Aucun fichier ouvert.

Dossier racine Content/ .uasset .umap Taille (Mo)
AnimPacks 20 0 20,9
BPs 27 0 85,7
Characters 1 0 7,9
Collections, Developers, Modules, Movies, Saves 0 0 0
FreeAnimationsPack 134 1 495,7
Heavy (exclu de l'audit) 8 270 0 6 219,3
Quaternius 137 0 64,5
Render 11 0 0,1
Retarget_ue5 5 0 0,5
Scenes 1 1 0,5
Structs 57 0 0,4
UI 195 0 32,7
ExternalActors 190 0 178,9
ExternalObjects 20 0 0,0

Total hors Heavy et Modules : 798 .uasset (find . -name '*.uasset' -not -path './Heavy/*' -not -path './Modules/*' | wc -l) ; avec Heavy : 9 068. Content/Modules est vide dans cet arbre (il est cuit en « non UFS », §5.3).

Les 15 plus gros .uasset (hors Heavy / Modules), find -printf '%s %p\n' | sort -rn | head -15 :

# Taille (octets) Fichier
1 72 640 384 FreeAnimationsPack/Demo/Characters/Mannequins/Meshes/SKM_Manny.uasset
2 69 080 160 FreeAnimationsPack/…/Meshes/SKM_Quinn.uasset
3 51 917 561 BPs/GI.uasset
4 37 594 042 FreeAnimationsPack/…/Meshes/SKM_Manny_Simple.uasset
5 35 665 481 FreeAnimationsPack/…/Meshes/SKM_Quinn_Simple.uasset
6 22 111 776 ExternalActors/VehicleTemplate/Maps/VehicleOffroadExampleMap/9/O4/E3Z8H79ZU52XLU8ILP50RQ.uasset
7 21 135 848 FreeAnimationsPack/…/Textures/Manny/T_Manny_02_BN.uasset
8 20 616 335 BPs/Person.uasset
9 19 703 340 FreeAnimationsPack/…/Textures/Quinn/T_Quinn_02ID_BN.uasset
10 19 137 278 ExternalActors/VehicleTemplate/…/3/S0/RJKVJCDVTHKGGSDSDG2W9T.uasset
11 19 116 860 ExternalActors/VehicleTemplate/…/D/1P/LIVOURXQMVQB9GBPKV0RLA.uasset
12 18 511 165 FreeAnimationsPack/…/Textures/Manny/T_Manny_01_BN.uasset
13 16 106 381 FreeAnimationsPack/…/Textures/Quinn/T_Quinn_01ID_BN.uasset
14 16 064 152 ExternalActors/VehicleTemplate/…/2/5C/5G8PYJ4E4VYUH6BJJZ6714.uasset
15 13 673 464 FreeAnimationsPack/…/Textures/Manny/T_Manny_02_MSR_MSK.uasset

Blueprints de jeu les plus lourds (find Content/BPs Content/UI) : GI 51,9 Mo, Person 20,6 Mo, Room 5,7 Mo, CharGen 4,9 Mo, StreetMap_Static 4,5 Mo, ContactMenu 3,9 Mo, TopRight 3,6 Mo, PC 3,4 Mo. GI.uasset est la GameInstanceClass (/Game/BPs/GI.GI_C, DefaultEngine.ini). Contenu des graphes (nœuds obsolètes, dépendances) : à approfondir (niveau supérieur), non analysé ici.

Les 4 plus gros fichiers de FreeAnimationsPack (mannequins) et les __ExternalActors__/VehicleTemplate relèvent de contenu de modèle de projet ; FreeAnimationsPack est en DirectoriesToNeverCook.

5. Configuration

Commandes : cat Config/DefaultEngine.ini, DefaultGame.ini, DefaultScalability.ini, LifePlay.uproject ; grep -h -o '^r\.[A-Za-z0-9.]*' Config/DefaultScalability.ini | sort -u.

5.1 Versions

Clé Valeur Source
EngineAssociation "5.5" LifePlay.uproject
ProjectVersion 2026.10.1.6 Config/DefaultGame.ini
Description (uproject) « LifePlay 2026.9 beta - portage UE 5.5 » LifePlay.uproject
IncludeOrderVersion / DefaultBuildSettings Unreal5_5 / V5 Source/*.Target.cs

5.2 Rendu (DefaultEngine.ini)

Réglage Valeur Remarque
r.AntiAliasingMethod 2 (TAA) commentaire : TSR (défaut UE5 = 4) fait scintiller les morphs ; lot L6a
r.DynamicGlobalIlluminationMethod 0 (pas de Lumen) lot L7c
r.ReflectionMethod 2 (SSR) lot L7c
r.Shadow.Virtual.Enable 0 (pas de VSM) lot L7c
r.DefaultFeature.AutoExposure False
r.TextureStreaming True
r.DefaultFeature.AmbientOcclusionStaticFraction False
r.AllowStaticLighting True
r.MinScreenRadiusForCSMDepth 0.01
r.AllowOcclusionQueries True
DefaultGraphicsRHI DefaultGraphicsRHI_DX12 WindowsTargetSettings ; SM5
Nanite non réglé aucune clé Nanite dans les .ini (grep -c -i nanite Config/*.ini : 0 dans chaque fichier)
HardwareTargeting Desktop / Maximum
RecastNavMesh AgentRadius 13, CellSize 19, TileSizeUU 1000, RuntimeGeneration Dynamic
PhysicsSettings clés héritées 4.27 (PhysXTreeRebuildRate, bEnablePCM, bSubstepping…) à confirmer par UA-T4 (clés possiblement ignorées ou renommées côté Chaos)

[CoreRedirects] : 1 redirection de package, 1 de classe, 1 d'enum vers /Script/LifePlay (Victory Plugin → LPVictoryCompat).

5.3 Empaquetage (DefaultGame.ini)

Clé Valeur
Build / BuildConfiguration IfProjectHasCode / PPBC_Shipping
StagingDirectory D:/Game/LifePlay_Build_5.5 (chemin codé en dur)
UsePakFile True
bUseIoStore True (Oodle Kraken, lot O2)
bCompressed True
bGenerateChunks / bGenerateNoChunks False / False
DirectoriesToAlwaysCook /Game (1 entrée)
DirectoriesToNeverCook 20 entrées (grep -c) : /Game/Heavy/New/fBlah, 4 dossiers de la chaîne d'animation (/Game/Quaternius, /Game/FreeAnimationsPack, /Game/AnimPacks, /Game/Retarget_ue5), 15 plugins éditeur (/Interchange, /InterchangeAssets, /NNEDenoiser, /NNERuntimeORT, /SpeedTreeImporter, /Paper2D, /MovieRenderPipeline, /USDCore, /Bridge, /Fab, /LiveLink, /MetaHumanSDK, /Takes, /PythonScriptPlugin, /ChaosVD)
DirectoriesToAlwaysStageAsNonUFS Modules
IncludePrerequisites True
McpAutomationBridge bEnableNativeMCP=True, port 3000

5.4 Scalabilité (DefaultScalability.ini, 127 lignes)

Groupes couverts : ShadowQuality @0-3, TextureQuality @0-3, EffectsQuality @0-3, AntiAliasingQuality @0-3. 17 variables distinctes : r.DetailMode, r.MaxAnisotropy, r.PostProcessAAQuality, r.RefractionQuality, r.SSS.SampleSet, r.SSS.Scale, r.Shadow.CSM.MaxCascades, r.Shadow.CSM.TransitionScale, r.Shadow.DistanceScale, r.Shadow.MaxCSMResolution, r.Shadow.MaxResolution, r.Shadow.PreShadowResolutionFactor, r.Shadow.RadiusThreshold, r.Streaming.MaxEffectiveScreenSize, r.Streaming.MipBias, r.Streaming.PoolSize, r.TranslucencyLightingVolumeDim. Les autres groupes et le niveau Cinematic sont laissés aux valeurs de Engine/Config/BaseScalability.ini (spécification VQ1, en-tête du fichier) : tout changement de valeurs par défaut du moteur 5.8 s'y applique sans décision.

Autres fichiers : DefaultInput.ini (1 section InputSettings), DefaultEditor.ini (1 section, profils de scène de prévisualisation), DefaultEditorSettings.ini.

5.5 Plugins moteur (LifePlay.uproject, 27 entrées)

  • Plugins du projet (5) : LPAnimCore (Win64), LPSandbox (Optional, Win64), ModdingExtra, StreetMap, McpAutomationBridge (Optional, Editor).
  • Moteur, jeu et éditeur : EnhancedInput (1).
  • Moteur, désactivé : AndroidFileServer (1).
  • Moteur, éditeur seulement (TargetAllowList: Editor, 20) : NNEDenoiser, NNERuntimeORT, Interchange, InterchangeAssets, InterchangeTests, Fab, Bridge, MetaHumanSDK, SpeedTreeImporter, HairStrands, MovieRenderPipeline, Paper2D, USDCore, ChaosVD, LiveLink, ConcertMain, ConcertSyncClient, ConcertSyncCore, Takes, PythonScriptPlugin.
  • AdditionalPluginDirectories : ../LifePlay-Sandbox/Plugins (chemin relatif hors dépôt).
  • Plugins susceptibles d'être renommés, déplacés ou passés en expérimental en 5.8 : à vérifier par UA-T4 (notamment HairStrands, NNEDenoiser / NNERuntimeORT, Bridge, MetaHumanSDK, Paper2D, ChaosVD, Concert*).

5.6 Plugins du projet (code)

Commande : find Plugins/<p>/Source \( -name '*.cpp' -o -name '*.h' \) | wc -l ; ... -exec cat {} + | wc -l.

Plugin Type Fichiers Lignes Version
LPAnimCore Runtime 5 783 1.0.0
ModdingExtra Runtime (contenu : oui) 6 710 1.0
StreetMap Runtime + Editor (contenu : oui) 28 4 853 1.0
McpAutomationBridge Editor, 2 modules (McpAutomationBridge, McpAutomationBridgeFab) 1 624 237 902 0.6.0-beta-b

Aucun .uplugin du projet ne porte de champ EngineVersion (grep sur les 4 fichiers). Dépendances de modules : StreetMap utilise UnrealEd, AssetTools, EditorStyle, PropertyEditor, XmlParser, Projects, Slate (API éditeur) ; ModdingExtra : AssetRegistry, Json, Engine, Slate, SlateCore ; LPAnimCore : Core, CoreUObject, Engine. McpAutomationBridge est de loin le plus gros volume de code éditeur à recompiler en 5.8 (code tiers en bêta) : décision garder / désactiver à un niveau supérieur. Le mécanisme de montage des mods (ModdingExtra) n'est pas analysé ici : à approfondir (niveau supérieur).

6. Chemins moteur codés en dur

Commande : grep -rIn -E "UE_5\.[0-9]|UE_4\.[0-9]+|UE4\.27|4\.27|Launcher|UnrealEditor|RunUAT" Tools Config Source Plugins/*/Source Build *.bat ; find . -maxdepth 2 \( -name '*.bat' -o -name '*.cmd' \) : aucun lanceur .bat/.cmd trouvé hors Releases et Intermediate.

Fichier:ligne Contenu Action en 5.8
Tools/BuildDebug.ps1:19 $UE = 'D:\Game\Launcher\Engine\UE_5.5\Engine' ; l.29 RunUAT.bat changer le chemin par défaut
Tools/RunCommandlet.ps1:20 $Engine = 'D:\Game\Launcher\Engine\UE_5.5\Engine' ; l.23 UnrealEditor-Cmd.exe changer le chemin par défaut
Config/DefaultGame.ini:16 StagingDirectory=(Path="D:/Game/LifePlay_Build_5.5") dossier de sortie, pas un chemin moteur
Tools/CheckIntegrity.ps1:21 $Root427 = 'D:\Game\LifePlay-master 4.27' référence 4.27, indépendante de 5.8
Tools/AuditAssets.py, AuditScriptDeps.py, BuildCollections.py, FixTextureMips.py en-têtes : UnrealEditor-Cmd.exe <projet> -run=pythonscript … aucun chemin moteur ; scripts Python éditeur (API unreal à confirmer en 5.8)
Config/*.ini aucun chemin UE_5.5 / UE_4.27 ; seulement des commentaires (« 4.27 », « 5.5 ») aucun
Source/**, Plugins/*/Source aucun UE_5.5 / UE_4.27 aucun
Docs : 02, 03, 08, 09, 13, 18, 24, 25, 27, Journal_Modifications mentions d'éditeur / moteur (grep -rIl) à mettre à jour après migration

La version du moteur est aussi fixée par EngineAssociation (« 5.5 ») ; Misc/EngineVersion.h est inclus 1 fois dans LifePlay (consultation de version, rôle exact à approfondir au niveau supérieur).

7. Surface exposée : les 20 points les plus susceptibles de casser en 5.8

Classement par probabilité et coût estimés par le rédacteur (aucune compilation faite). Chaque point est à confirmer par UA-T4 (notes de version / en-têtes 5.8). Les mentions « à approfondir (niveau supérieur) » signalent un mécanisme qu'il faudrait suivre, non analysé ici.

# Point Où Motif de risque
1 Chaos::FTriangleMeshImplicitObjectPtr / Body->TriMeshGeometries LPDebugSubsystem.cpp:9,136,215,227 API interne Chaos, non stable ; type du pointeur de géométrie sujet à refonte
2 RHIGetTextureMemoryStats, GDynamicRHI, FTextureMemoryStats LPVideoQualitySubsystem.cpp:22-24,38,43 API RHI privée, refontes récurrentes
3 Plugin McpAutomationBridge (1 624 fichiers, 237 902 lignes) Plugins/McpAutomationBridge gros volume de code éditeur tiers en bêta, compilé avec l'éditeur. À approfondir (niveau supérieur)
4 Commandlets du portage 4.27 : K2Node / EdGraph / ReconstructNode LifePlayEditorTools (117 inclusions éditeur, 11 ReconstructNode) API Blueprint éditeur régulièrement modifiée ; 18 commandlets à usage unique : candidats au retrait
5 FSavePackageArgs / UPackage::SavePackage 21 commandlets (UObject/SavePackage.h x21) ; LPConvertAtmosphericFogCommandlet.cpp:149-152 signature et options de sauvegarde déjà modifiées entre 5.0 et 5.5
6 UEdGraphSchema_K2, K2Node_* (≈20 types) LifePlayEditorTools noms de pins et de fonctions de bibliothèques susceptibles de bouger
7 FTSTicker (14 sous-systèmes, 40 lignes) LPColorGradeSubsystem.cpp:76 … LPVideoQualitySubsystem.cpp:159 usage massif ; vérifier toute dépréciation de FTickerDelegate / FDelegateHandle en 5.8
8 IPluginManager::GetEnabledPluginsWithContent LPModDailies.cpp:50 dépend du comportement de montage des plugins de contenu de mod
9 Montage des mods et conteneurs (ModdingExtra, DirectoriesToAlwaysStageAsNonUFS=Modules, IoStore) Plugins/ModdingExtra ; DefaultGame.ini mécanisme non analysé. À approfondir (niveau supérieur)
10 Scalability::FQualityLevels / GetQualityLevels LPVideoQualitySubsystem.cpp:184 (+16 lignes) structure des niveaux de scalabilité (groupes ajoutés ou renommés) ; lien avec DefaultScalability.ini
11 FSlateApplication, SNew, widgets Slate (44 + 28 lignes) LPKeyboardSubsystem.cpp, LPModInfoSubsystem.cpp, LPSettingsSubsystem.cpp, LPDirectControlSubsystem.cpp API Slate (styles FCoreStyle, FSlateTypes) : dépréciations probables
12 FCoreDelegates::OnEndFrame LPDebugSubsystem.cpp:371,387 signature d'événement de fin de frame
13 GetSkinnedAsset / USkeletalMesh LPMeshCompat.cpp:18 ; LPSecondScreenSubsystem.cpp:31 transition USkinnedAsset / USkeletalMesh ; 27 usages de USkeletalMesh à vérifier
14 FSoftObjectPath, GetAssetByObjectPath, AssetClassPath, ScanPathsSynchronous LPAssetRegistryHelpers.cpp:10-75 ; LPHairstyleSubsystem.cpp:499,595 ; LPModDailies.cpp:60-73 API AssetRegistry déjà migrée une fois (5.1) ; 21 commandlets appellent SearchAllAssets
15 ParseIntoArray (44 lignes), FString::Find LPStringCompat.*, LPDataCompat.cpp, LPSessionLogSubsystem.cpp (6) … le correctif CX-B12 suppose le comportement 5.5 ; tout changement en 5.8 touche les données du jeu. À approfondir (niveau supérieur)
16 GLog->AddOutputDevice + FOutputDevice LPSessionLogSubsystem.cpp:71,122,170 signature de Serialize (verbosité, catégorie) et thread-safety
17 UGameplayStatics SaveGame (Load / SaveGameToSlot) LPModSettingsLibrary.cpp:18,23,32 ; LPDumpSaveCommandlet.cpp:42 format et compatibilité des sauvegardes existantes. À approfondir (niveau supérieur)
18 NavigationSystem / K2_GetRandomLocationInNavigableRadius LPNavigationHelpers.h / .cpp ; LPFixNavRandomPointCommandlet surface déjà modifiée en 5.5 (R-04) ; RecastNavMesh en config
19 Réglages de rendu hérités : TAA, SSR, pas de VSM / Lumen, DX12 ; BaseScalability.ini du moteur DefaultEngine.ini ; DefaultScalability.ini valeurs par défaut du moteur 5.8 ; verrouillage actuel en config, mais les groupes non couverts suivent le défaut moteur
20 Plugins moteur éditeur (20) et PhysicsSettings hérités 4.27 LifePlay.uproject ; DefaultEngine.ini plugins renommés / dépréciés / expérimentaux ; clés PhysXTreeRebuildRate etc. possiblement ignorées

Points secondaires non classés : chemins de Tools/*.ps1 (§6, changement trivial) ; TObjectPtr (6 usages, API stable) ; UE_DEPRECATED (0 dans nos sources).

8. Commandes utilisées (récapitulatif)

# depuis D:\Game\LifePlay-master 5.5
ls Source Source/*; cat Source/*/*.Build.cs Source/*.Target.cs; cat LifePlay.uproject
cat Source/<m>/*.cpp Source/<m>/*.h | wc -l ; grep -h "UCLASS" Source/<m>/* | wc -l
grep -ho '#include *[<"][^>"]*[>"]' Source/<m>/* | sort | uniq -c | sort -rn
grep -c -E "<motif>" Source/<m>/*          # §2 ; grep -n pour fichier:ligne
grep -h -E "UFUNCTION\(.*Blueprint(Callable|Pure)" Source/LifePlay/*.h
find Content/<dossier> -name '*.uasset' | wc -l ; find ... -printf '%s %p\n' | sort -rn | head -15
cat Config/DefaultEngine.ini Config/DefaultGame.ini Config/DefaultScalability.ini
grep -rIn -E "UE_5\.[0-9]|UE_4\.[0-9]+|Launcher|UnrealEditor|RunUAT" Tools Config Source Plugins/*/Source
find Plugins/<p>/Source \( -name '*.cpp' -o -name '*.h' \) | wc -l

Limites : regroupement des en-têtes par module UE déduit du chemin ; grep -c compte des lignes ; classement des commandlets d'après leurs commentaires d'en-tête ; aucune mesure de dépréciation par le compilateur (aucun build, conformément à la fiche).