LifePlay-Revival/Docs/Migration/etat/ST/STE/STE-H10-VAL.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

12 KiB
Raw Blame History

Fiche STE-H10v — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol

STE-H10-VAL : VAL statique de l'étape (a) de STE-H10 (2026-10-13, reprise après PAUSE)

Trace : cette VAL — Fiche STE-H10v — 2026-10-13 07:09-07:26 (local) Environnement : copie D:\Game\LifePlay-master 5.8, branche ue5.8, HEAD bfaaed2, éditeur fermé, 0 processus Unreal avant et après. BUILD-GO (b) VAL de Big Boss.

1. Fiches amont relues

fiches/STE-H10v.md, STE-H10-SPEC.md (en entier, § C.1-C.9), STE-H10-IMPL.md (TopRight B4-a, Person A1 + B3-a), STE-H10-GI1-IMPL.md (B1-a EventGraph), STE-H10-GI2-IMPL.md (B1-a SavePreset, B2-a). Dumps de référence : dumps\GI__EventGraph_V5.txt, GI__SavePreset_D9.txt, GI__GetSMBoolForSMC_Cloth_D9.txt, Person__EventGraph_D4.txt, Person__ClearProxies_D9.txt, TopRight__EventGraph_D9.txt, Person__IsGenitalExposed_D9.txt.

2. Points à confirmer des IMPL

