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

25 KiB
Raw Blame History

Fiche UA-T2 — Niveau N3 — Modèle prévu opus-xhigh | utilisé opus (effort par défaut)

Audit des plugins avant la migration UE 5.5 vers 5.8 (lot UA, plan Docs/Migration/27_Plan_Migration_UE58.md). Date : 2026-10-08. Dépôt jeu à 190bd56, addon LifePlay-Sandbox à cfa7b6a. Lecture seule : aucune compilation, aucun lancement, aucun git d'écriture.

Méthode. Lecture des .uplugin, *.Build.cs, sources et de LifePlay.uproject. Les en-têtes des moteurs installés ont été comparés directement : D:\Game\Launcher\Engine\UE_5.5 et D:\Game\Launcher\Engine\UE_5.8 (5.8.3, CL 58210709, installé le 2026-10-08 ; Engine/Source présent). Une API « présente en 5.8 » a été vérifiée par recherche de la déclaration dans l'en-tête 5.8. Une API « absente » veut dire que la déclaration ne figure plus dans l'en-tête 5.8 : l'erreur de compilation est attendue, et l'essai UA-T5 la mesurera. Recherche web pour l'origine et la maintenance de StreetMap, de McpAutomationBridge et de Bridge / Fab.

Légende des sections : Établi = constaté dans un fichier (fichier:ligne) ou sur une URL. Estimé = déduction chiffrée avec sa méthode. Incertain = ne peut pas être tranché sans compiler ni lancer (renvoyé à UA-T5 ou U3/U4).


Tableau récapitulatif

Plugin Dépôt Modules (type) Risque 5.8 Cause principale Effort estimé
LPAnimCore jeu LPAnimCore (Runtime) moyen UAnimSequence::GetBoneTransform(…, double Time, …) absent en 5.8 (LPCoupleSimCore.cpp:155) 0,25 séance
ModdingExtra jeu ModdingExtra (Runtime, PreLoadingScreen) faible API fichiers et registre d'assets inchangées ; contrat mods figé 0,25 séance (+ tests UA-T3/U5)
StreetMap jeu (tiers, MIT) StreetMapRuntime (Runtime), StreetMapImporting (Editor) moyen Proxy de rendu maison (FPrimitiveSceneProxy), API dépréciée 5.7 (GetMaterialRelevance(FeatureLevel)), plugin amont figé depuis 2023 ; 310 assets du jeu le référencent 1 à 2 séances (compilation) + validation des villes en U5
McpAutomationBridge jeu (gitignoré, MIT, tiers) McpAutomationBridge, McpAutomationBridgeFab (Editor) moyen (sans effet sur le jeu) 1 624 fichiers, 238 k lignes, bêta ; dépendances obligatoires (Fab / Bridge facultatifs) ; version locale 0.6.0-beta-b 0 (désactivé, P7) à 1 séance (mise à jour vers une version amont)
LPSandbox (module LPSandbox) addon Runtime, interdit en Shipping faible Slate, viewport, captures : API présentes en 5.8 0,25 séance
LPSandbox (module LPAnimMeasure) addon Runtime moyen même appel GetBoneTransform(double) (LPPoseMeasure.cpp:1283) 0,25 séance
LPSandbox (module LPModTools) addon Editor moyen API éditeur des maillages et de l'animation (GetImportedModel, IAnimationDataController, MeshDescription) ; présentes en 5.8, comportement à vérifier 0,5 séance (compilation + un passage de la chaîne de l'atelier)
Plugins moteur activés (21 entrées) moteur — élevé pour Fab et Bridge, faible pour les autres Fab et Bridge absents de l'installation 5.8 alors que le .uproject les déclare activés et non Optional 0,1 séance (édition du .uproject ou installation par le Launcher)

Total estimé, plugins seuls : 3 à 4,5 séances (compilation et corrections), hors validation des villes (U5) et hors cuisson des mods (UA-T3). Méthode en fin de document.


1. LPAnimCore (Plugins/LPAnimCore)

