LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-B2P-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

10 KiB

Fiche STG-B2Pv — Niveau N1 — Modèle prévu lp-validator | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, lp-commandlets, sk-protocol, sk-recount, debug-verification

STG-B2P-VAL : validation statique de G-B1a + K8-a dans Person (2026-10-13)

Verdict global : PASS-STATIC (contrôles a à d conformes ; aucun écart). Dump et compilation rejoués par commandlets en lecture seule, éditeur fermé ; rien n'est rejoué en jeu.

1. Fiches amont relues

  • Docs\Migration\etat\ST\STG\fiches\STG-B2P.md (gestes a-f, critères).
  • Docs\Migration\etat\ST\STG\STG-B2P-IMPL.md (32 appels MCP, 5 nœuds, 3 liens coupés, 14 créés, MD5, E1).
  • Docs\Migration\etat\ST\STG\STG-B1-VAL.md (référence des chiffres 25 / 3 / 55 / 420 et du dump de 14:36).
  • Aucune autre IMPL dans ce lot pour cette fiche (vérifié : une seule IMPL, STG-B2P-IMPL.md).

2. Points à confirmer des IMPL (STG-B2P-IMPL.md § 5)

Point Verdict Preuve
Relecture sur disque, éditeur fermé : 3714 nœuds, liens du § 1.3 présents, 3 liens coupés absents PASS § 3 b, c ; journal l. 1931 (3714 noeuds)
MacroInstance_72 = macro IsValid (E1) PASS (estimé pour l'origine exacte) dump l. 21366 macro 'IsValid' : le dumpeur imprime MacroGraph->GetName() (Source\LifePlayEditorTools\LPDumpFunctionCommandlet.cpp:48) ; broches exec, InputObject, Is Valid, Is Not Valid présentes. Que ce graphe soit celui des StandardMacros n'est pas démontré par le nom seul (incertain, sans effet sur la logique)
CompileAllBlueprints éditeur fermé : aucun message pour Person PASS § 3 d, l. 2021 La compilation de Person a réussi ! [en 3 067 ms]
Build empaqueté + LogStats (E-B1-1, Person vide) reporté (hors fiche : preuve en jeu, non rejouable ici) —
K8-a en jeu (deux personnages sur un meuble) reporté (idem) —
Estimé : Map_Find ajoute un usage de Room.OccupiedFnts si GI.Room vide (+1 ligne Accessed None possible) reporté (à compter dans LogStats en jeu) statique : les Map_Find lisent VariableGet_168 / _213 existants (§ 3 c4)

3. Critères rejoués

a. MD5 et UeState

Départ (17:4x, avant mes commandlets) : md5sum Content/BPs/Person.uasset Content/BPs/Room.uasset Content/BPs/GI.uasset

8668a47c627f7a5254910cf0ac33b12a *Person.uasset
ca2a9a0baaca4130fd5c318797f008ae *Room.uasset
c4817b847ecf246c859647577647d6e9 *GI.uasset
-rw-r--r-- ... 20821244 Oct 13 17:42 Person.uasset

pwsh -NoProfile -File Tools/UeState.ps1 (départ) : processus=0 editeur=0 compilation=0 shaders=0 jeu=0, code 0. Fin (même commande, après dump et CompileAllBlueprints) : mêmes trois MD5 (8668a47c…, ca2a9a0b…, c4817b84…) ; UeState processus=0 editeur=0 compilation=0 shaders=0 jeu=0, code 0. Attendu 8668A47C…, Room CA2A9A0B…, GI C4817B84…, UeState 0 : PASS. git status --short -- Content Source Config : M Content/BPs/Person.uasset, M Content/BPs/Room.uasset, M Source/LifePlay/LPDebugSubsystem.{cpp,h}, M Source/LifePlay/LPOutdoorRoomSubsystem.{cpp,h}, ?? Source/LifePlay/LPCameraModeSubsystem.{cpp,h} : mêmes entrées Source qu'au départ du lancement (autres lots).

b. Dump et diff

Commande : pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\RunCommandlet.ps1' -Lot STG-B2Pv -Commandlet LPDumpFunction -Args "-BP=Person -Fn=EventGraph -Pins -Exec" -EtatDir 'D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG' Sortie : code=0 duree=56s erreurs=0 avertissements=19511 ; journal Saved\Logs\portage\STG-B2Pv_LPDumpFunction_20261013-174614.log (titre l. 1931 : === Person :: EventGraph (3714 noeuds) ===) ; résumé etat\ST\STG\STG-B2Pv_LPDumpFunction_20261013-174614.txt. Aucune recompilation de modules demandée. Diff contre STG_LPDumpFunction_20261013-143609.log (3709 nœuds) : script de lecture seule dans le dossier temporaire de session (d.py, découpe en blocs K2Node_*, cibles de liens triées, comparaison par nom de broche). Sortie brute :

before 3709 after 3714
added ['K2Node_CallFunction_748', 'K2Node_CallFunction_971', 'K2Node_CommutativeAssociativeBinaryOperator_123', 'K2Node_CommutativeAssociativeBinaryOperator_124', 'K2Node_MacroInstance_72']
removed []
changed 12 ['K2Node_CallFunction_316', 'K2Node_CallFunction_412', 'K2Node_CallFunction_635', 'K2Node_CommutativeAssociativeBinaryOperator_44', 'K2Node_CommutativeAssociativeBinaryOperator_49', 'K2Node_CustomEvent_39', 'K2Node_CustomEvent_50', 'K2Node_CustomEvent_72', 'K2Node_IfThenElse_90', 'K2Node_VariableGet_168', 'K2Node_VariableGet_213', 'K2Node_VariableSet_241']

Recompte : 3709 + 5 = 3714 (titre du dump = 3714). Les 12 nœuds modifiés sont exactement la liste de la fiche (CustomEvent_72, CallFunction_635, VariableSet_241, IfThenElse_90, VariableGet_168, VariableGet_213, CustomEvent_50, CustomEvent_39, Operator_44, Operator_49, CallFunction_316, CallFunction_412) ; aucun autre. Détail des changements (sortie du script) : 316.Value 44 → 123 ; 412.Value 49 → 124 ; 635.then 241.execute → MacroInstance_72.exec ; 44.ReturnValue 316.Value → 123.B ; 49.ReturnValue 412.Value → 124.B ; 39.SMC + 971.Key ; 50.SMC + 748.Key ; 72.Person + MacroInstance_72.InputObject ; 90.execute + MacroInstance_72.Is Not Valid ; 168.OccupiedFnts + 748.TargetMap ; 213.OccupiedFnts + 971.TargetMap ; 241.execute 635.then → MacroInstance_72.Is Valid. Limite : le dump ne donne ni positions ni commentaires (non comparés). PASS.

c. Logique (dump après, lignes du journal B2Pv)

  1. 635.then -> MacroInstance_72.exec (l. 17098) ; MacroInstance_72.Is Valid -> VariableSet_241.execute (l. 21369, et 241.execute l. 21341) ; Is Not Valid -> IfThenElse_90.execute (l. 21370, et 90.execute 573.then, MacroInstance_72.Is Not Valid l. 17369) ; InputObject -> CustomEvent_72.Person (l. 21368 ; Person -> …MacroInstance_72.InputObject l. 17080). PASS. 241.then → 573.execute inchangé (l. 21342).
  2. Site 1 : 316.Value <- Operator_123.ReturnValue (l. 14556, 21381) ; 123 = KismetMathLibrary::Max() avec A <- CallFunction_748.Value, B <- Operator_44.ReturnValue (l. 21379-21380) ; 748 = Map_Find, TargetMap <- VariableGet_168.OccupiedFnts, Key <- CustomEvent_50.SMC (l. 21373-21374). PASS.
  3. Site 2 : 412.Value <- Operator_124.ReturnValue (l. 13626, 21392) ; 124 = Max() avec A <- 971.Value, B <- Operator_49.ReturnValue (l. 21390-21391) ; 971 = Map_Find, TargetMap <- VariableGet_213.OccupiedFnts, Key <- CustomEvent_39.SMC (l. 21384-21385). PASS.
  4. Aucune lecture de Room ajoutée : VariableGet_167 (Room) ne sert que VariableGet_168.self (l. 14558) et VariableGet_212 que _213.self (l. 13615) ; seules les sorties OccupiedFnts de 168 / 213 ont un lecteur de plus (Map_Find). Le diff n'a ajouté aucun nœud Room ni GI (5 ajouts = IsValid, 2 Map_Find, 2 Max). PASS.
  5. Les Max sont entiers : KismetMathLibrary::Max() ; D:\Game\Launcher\Engine\UE_5.8\Engine\Source\Runtime\Engine\Classes\Kismet\KismetMathLibrary.h:391-392 : DisplayName = "Max (Integer)" … static int32 Max(int32 A, int32 B) (le flottant est FMax l. 728, l'entier 64 bits MaxInt64 l. 495). PASS. Réserves : Map_Find.ReturnValue (bool) est inutilisée (= 'false' dans le dump) : clé absente → Value 0 (comportement du moteur, non rejoué en jeu).

d. CompileAllBlueprints

Commande : pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\RunCommandlet.ps1' -Lot STG-B2Pv -Commandlet CompileAllBlueprints -EtatDir 'D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG'

code=3 duree=196s erreurs=25 avertissements=55
resume : …\etat\ST\STG\STG-B2Pv_CompileAllBlueprints_20261013-174720.txt
journal : …\Saved\Logs\portage\STG-B2Pv_CompileAllBlueprints_20261013-174720.log

Recompte du journal par d'autres filtres : Error: = 25 (Grep count) ; Error:.*/Game/ = 0 (aucune correspondance) ; Error: hors CC_Shaders = 7 (les Script Msg: Could not find graph function data, comme en B1-VAL) ; l. 3302 Compiling Completed with 3 errors and 0 warnings and 0 blueprints that failed to load. ; l. 2021 La compilation de Person a réussi ! [en 3 067 ms] (/Game/BPs/Person.Person) ; lignes « a réussi » = 420. Référence STG-B1-VAL.md § 3 e : 25 / 3 / 55 / 420, code 3 : identique. Code 3 dû aux 3 erreurs CC_Shaders/CR_FaceExpRig (à part). PASS.

4. Diff lu en entier

  • Fichier modifié : Content/BPs/Person.uasset seul (binaire ; 20 808 711 → 20 821 244 octets, MD5 conforme à l'IMPL et à la fiche ; lu par dump, pas par git diff texte).
  • EventGraph : 3709 → 3714 nœuds, 5 ajoutés, 0 retirés, 12 modifiés (§ 3 b). Aucune propriété de composant ni autre fonction examinée (hors périmètre de la fiche).
  • Écart E1 de l'IMPL (libellé Utilities|IsValid au lieu de Utilitaires|IsValid) : sans effet, nœud et liens conformes au geste (§ 2).
  • Fins de ligne : sans objet (asset binaire).
  • Fichiers produits par mes commandlets (hors dépôt de code) : STG-B2Pv_LPDumpFunction_20261013-174614.txt, STG-B2Pv_CompileAllBlueprints_20261013-174720.txt dans etat\ST\STG\.

5. Verdict

PASS-STATIC : a, b, c, d conformes. Non rejoué : jeu, LogStats, compilation éditeur avec message (journal éditeur de l'IMPL non rejoué), tolérance en jeu de Person vide et de la clé absente.

6. Points à confirmer par l'utilisateur

  • Preuve en jeu (build empaqueté + LogStats) : Person vide dans moveToPersonStand sans Accessed None, et comportement de K8-a avec deux personnages sur un meuble (reporté, build commun ordonné par Big Boss).
  • Compter dans LogStats une éventuelle ligne Accessed None de plus en 316 / 412 si GI.Room est vide (estimé dans l'IMPL).

Trace

Trace : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG-B2Pv_LPDumpFunction_20261013-174614.log et …\STG-B2Pv_CompileAllBlueprints_20261013-174720.log — Fiche STG-B2Pv — 2026-10-13 17:46-17:52 Commande : voir § 3 b et d (copie 5.8, UE_5.8, UnrealEditor-Cmd, pwsh) Environnement: branche ue5.8, Person 8668A47C…, éditeur fermé, machine calme (UeState 0 avant et après) Attendu : 3714 nœuds, 5 ajoutés, 12 modifiés listés ; 25 / 3 / 55 / 420, 0 erreur sous /Game/ Obtenu : conforme (§ 3) Lecture : code 3 de CompileAllBlueprints = erreurs CC_Shaders seules ; LPDumpFunction n'affiche pas les valeurs de classe (DefaultObject)

Fichiers à commiter

Aucune modification de fichier suivi par moi. Fichiers nouveaux sous etat\ST\STG\ (A) : STG-B2P-VAL.md, STG-B2Pv_LPDumpFunction_20261013-174614.txt, STG-B2Pv_CompileAllBlueprints_20261013-174720.txt.

Tours : 19 / 40