# Point Verdict Preuve
1 GI:EventGraph : 6 241 (MCP) ; chaîne DestroyPerson (18 liens) PASS (chaîne) ; compte voir P4 log …071525.log l. 32062-32104 : 216 / 393 / 394 / 217 / 171 / 396 / 218 / 232 / 697 reliés comme GI1 § 1 ; CallFunction_104.execute ← 216.then, 393.then ; .then → 394 ; 937.execute ← 842.then, 394.then ; 166.then → 217 ; 731.execute ← 217.else, 396.then
2 SaveBeforeDestroy, RevertSkipped bool défaut false BLOCKED (incertain) le dump n'affiche pas la valeur par défaut d'une variable membre ; les Set montrent Output_Get = 'false' seulement. Essai qui tranche : lecture du CDO (MCP ou commandlet dédié), hors périmètre. Estimé false (défaut d'un bool neuf)
3 VariableGet_232 = même variable que VariableGet_599 PASS (estimé fort) les deux sont variable 'Valid' ; 599 : self ← VariableSet_1357.Output_Get (CharacterBeingEdited = Person), 232 : self ← CustomEvent_3172.Person (log l. 27889-27891, 32098-32100) ; la classe propriétaire n'est pas affichée par le dump
4 CallFunction_697 = même appel que SP:1354 PASS 697 : appel Person_C::RevertStripAll() ; SavePreset CallFunction_16039 : appel Person_C::RevertStripAll() (log …071350.log l. 3303)
5 CallFunction_937.execute garde ses 2 entrées PASS execute -> CallFunction_842.then, VariableSet_394.then, then → IfThenElse_1766 (l. 29129-29131)
6 SavePreset 506 ; liens PASS voir § 3
7 GetSMBoolForSMC_Cloth 13, MeshSuffix locale PASS voir § 3 ; « locale » : list_variables de GI2 (non rejoué ici) ; le dump nomme variable 'MeshSuffix' dans la fonction
8 CompileAllBlueprints, LPTestStringCompat voir § 3 (compile : écart E1 externe)
9 Person / TopRight inchangés PASS MD5 § 3

Points amont de la fiche :

  • (1) SMC nul aux sites d'appel de GetSMBoolForSMC_Cloth : un seul appelant est dumpé, Person.IsGenitalExposed (CallFunction_4131 : GI_C::GetSMBoolForSMC_Cloth(), SMC ← DynamicCast_136.AsSkeletal Mesh Component, exécuté sur DynamicCast_136.then, donc SMC valide ; dumps\Person__IsGenitalExposed_D9.txt:13-24). Grep GI_C::GetSMBoolForSMC_Cloth sur tous les dumps\*.txt : 1 fichier. Les ~133 autres graphes de Person et les autres BP ne sont pas dumpés : estimé accepté, incertain pour les appelants non dumpés. Complément : CallFunction_3 est LPMeshCompat::GetSkeletalMesh() (appel statique C++, Component ← FunctionEntry.SMC), son comportement sur nul n'a pas été lu (C++ non ouvert).
  • (2) défauts false : BLOCKED/incertain (ligne 2 ci-dessus).
  • (3) GV / G3 : GV et VariableGet_599 sont tous deux variable 'Valid' ; G3 et l'appel SP sont tous deux Person_C::RevertStripAll() : établi pour G3, estimé fort pour GV (classe propriétaire non affichée).
  • (4) compte de référence : dumps\GI__EventGraph_V5.txt:1 = 6 234 nœuds ; dump d'après = 6 243 = 6 234 + 9. Le « 6 232 → 6 241 » de GI1 vient de find_nodes (MCP) : écart de méthode constant de 2 (6 234 − 6 232), le +9 est identique. Établi.

3. Critères rejoués

Commande de base : .\Tools\RunCommandlet.ps1 -Lot STE-H10V -Commandlet LPDumpFunction -Args '<args>' -EtatDir "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE" ; journaux sous Saved\Logs\portage\STE-H10V_*.log, résumés STE-H10V_*.txt sous etat\ST\STE\. Tous : code 0, erreurs 0.

Critère Args / commande Sortie brute (entête du dump) Attendu Verdict
TopRight EventGraph -BP=TopRight -Fn=EventGraph -Pins -Exec (…070932) === TopRight :: EventGraph (907 noeuds) === ; CustomEvent_5.then -> CallFunction_85.execute ; CallFunction_85 appel KismetSystemLibrary::DelayUntilNextFrame(), then -> SwitchString_1.execute ; SwitchString_1.execute -> CallFunction_85.then (l. 5568, 6113-6115, 5826) 907 ; Current → T1 → Switch PASS
Person EventGraph -BP=Person -Fn=EventGraph -Pins -Exec (…071138) === Person :: EventGraph (3702 noeuds) === 3 702 PASS
Person : c1-c34 lecture du log, nœuds 73, 74, 75, 76, 77, 237-240, 150, 151, 536, 44, 157, 202, 96, 12, 1405, 402, 19, 896, GetArrayItem_3/14 chaque lien de c1 à c34 relu un à un (ex. 73.then -> MacroInstance_402.Exec, 402.Completed -> VariableSet_238.execute, MacroInstance_44.Completed -> CallFunction_1405.execute, VariableSet_12.then -> IfThenElse_151.execute, 151.else -> CallArrayFunction_77.execute) c1-c34 présents PASS
Person : b1-b8 absents idem MacroInstance_402.Exec ← 73 seul ; MacroInstance_19.Is Not Valid -> 74 seul ; MacroInstance_11.exec (vide) ; 402.Array Index -> 74.NewItem seul ; 402.Completed -> 238 seul ; VariableGet_52.Hairs -> 11, 14 seulement ; CallFunction_133.Max ← 14, ReturnValue = '0' non relié ; CallFunction_1405.execute ← MacroInstance_44.Completed seul absents PASS
CallFunction_96.execute ← N3 seul idem CallFunction_96 execute -> K2Node_VariableSet_237.then (l. 11056) ; MacroInstance_11, CallFunction_133, CallArrayFunction_14 sans exécution (orphelins, § C.1-3) N3 seul PASS
Person ClearProxies -BP=Person -Fn=ClearProxies -Pins -Exec (…071303) === Person :: ClearProxies (39 noeuds) === ; DynamicCast_30.then -> VariableSet_0.execute ; VariableSet_0.then -> MacroInstance_301.Exec ; Concat.ReturnValue -> VariableSet_0.ProxySuffix ; CallFunction_2.InSuffix -> VariableGet_2.ProxySuffix 39 ; InSuffix ← P2 PASS
GI SavePreset -BP=GI -Fn=SavePreset -Pins -Exec (…071350) === GI :: SavePreset (506 noeuds) === ; IfThenElse_2957.then -> IfThenElse_11.execute, else (vide) ; IfThenElse_11.Condition ← VariableGet_2.SaveBeforeDestroy, .then -> VariableSet_14.execute, .else -> CallFunction_16039.execute ; VariableSet_14.RevertSkipped = 'true', then (vide) 506 ; S1 / S3 PASS
GI GetSMBoolForSMC_Cloth -BP=GI -Fn=GetSMBoolForSMC_Cloth -Pins -Exec (…071438) === GI :: GetSMBoolForSMC_Cloth (13 noeuds) === ; FunctionEntry_2157.then -> VariableSet_0.execute ; VariableSet_0.then -> MacroInstance_1872.Exec ; VariableSet_0.MeshSuffix ← Concat_StrStr.ReturnValue ; CallFunction_2.InSuffix -> VariableGet_0.MeshSuffix 13 ; InSuffix ← C2 PASS
GI EventGraph -BP=GI -Fn=EventGraph -Pins -Exec (…071525) === GI :: EventGraph (6243 noeuds) === ; chaîne § 2 ligne 1 réf. V5 6 234 + 9 PASS (6 243 = 6 234 + 9)
Autres graphes GI -Fn=destroyDummy / LoadHairMeshIfNeeded / CopyActionsToScroll (…071756, …071858, …071950) (39 noeuds) / (17 noeuds) / (34 noeuds) 39 / 17 / 34 PASS
CompileAllBlueprints .\Tools\RunCommandlet.ps1 -Lot STE-H10V -Commandlet CompileAllBlueprints -EtatDir "…\ST\STE" (STE-H10V_CompileAllBlueprints_20261013-072132) code=3 duree=186s erreurs=25 avertissements=55 ; journal l. 3301 : Compiling Completed with 3 errors and 0 warnings and 0 blueprints that failed to load. ; 421 Loading and Compiling, 420 a réussi (réf. V6 du 11/10 : 418 / 418, code 0, 0 erreur) ; Person, GI, TopRight : La compilation … a réussi ; les 110 BP /Game/ réussissent (110 / 110, comme V6) ; les 25 lignes d'erreur et 55 d'avertissement portent sur /Engine/CC_Shaders/Utilities/CR_FaceExpRig (Could not find graph function data…, structs RLExpStruct / RLBoneStruct / RLConstraintStruct introuvables sous /Game/CC_Shaders/…) 418 / 418, 0 / 0 FAIL (critère littéral), cause externe : voir E1
LPTestStringCompat .\Tools\RunCommandlet.ps1 -Lot STE-H10V -Commandlet LPTestStringCompat -EtatDir "…\ST\STE" (…072515) code=0 duree=16s erreurs=0 avertissements=2 ; === 3120 cas : compat != herite(UE4) : 0 ; moteur != herite(UE4) : 60 === 3120 / 0 / 60 PASS
MD5 avant md5sum Content/BPs/GI.uasset Content/BPs/Person.uasset Content/UI/TopRight.uasset (avant toute commandlet) 71034a04c6d64e1a806ca0dadc934fb9 GI ; d1b4c63d47621b1191ad9352c80c99cd Person ; 1fcb94a60061b418e9deeb08bc1a990d TopRight = fiche PASS
MD5 après même commande, après LPTestStringCompat 71034a04c6d64e1a806ca0dadc934fb9 ; d1b4c63d47621b1191ad9352c80c99cd ; 1fcb94a60061b418e9deeb08bc1a990d identiques PASS
git status git status --short -- Content M Content/BPs/GI.uasset, M Content/BPs/Person.uasset, M Content/UI/TopRight.uasset 3 assets seuls PASS
Autosaves ls Saved/Autosaves/Game/BPs, …/UI Room_Auto2, TestStatic_Auto1, MainMenu_Auto1 ; aucun GI_Auto*, Person_Auto*, TopRight_Auto* aucun PASS
Processus Get-Process filtre Unreal* 0 ; HEAD bfaaed2 0 PASS

4. Diff lu en entier

Assets binaires .uasset : pas de diff texte ; la preuve est la lecture des dumps (§ 3), nœud par nœud pour les nœuds créés. Le dump de Person EventGraph (nœuds créés et touchés) et ceux de GI, TopRight, ClearProxies, SavePreset, GetSMBoolForSMC_Cloth relus par les extraits cités. Non relus : nœuds non touchés des graphes (comptes seuls).

5. Verdict

FAIL au sens littéral du critère « CompileAllBlueprints 418 / 418, 0 erreur, 0 avertissement » (code 3, 3 erreurs, 55 lignes d'avertissement). Tous les autres critères de § C.7 sont PASS (6 dumps conformes, comptes des autres graphes, LPTestStringCompat, MD5 inchangés).

Écarts :

  • E1 (gravité : externe, hors périmètre STE-H10) : CompileAllBlueprints échoue sur /Engine/CC_Shaders/Utilities/CR_FaceExpRig (Control Rig), asset du moteur D:\Game\Launcher\Engine\UE_5.8\Engine\Content\CC_Shaders\ (dossier créé / modifié le 2026-10-12 19:57, absent du run V6 du 2026-10-11 qui comptait 418 BP et 0 erreur). Ses structs RLExpStruct, RLBoneStruct, RLConstraintStruct sont cherchées sous /Game/CC_Shaders/…, dossier absent du projet (Content\CC_Shaders inexistant). 421 BP chargés au lieu de 418 (+3, nouveaux assets CC_Shaders, estimé), 110 BP /Game/ sur 110 compilent (inchangé). GI, Person, TopRight compilent sans diagnostic. Aucun lien avec les 5 options STE-H10 (estimé fort). À décider par l'orchestrateur / l'utilisateur : requalifier le critère (compter les BP du projet) ou traiter CC_Shaders (plugin Reallusion installé hier dans le moteur, à confirmer).
  • E2 (mineur) : défaut false de SaveBeforeDestroy et RevertSkipped non relu (dump sans valeur par défaut des membres).
  • E3 (information) : GI:EventGraph 6 243 au dump contre 6 241 annoncé par GI1 : écart de méthode (MCP find_nodes contre dump, 2 nœuds), le +9 est exact.

Non rejoué : comportement en jeu, trace Insights (§ C.8), Accessed None en exécution, états « exposé », comportement de LPMeshCompat::GetSkeletalMesh sur nul, appelants de GetSMBoolForSMC_Cloth hors IsGenitalExposed.

6. Points à confirmer par l'utilisateur

  • E1 : accepter le critère CompileAllBlueprints comme PASS « projet seul » (110 / 110 BP /Game/ et GI, Person, TopRight réussis), ou exiger 0 erreur globale (CC_Shaders à corriger).
  • E2 : accepter le défaut false estimé, ou le faire lire.
  • Preuve en jeu (§ C.8) : à faire sur build empaqueté.

Fichiers écrits par cette VAL : STE-H10-VAL.md ; sorties de commandlets STE-H10V_*.txt sous etat\ST\STE\ (9 dumps, 1 CompileAllBlueprints, 1 LPTestStringCompat) ; journaux sous Saved\Logs\portage\. Fichiers à commiter : A Docs/Migration/etat/ST/STE/STE-H10-VAL.md ; A Docs/Migration/etat/ST/STE/STE-H10V_*.txt (au choix du gardien).

Tours : 31 / 50