Établi

  • Rôle : redirection des clips convertis (LPAnimRedirect) et géométrie commune du couple (LPCoupleSim) ; rapatrié de l'addon au lot DC1 (LPAnimCore.uplugin:6, LPAnimCore.Build.cs:1-3).
  • Origine / licence : code maison LifePlay ("CreatedBy": "LifePlay"), pas de licence tierce.
  • Modules : LPAnimCore, Runtime, PreDefault, Win64 seulement (LPAnimCore.uplugin:11-19).
  • Dépendances moteur : Core, CoreUObject, Engine (LPAnimCore.Build.cs:13).
  • Taille : 5 fichiers, 783 lignes.
  • Qui en dépend : LifePlay.Build.cs:45 (dépendance publique) ; Source/LifePlay/LPDirectControlSubsystem.cpp, LPShowCoupleSubsystem.cpp/.h ; dans l'addon, LPSandbox.Build.cs:25 et LPAnimMeasure.Build.cs:23 (15 fichiers de l'addon incluent ses en-têtes ou ceux de LPAnimMeasure).
  • API sensibles :
    • LPCoupleSimCore.cpp:155 : Anim->GetBoneTransform(Xform, FSkeletonPoseBoneIndex(Index), Time, false) avec double Time. En 5.5, la surcharge existe (UE_5.5/.../Animation/AnimSequence.h:569). En 5.8, seule la surcharge GetBoneTransform(FTransform&, FSkeletonPoseBoneIndex, const FAnimExtractContext&, bool) reste (UE_5.8/.../Animation/AnimSequence.h:508). La surcharge à contexte n'existe pas en 5.5 (relevé des lignes 569, 572, 582 de l'en-tête 5.5).
    • LPCoupleSimCore.cpp:113-119, 140, 173, 179 : GetSkeleton, GetReferenceSkeleton, GetRefBonePose, GetPlayLength, GetComponentSpaceTransforms, GetRelativeTransform : API stables.

Estimé

  • Risque : moyen. Une erreur de compilation certaine (une ligne), sur un module que le jeu charge en PreDefault : tant qu'elle n'est pas corrigée, le jeu ne compile pas.
  • Effort : 0,25 séance. Méthode : 1 site à corriger + 1 compilation du module + 1 contrôle de LPShowCoupleSubsystem (géométrie du couple) en jeu.

Parade

Construire un FAnimExtractContext à partir de Time et appeler la surcharge à contexte. Comme elle n'existe pas en 5.5, entourer l'appel d'un garde #if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 8 (ou de la version qui l'a introduite, à lire en U1) tant que la branche 5.5 doit compiler.

Incertain

  • Version exacte qui a retiré la surcharge double (5.6, 5.7 ou 5.8) et égalité numérique des deux chemins (interpolation par défaut) : à mesurer en U4 sur la sandbox (mesures de pose avant / après).

2. ModdingExtra (Plugins/ModdingExtra)

