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.hx16). - 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 classesFOutputDevice(LPSessionLogSubsystem.cpp:71,122,170). - Commandlets :
FSavePackageArgs21 occurrences ;ReconstructNode11 ;EdGraphSchema_K2.h16 inclusions. - Chargement d'image :
IImageWrapperModule::CreateImageWrapper(LPVictoryCompat.cpp:34-42). FAssetData::ObjectPath(supprimé en 5.1) déjà remplacé parFSoftObjectPath(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).