Établi

  • Rôle : bibliothèque Blueprint du système de mods (lister fichiers et sous-dossiers, LoadTxt / SaveTxt, ContentDirectory, IsPointInsidePolygon) et cache de données compilé LPDataCache (Saved/LPDataCache) (ModdingExtraBPLibrary.h:34-50, ModdingExtra.Build.cs:36-37).
  • Origine / licence : auteur d'origine du jeu ("CreatedBy": "Vinfamy", ModdingExtra.uplugin:8), gabarit de plugin Epic ; pas de fichier de licence. Modifié au portage 5.5 (lot O2b, couche de données).
  • Modules : ModdingExtra, Runtime, PreLoadingScreen (ModdingExtra.uplugin:17-20).
  • Dépendances moteur : publiques Core ; privées CoreUObject, AssetRegistry, Json, Engine, Slate, SlateCore (ModdingExtra.Build.cs:22-42). Slate / SlateCore ne sont pas utilisés par le code (aucune occurrence dans Private/*.cpp).
  • Taille : 6 fichiers, 655 lignes de code.
  • Qui en dépend : 12 assets de Content/ contiennent /Script/ModdingExtra (dont BPs/GI, BPs/Room, UI/CityMenu, UI/CharGen, UI/MainMenu, UI/Inventory). Aucun module C++ du jeu ne le lie.
  • API sensibles (toutes présentes en 5.8, vérifié dans les en-têtes) :
    • ModdingExtraBPLibrary.cpp:83 : IAssetRegistry::GetAssetsByPath(FName, …) (UE_5.8/.../IAssetRegistry.h:311).
    • ModdingExtraBPLibrary.cpp:90 : FAssetData::AssetClassPath / GetClassPathName.
    • ModdingExtraBPLibrary.cpp:165 : FCoreDelegates::OnEnginePreExit (UE_5.8/.../CoreDelegates.h:262).
    • LPDataCache.cpp:109 : IFileManager::IterateDirectoryStatRecursively (UE_5.8/.../FileManager.h:210).
    • ModdingExtraBPLibrary.cpp:66, 255 : FindFilesRecursive, ConvertToAbsolutePathForExternalAppForRead.

Estimé

  • Risque : faible à la compilation. L'enjeu réel est le contrat mods figé (lecture des .lpmod, liste des villes de CityMenu en IoStore) : il relève de UA-T3 et des tests de U5, pas du code du plugin.
  • Effort : 0,25 séance (compilation, retrait facultatif de Slate / SlateCore inutilisés, essai « nouvelle partie » qui liste les villes ; cf. mémoire « Packaging test paths »).

Incertain

  • Comportement de FindFilesRecursive et du repli registre d'assets avec les conteneurs IoStore de 5.8 : se mesure seulement sur un build empaqueté 5.8 (U5/U6).

3. StreetMap (Plugins/StreetMap)

Établi

  • Rôle : importe des données OpenStreetMap (.osm) en asset UStreetMap et les rend par un composant UStreetMapComponent (routes, bâtiments, collision, navigation). C'est le support des villes du jeu.
  • Origine : plugin de Mike Fricker, github.com/ue4plugins/StreetMap (StreetMap.uplugin:8-10, README.md « Street Map Plugin for UE4 », « just a fun weekend project and not officially supported by Epic »). Licence MIT, © 2017 Mike Fricker (LICENSE.txt). Dernier commit amont : 2023-05-29, « Miscellaneous fixes for warnings in 5.2 » (https://api.github.com/repos/ue4plugins/StreetMap/commits). Dépôt non archivé, aucune version 5.6+ publiée en amont.
  • Historique local : un seul commit, 1122e17 2026-09-29 edujiro5972 L0 : etat initial du projet 5.5 avant toute correction ; le plugin est arrivé avec le projet 5.5 déjà porté.
  • Écarts avec l'amont identifiés (marqués dans le code) :
    • StreetMap.h:395-398, StreetMap.cpp:20-31 : GetAssetRegistryTags(FAssetRegistryTagsContext) (portage 5.5).
    • StreetMapSceneProxy.cpp:169 : commentaire « RegisterOneFrameMaterialProxy renvoie void (il renvoie le pointeur à partir de 5.6) ».
    • StreetMapSceneProxy.h:14-30 : sommets en FVector3f / FVector2f (adaptation UE5, origine amont ou locale non tranchée sans diff complet).
  • Modules : StreetMapRuntime (Runtime), StreetMapImporting (Editor) (StreetMap.uplugin:17-29).
  • Dépendances moteur : Runtime → Core, CoreUObject, Engine, RHI, RenderCore, NavigationSystem (StreetMapRuntime.Build.cs:10-18). Importing → UnrealEd, XmlParser, AssetTools (en double), Projects, Slate, EditorStyle, SlateCore, PropertyEditor, RenderCore, RHI, RawMesh, AssetRegistry, StreetMapRuntime (StreetMapImporting.Build.cs:10-29). EditorStyle et RawMesh existent encore en 5.8 (UE_5.8/Engine/Source/Editor/EditorStyle, Runtime/RawMesh).
  • Taille : 28 fichiers, 4 853 lignes ; contenu StreetMapDefaultMaterial.uasset, icônes.
  • Qui en dépend : 310 assets de Content/ contiennent /Script/StreetMapRuntime (dont BPs/Birdview, BPs/CityExpansion, BPs/GI, BPs/MapMarkers, BPs/PC, les cartes de villes Heavy/StreetMap) ; LifePlayEditorTools.Build.cs:32 (commandlet LPCheckStreetMapCommandlet) ; LPDataCompat.cpp:274-275 (chemins CentralLondon), LPDebugSubsystem.cpp:190, LPDirectControlSubsystem.cpp:388 (par nom de classe ou d'acteur, sans liaison C++).
  • API sensibles (5.5 vs 5.8, en-têtes installés) :
    • StreetMapSceneProxy.cpp:20 : UMeshComponent::GetMaterialRelevance(ERHIFeatureLevel) → UE_DEPRECATED(5.7) en 5.8 (UE_5.8/.../Components/MeshComponent.h:127) ; remplaçant avec EShaderPlatform (ligne 129). Avertissement C4996, pas une erreur.
    • StreetMapSceneProxy.cpp:7, 38, 79-84 : FLocalVertexFactory(FeatureLevel, …), FStaticMeshVertexBuffers::InitFromDynamicVertex, BeginInitResource(FRenderResource*) : déclarations présentes en 5.8 (LocalVertexFactory.h, StaticMeshResources.h, RenderResource.h:218).
    • StreetMapSceneProxy.cpp:170, 186 : FMeshElementCollector::RegisterOneFrameMaterialProxy : présent en 5.8 et renvoie void (UE_5.8/.../MeshElementCollector.h:92). Le commentaire local « renvoie le pointeur à partir de 5.6 » est faux pour 5.8.3 : sans incidence, le code n'utilise pas de retour.
    • StreetMapSceneProxy.h:100-104 : surcharges DrawStaticElements, GetDynamicMeshElements, GetViewRelevance, CanBeOccluded, GetMemoryFootprint : signatures identiques en 5.8 (PrimitiveSceneProxy.h:439, 542, 611, 687).
    • StreetMapComponent.cpp:84-130 : GetPhysicsTriMeshData, ContainsPhysicsTriMeshData, WantsNegXTriMesh (interface Interface_CollisionDataProvider.h:32, 55, inchangée) ; :141-169 UBodySetup, CreatePhysicsMeshes ; :613 FNavigationSystem::UpdateComponentData (UE_5.8/.../AI/NavigationSystemBase.h:136).
    • StreetMapComponentDetails.cpp:222-302 (éditeur, « créer un StaticMesh ») : FRawMesh, SourceModel->RawMeshBulkData->SaveRawMesh, ImportVersion, UStaticMesh::Build(bool) : présents en 5.8 mais chemin hérité (l'API moderne passe par FMeshDescription).
    • StreetMapAssetTypeActions.h:4 : FAssetTypeActions_Base (toujours présent en 5.8, remplacé à terme par UAssetDefinition).
    • StreetMap.h:525 : UAssetImportData en Instanced ; StreetMapReimportFactory.cpp:44 UFactory::StaticImportObject.

Estimé

  • Risque : moyen. Les signatures relevées existent en 5.8 ; le risque vient (1) du proxy de rendu maison, dont le comportement (pertinence statique / dynamique, ombres, Lumen, Nanite absent) n'est garanti que par une capture en jeu, (2) d'un amont non maintenu : toute rupture sera corrigée par nous, (3) de la masse d'assets (310) et des villes à revalider (LPCheckStreetMap, 280 villes).
  • Effort : 1 à 2 séances. Méthode : ~8 points d'appel moteur sensibles (proxy, collision, navigation, importation) ; 0,5 séance de compilation et d'avertissements ; 0,5 à 1 séance de vérification visuelle (captures même cadrage avant / après, cf. mémoire « Compare before rollback ») ; la validation des 280 villes est comptée en U5.

Parade

  • Garder le plugin dans le dépôt (MIT) ; corriger GetMaterialRelevance par la surcharge EShaderPlatform (GetScene().GetShaderPlatform()) ; corriger le commentaire de StreetMapSceneProxy.cpp:169.
  • Ne pas toucher l'importation (RawMesh) sauf erreur : c'est un outil éditeur peu utilisé.
  • Repli si le rendu diverge : voie U9 (UE5 native, maillages statiques cuits par ville), déjà prévue au plan.

Incertain

  • Nombre exact d'erreurs et d'avertissements en 5.8 : mesuré par UA-T5.
  • Rendu du proxy sous le renderer 5.8 (ordre des passes, Lumen, ombres virtuelles) : capture en jeu en U4/U5.
  • Écarts complets avec l'amont (diff fichier à fichier) : non faits ici, à faire en U1 si utile.

4. McpAutomationBridge (Plugins/McpAutomationBridge, gitignoré)

Établi

  • Rôle : outil de développement ; pont MCP (Model Context Protocol) qui laisse un assistant piloter l'éditeur. Aucun rôle dans le jeu.
  • Origine / licence : ChiR24, github.com/ChiR24/Unreal_mcp (McpAutomationBridge.uplugin:8-13), MIT (LICENSE). Version locale 0.6.0-beta-b (uplugin:3-4), bêta et expérimental (uplugin:14-15). Amont : 0.6.0-beta-c du 2 octobre (pré-version), dernière stable 0.5.30 du 5 juin, qui annonce une mise à jour pour « UE 5.8 Preview » (https://github.com/ChiR24/Unreal_mcp/releases). Le README local annonce 5.0–5.8, mais le CHANGELOG précise : « per-version build and live-editor results are not asserted here » (CHANGELOG.md:116).
  • Gitignoré : .gitignore:41 ; binaires 5.5 présents (Binaries/Win64/UnrealEditor-McpAutomationBridge*.dll).
  • Référence projet : LifePlay.uproject : Enabled, Optional, TargetAllowList: ["Editor"] : jamais dans le jeu ni en Shipping ; réglages dans Config/DefaultGame.ini:73.
  • Modules : McpAutomationBridge et McpAutomationBridgeFab, Editor (uplugin:18-39).
  • Dépendances moteur : ~70 modules (McpAutomationBridge.Build.cs:44-53), dont UnrealEd, Sequencer, Niagara, WorldPartitionEditor, MaterialEditor, Persona, RigVM, OpenSSL, plus ~35 modules facultatifs sondés sur le disque (:56, 94). Les plugins requis non facultatifs sont PythonScriptPlugin, EditorScriptingUtilities, Niagara, GameplayAbilities, SmartObjects (uplugin:40-155).
  • Taille : 1 624 fichiers, 237 902 lignes.
  • Prise en compte de 5.8 par l'auteur : McpAutomationBridge.Build.cs:60-61 (PCG exporte un symbole de données en 5.8, lien sans chargement différé), McpAutomationBridgeFab.Build.cs:74-79 (MegascansPlugin sans sources en 5.8), CHANGELOG.md:112 (FJsonObject::Values change de type de clé en 5.8).
  • Qui en dépend : personne dans le jeu ni dans l'addon.

Estimé

  • Risque : moyen pour l'outil, nul pour le jeu. Plugin Optional + Editor seulement : son absence ou son échec ne bloque ni le jeu ni la cuisson. Mais s'il reste activé et présent, UBT le compile avec la cible éditeur : une erreur dans ses sources bloquerait la compilation éditeur.
  • Effort : 0 séance si on applique P7 (désactivé jusqu'à une version 5.8 vérifiée) ; 0,5 à 1 séance pour remplacer le dossier par une version amont plus récente (0.6.0-beta-c ou suivante) et compiler (238 k lignes, compilation longue).

Parade

P7 : pour l'essai UA-T5 et la bascule U3, sortir le dossier du projet (ou passer Enabled: false) ; le réintroduire en U4 à partir d'une version amont qui annonce 5.8 en version finale.

Incertain

  • Compilation réelle de 0.6.0-beta-b sur 5.8.3 : l'auteur ne l'affirme pas (CHANGELOG.md:116) ; à mesurer par UA-T5 (dans une copie, plugin inclus puis exclu).

5. Addon LifePlay-Sandbox (D:\Game\LifePlay-Sandbox\Plugins\LPSandbox)

Établi (commun)

  • Origine / licence : code maison ("CreatedBy": "LifePlay"), dépôt privé séparé, branché par AdditionalPluginDirectories: ["../LifePlay-Sandbox/Plugins"] et la référence LPSandbox Optional, Win64 (LifePlay.uproject). Le jeu compile sans l'addon (lots DC1–DC4).
  • Plugin requis : LPAnimCore du jeu (LPSandbox.uplugin:15-20).
  • Taille : 53 fichiers, 11 888 lignes.

5.1 Module LPSandbox (Runtime, TargetConfigurationDenyList: Shipping, LPSandbox.uplugin:23-28)

  • Rôle : sandbox Pair / Interaction / Mesure lancée en -game.
  • Dépendances : Core, CoreUObject, Engine, InputCore, SlateCore, LPAnimMeasure, LPAnimCore (publiques) ; Slate, ImageWrapper, AssetRegistry, Json, Projects (privées) (LPSandbox.Build.cs:18-37).
  • API sensibles (présentes en 5.8) : UGameViewportClient::AddViewportWidgetContent / GetGameViewportWidget (LPPairSandbox.cpp:174, LPSandboxInteraction.cpp:497, 577) ; FScreenshotRequest::RequestScreenshot (LPSandboxMeasureTour.cpp:127, 541, 561, 566 ; en 5.8 la signature gagne deux paramètres par défaut, UE_5.8/.../UnrealClient.h:219) ; UGameViewportClient::OnScreenshotCaptured (:427 ; GameViewportClient.h:535) ; FImageUtils::ImageResize / PNGCompressImageArray (LPSandboxMeasureTour.cpp:600-602 ; ImageUtils.h:192, 334) ; FAssetData::AssetClassPath (LPSandboxActors.cpp:98).
  • Risque : faible. Effort : 0,25 séance (compilation, un lancement -game de la sandbox).

5.2 Module LPAnimMeasure (Runtime)

  • Rôle : chaîne de mesure de poses (LPPoseMeasure, LPPoseOrchestrator, LPSkeletonProfile).
  • Dépendances : Core, CoreUObject, Engine ; privées Json, LPAnimCore, Projects (LPAnimMeasure.Build.cs:17-26).
  • API sensible : LPPoseMeasure.cpp:1283 : Anim->GetBoneTransform(Xform, FSkeletonPoseBoneIndex(Bone), static_cast<double>(Time), true) : même surcharge double absente en 5.8 que LPAnimCore.
  • Risque : moyen (une erreur certaine, la chaîne de mesure sert de référence au transfert de poses). Effort : 0,25 séance ; parade identique à LPAnimCore (et re-mesure de référence avant / après).

5.3 Module LPModTools (Editor)

  • Rôle : commandlets de l'atelier de mods (LPAnimEval, LPAnimTwist, LPAnimCatalog, LPAnimIdentify, LPHairFromStaticMesh).
  • Dépendances : Core, CoreUObject, Engine, LPAnimMeasure ; privées UnrealEd, AssetRegistry, Json, MeshDescription, StaticMeshDescription, SkeletalMeshUtilitiesCommon, SkeletalMeshDescription, AnimationCore (LPModTools.Build.cs:21-42).
  • API sensibles (présentes en 5.8, comportement non vérifié) : IAnimationDataController::AddBoneCurve / SetBoneTrackKeys (LPAnimTwistCommandlet.cpp:225-243 ; UE_5.8/.../IAnimationDataController.h:191, 238, 253) ; IAnimationDataModel (LPAnimCatalogCommandlet.cpp:125, LPAnimChecks.cpp:232) ; USkeletalMesh::GetImportedModel()->LODModels[0] (LPHairFromStaticMeshCommandlet.cpp:50, 150, LPAnimChecks.cpp:70) ; CommitMeshDescription, FStaticMeshAttributes, FSkeletalMeshAttributes (:295, 385, 407) ; FAnimationRuntime::GetComponentSpaceTransformRefPose (:276 ; AnimationRuntime.h:705).
  • Risque : moyen. Les données éditeur des maillages squelettiques évoluent à chaque version ; la chaîne LPAnimTwist doit être relancée après recuisson (mémoire « Pièges de build »). Effort : 0,5 séance.

6. Plugins moteur référencés par LifePlay.uproject

Présence vérifiée par recherche du .uplugin dans UE_5.5/Engine/Plugins et UE_5.8/Engine/Plugins.

Plugin État .uproject 5.5 5.8 Risque Remarque
EnhancedInput activé (toutes cibles) oui oui faible seul plugin moteur activé côté jeu ; dépendance de LifePlay
AndroidFileServer désactivé oui oui nul
NNEDenoiser Editor oui oui faible bêta inchangée
NNERuntimeORT Editor oui oui faible
Interchange Editor oui oui faible
InterchangeAssets Editor oui oui faible
InterchangeTests Editor oui oui faible plugin de tests, retirable
Fab Editor, non Optional oui (Plugins/Fab, 0.0.6, EngineVersion 5.5.0) absent élevé (bloquant) plugin installé par le Launcher, pas fourni avec 5.8.3 sur cette machine
Bridge (Quixel) Editor, non Optional oui (Plugins/Bridge, 2025.0.3) absent élevé (bloquant) Bridge est en voie d'abandon au profit de Fab (fil Epic, guide 2026)
MetaHumanSDK Editor Experimental/MetaHuman MetaHuman/ (sorti d'Experimental, activé par défaut) faible même nom de plugin
SpeedTreeImporter Editor oui oui faible
HairStrands Editor oui oui faible les coiffures du jeu sont des SkeletalMesh (LPHairFromStaticMesh)
MovieRenderPipeline Editor oui oui faible
Paper2D Editor oui oui faible
USDCore Editor oui oui faible
ChaosVD Editor oui oui faible
LiveLink Editor oui oui faible
ConcertMain / ConcertSyncClient / ConcertSyncCore Editor oui oui faible
Takes Editor oui oui faible
PythonScriptPlugin Editor oui oui faible requis par McpAutomationBridge et les scripts -FullStdOutLogOutput

Établi

  • Fab et Bridge sont déclarés Enabled: true sans Optional (LifePlay.uproject), et leurs .uplugin sont absents de UE_5.8/Engine/Plugins (seul Plugins/MegascansPlugin, sans sources, existe). Config/DefaultGame.ini:64-65 exclut déjà /Bridge et /Fab de la cuisson.

Estimé

  • Risque élevé, effort minime : un plugin activé, non facultatif et introuvable fait échouer UBT pour la cible éditeur (« Unable to find plugin ») ; la cible jeu n'est pas touchée (TargetAllowList: Editor). Effort : 0,1 séance. Parade : passer Fab et Bridge en Optional: true (ou les retirer) dans le .uproject de la copie d'essai et de la branche 5.8 ; installer Fab pour 5.8 par le Launcher seulement si on en a besoin.

Incertain

  • Message exact d'UBT 5.8 pour un plugin manquant : mesuré par UA-T5.
  • Disponibilité du plugin Fab pour 5.8 dans le Launcher : non vérifiée (action utilisateur).

Méthode d'estimation de l'effort

  1. Compter les points d'appel moteur sensibles par plugin (ci-dessus, fichier:ligne).
  2. Classer chaque point : rupture certaine (déclaration absente de l'en-tête 5.8) = 0,1 séance avec garde de version ; dépréciation (UE_DEPRECATED en 5.6–5.8) = 0,05 séance ; présent, comportement à vérifier = coût d'un test (lancement -game, capture même cadrage, passage d'un commandlet).
  3. Ajouter un cycle de compilation par plugin (0,1 à 0,25 séance ; McpAutomationBridge plus long).
  4. Une séance = environ 3 h de travail agent avec builds, sur le modèle des lots AP / DC précédents.

Ruptures certaines relevées : 2 (GetBoneTransform(double) dans LPAnimCore et LPAnimMeasure) + 2 entrées .uproject (Fab, Bridge). Dépréciation : 1 (GetMaterialRelevance(FeatureLevel)). Le reste se mesure par UA-T5.

Points remis à UA-T5 (essai de compilation 5.8)

  1. Décompte réel des erreurs par plugin, avec Fab / Bridge passés en Optional (sinon UBT s'arrête avant).
  2. Compilation séparée avec et sans McpAutomationBridge.
  3. Confirmation des deux erreurs GetBoneTransform attendues.
  4. Avertissements C4996 de StreetMap.

Sources web