12 KiB
DC2-VAL — Validation automatique du lot DC2 (DC2-T3)
Fiche DC2-T3 — Modèle prévu sonnet | utilisé sonnet
- Date : 2026-10-07. Build testé : celui de
DC2-BUILD.md(code 0, non recompilé). Lot DC2 : commandlets de mods (LPAnimEval, LPAnimTwist, LPAnimCatalog, LPAnimIdentify, LPHairFromStaticMesh) déplacés dans le module éditeurLPModToolsde l'addon. - Journaux copiés dans
D:\Game\LifePlay_Backup_5.5\DC2-VAL\:E1_*_console.txt,E2_*_console.txt,E2_*_result.txt,E2_*_sandbox.log,E3_console.txt+E3_out\,DC2_LPAnimTwist_*.log/.txt,E4_*_console.txt,DC2_LPAnimCatalog_*.log,DC2_LPHairFromStaticMesh_*.log,E5a_console.txt,DC2_LPAnimEval_20261007-190750.log,E5b_game_noaddon.log,AP7_LPAnim*.log(le dossier contient aussi d'anciensAP7_*copiés par un joker trop large ; seuls lesAP7_LPAnimIdentify_20261007-183742/183801etAP7_LPAnimEval_20261007-183828/185814sont de cette validation). - Méthode : celle de
DC1-VAL.md/SB4-VAL.md, tournées parAnimPipeline.ps1(pwsh 7), aucun éditeur avant chaque lancement. Aucune commande git horsstatus, aucun source/script/ini modifié, aucune recompilation.
Tableau des essais
| Essai | Attendu | Constaté (lignes recopiées) | Verdict |
|---|---|---|---|
E1 quaternius -From 2 -To 2 |
code 0, verdict ok, fichiers = réf | code 0, 14 s. [ok] identification.json valide : profil ue4_mannequin, methode ue4, verdict : ok (14 s). Journal : LogLPAnimMeasure: PATHS racine addon D:/Game/LifePlay-Sandbox. identification.json SHA-256 identique à SB2-REF (310CCE61A3B7). etapes\2_identification.json : SHA différent (0AF3F335AAB3 réf / BF81B7520808 nouveau), JSON égal une fois debut/fin/duree_s ignorés. |
PASS |
| E1 freeanims | idem | code 0, 13 s. profil ue5_mannequin, methode ue5, verdict : ok. identification.json identique à la réf (557013ADCB21). etapes\2_identification.json : SHA différent (E282521BBA35 / 345D5EBB5A56), JSON égal hors dates. |
PASS |
E2 quaternius -From 5 -To 5 |
code 0, avertissement, 8 avertissements, 44 fichiers |
code 0, 1136 s, verdict : avertissement (1136 s). Journal éditeur : LogLPAnimMeasure: PATHS racine addon D:/Game/LifePlay-Sandbox ; TOURNEE debut 43 clips, 129 etapes ; Ouvert : lps_asset_integration (declencheur, non memorise) ; TOURNEE debut 43 clips, 2080 etapes ; TOURNEE fermeture demandee. Open=lps_couple avant et après. Comparaison : voir ci-dessous. |
PASS |
| E2 freeanims | code 0, ok, 0 avertissement, 73 fichiers |
code 0, 435 s, verdict : ok (435 s). Journal : PATHS racine addon D:/Game/LifePlay-Sandbox ; TOURNEE debut 10 clips, 30 etapes ; Ouvert : lps_asset_integration (declencheur, non memorise) ; TOURNEE debut 10 clips, 697 etapes ; TOURNEE fermeture demandee. Open=lps_couple après. |
PASS |
| E3 LPAnimTwist à blanc | code 0, rapport valide | Arguments reconstitués avec certitude depuis les commandes journalisées par le pilote (etapes\5_evaluation.json, ligne LPAnimTwist) : -Methode=ue4 -ClipDir=/Game/Quaternius/UAL -RefClip=A_TPose -BodyClipDir=/Game/Quaternius/UAL -Templates=Bridget:/Game/Heavy/Daz/Anims/Idle_F_Daz,Michael:/Game/Heavy/Daz/Anims/idle_Daz -Bodies=Bridget:B_,Michael:M_ -Out=... + -DryRun. Écart volontaire : -Out pointé vers D:/Game/LifePlay_Backup_5.5/DC2-VAL/E3_out (le commandlet écrit rapport_torsion.json même à blanc ; cela aurait écrasé un fichier de résultat comparé à la réf). Code 0, 23 s. LogLPAnimTwist: Display: TORSION Bridget profil genesis8 : 6 paires Bend / Twist ; lignes TORSION B_Walk_Loop 41 cles, torsion deplacee 0.0 deg, conservation 0.00000 deg 0.00000 cm (essai) ; TORSION resultat VALIDE : 0 echec(s) ; rapport_torsion.json : essai_a_blanc=true, valide=true. Journal : PATHS racine addon D:/Game/LifePlay-Sandbox. Saved\AnimPipeline\quaternius\rapport_torsion.json inchangé (SHA D7A3BF92E174 = réf). |
PASS |
E4 LPAnimCatalog (-DryRun seul) |
trouvé (pas « introuvable ») | LogInit: Executing Class /Script/LPModTools.LPAnimCatalogCommandlet. Code 0 : pas d'erreur d'argument — le commandlet a des valeurs par défaut (pack quaternius) et a écrit LogLPAnimCatalog: Warning: CATALOGUE fiches 42 echecs 0 -> .../Saved/AnimPipeline/quaternius/fiches_calculees.json (voir anomalie 1). Aucun asset UE écrit. |
PASS (trouvé) — écriture signalée |
E4 LPHairFromStaticMesh (-DryRun seul) |
trouvé, erreur d'argument | LogInit: Executing Class /Script/LPModTools.LPHairFromStaticMeshCommandlet puis LogLPHairFromStatic: Error: Usage : -Static=<StaticMesh> -FitHead=<StaticMesh> -Out=</Game/...> [-Body=] [-RefHair=] [-Bone=head] [-Scale=] [-OffsetZ=] [-OffsetY=] [-DryRun], result 1. Aucune écriture. |
PASS |
E5a jeu sans addon, LPAnimEval |
commandlet introuvable | Code 1 : LogInit: Error: LPAnimEvalCommandlet looked like a commandlet, but we could not find the class. |
PASS |
E5b jeu -game sans addon (120 s) |
LPAnimCore monté, LPSandbox absent, carte chargée | LogPluginManager: Mounting Project plugin McpAutomationBridge / LPAnimCore / ModdingExtra / StreetMap (aucune ligne LPSandbox ; aucune ligne AdditionalPluginDirectory ni refus d'aucune sorte dans ce journal ; le projet reste lancé sans message d'erreur, LifePlay.uproject référence toujours le plugin LPSandbox et le répertoire ../LifePlay-Sandbox/Plugins). LogLoad: LoadMap: /Game/Scenes/CentralLondon?Name=Player puis Took 0.790986 seconds to LoadMap(/Game/Scenes/CentralLondon). Seul Error : LogPlayerController: Error: InputMode:UIOnly - Attempting to focus Non-Focusable widget SObjectWidget [Widget.cpp(968)]! (UI du menu, voir anomalie 3). Aucun Fatal/Ensure. Pas de ligne Coiffures : ... introuvable (l'Error Coiffures connu est propre à la sandbox ; ici : Coiffures : base 126 entree(s) ... table de 126 entree(s), 89 morph(s)). Processus arrêté (Stop-Process). |
PASS |
| E6 état final | ini standard, 0 éditeur, addon en place | Saved\sandbox_mods.ini : Open=lps_couple (3 modules activés, ordre standard) ; 0 UnrealEditor ; Test-Path D:\Game\LifePlay-Sandbox\Plugins\LPSandbox\LPSandbox.uplugin = True ; LifePlay-Sandbox.__DC2_absent n'existe plus. |
PASS |
Détail E2 : comparaison complète contre SB2-REF\<pack>\
Règle DC1-VAL/SB4-VAL : SHA-256 de chaque fichier commun ; exclus : etapes\5_evaluation.json (JSON sur verdict + avertissements), etat.json, ligne « Généré le » de rapport.html, images freeanims (les 20 connues). Le dossier precedent_* est inclus dans le décompte (comme aux lots précédents).
quaternius : 44 fichiers comparés (liste 44 / 44 identique)
- 40 fichiers au SHA-256 identique. Seuls différents :
etat.json(fin/majuniquement),rapport.html(seule ligne : « Généré le » 07/10/2026 12:10:18 → 18:38:49),etapes\5_evaluation.json(verdictavertissementdes deux côtés ; 8 avertissements, listes égales en JSON ; durée 1136 s = 1136 s) etetapes\2_identification.json(réécrit par E1, dates seules). - Tous les
.json/.csv/.txtde données (rapport.json,eval_*.csv,controles_*.csv,retarget_pose_*.txt,rapport_torsion.json,fiches_calculees.json...) identiques.
freeanims : 73 fichiers comparés (liste 73 / 73 identique)
- 49 fichiers identiques. 24 différents : les 4 fichiers exclus ci-dessus (
etat.json,rapport.html« Généré le » 12:31:18 → 18:58:36,etapes\5_evaluation.json: verdictok, 0 avertissement des deux côtés, durée 435 s = 435 s,etapes\2_identification.jsondates) et 20 images, exactement les 20 connues (10 planches.jpg+ 10 vignettes.png: AirKiss, AttackInLevitation2, ChillDriving, ComboHands, EatingOnParty, FlyingUp, GoForward, Rest, RightLegKick2, Talk), écarts de taille inférieurs à 0,3 % (ex. AS_AirKiss.png 261470 → 261276 ; AS_Talk.png 260083 → 259267). - 73 − 4 − 20 = 49 fichiers de données identiques.
Anomalies
- E4 LPAnimCatalog sans argument n'échoue pas : le commandlet a des valeurs par défaut (pack quaternius) et, même avec
-DryRun(qui ne concerne pas ce commandlet), il a réécritSaved\AnimPipeline\quaternius\fiches_calculees.json(fichier de résultat, pas un asset UE). Seule différence avec la réf : cheminlivraisonen absolu au lieu de relatif (D:/Game/...vs../../../../../../LifePlay-master 5.5/...). J'ai restauré le fichier par copie depuisSB2-REF\quaternius\fiches_calculees.json(il était identique à la réf juste avant E4, cf. E2) ; SHA vérifié après copie (5DBBA632FAF3). Comportement hérité du commandlet d'origine, non lié au déplacement (le code est identique octet pour octet). - E3 :
-Outredirigé hors deSaved\AnimPipeline(voir tableau) ; les 204 avertissements du résumé RunCommandlet sont les lignesTORSIONjournalisées en Warning/Display, pas des erreurs. - E5b :
LogPlayerController: Error: InputMode:UIOnly...: non rencontré dans les journaux de la sandbox (autre scène), vraisemblablement propre au menu du jeu ; non analysé plus avant (hors périmètre DC2). Pas de ligneAdditionalPluginDirectory ... not founddans le journal-game(contrairement au journal de build DC2-BUILD) : l'absence de l'addon est silencieuse au runtime. - E5a et E5b ont été lancés dans deux séquences de renommage distinctes (l'addon avait été remis en place entre les deux par le
finally, puis renommé de nouveau pour E5b) ; vérificationTest-Path ...LPSandbox.uplugin= True après chacune. - Les chemins
Tools/anim: l'addon n'a pas deTools\anim(Test-Path = False) ; les commandlets (Identify litprofiles, Eval/Twist lisentmethodes) ont fonctionné en repli sur le jeu. Le journal ne trace quePATHS racine addon D:/Game/LifePlay-Sandbox, pas le dossierTools/animretenu ; le repli est prouvé indirectement par le succès de E1/E2/E3 et l'identité des résultats. - Éditeur plantant à la fermeture : non observé.
État final (E6)
Saved\sandbox_mods.ini:[Mods] Order=lps_couple,lps_interaction,lps_asset_integration,Open=lps_couple,[Enabled]les trois àtrue.UnrealEditor: 0 processus.git -C D:\Game\LifePlay-Sandbox status --short(changements DC2 non commités, attendu) :
M Plugins/LPSandbox/LPSandbox.uplugin
M Plugins/LPSandbox/Source/LPAnimMeasure/LPAnimMeasure.Build.cs
M Plugins/LPSandbox/Source/LPAnimMeasure/LPPoseMeasure.cpp
M Plugins/LPSandbox/Source/LPAnimMeasure/LPSkeletonProfile.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxConfig.cpp
?? Plugins/LPSandbox/Source/LPAnimMeasure/LPAnimMeasurePaths.cpp
?? Plugins/LPSandbox/Source/LPAnimMeasure/LPAnimMeasurePaths.h
?? Plugins/LPSandbox/Source/LPModTools/
- Addon en place :
LifePlay-Sandbox.__DC2_absentabsent,LPSandbox.upluginprésent.
Verdict
PASS (partie automatique) : E1 (identification identique à la réf), E2 (quaternius avertissement 8 avertissements, 44 fichiers ; freeanims ok, 73 fichiers ; données identiques, seules différences dates, « Généré le » et les 20 images non déterministes ; Open=lps_couple préservé), E3 (LPAnimTwist valide à blanc), E4 (les deux commandlets sont trouvés dans /Script/LPModTools), E5 ((a) introuvable sans addon ; (b) LPAnimCore monté, LPSandbox absent, carte CentralLondon chargée), E6 (addon en place). Le nouveau code tourne (PATHS racine addon dans tous les journaux d'éditeur testés).
Point à noter pour l'utilisateur : anomalie 1 (LPAnimCatalog écrit fiches_calculees.json sans argument, fichier restauré).
Modèles par fiche
| Fiche | Modèle prévu | Modèle utilisé |
|---|---|---|
| DC2-T1 | opus | opus |
| DC2-T2 | haiku | haiku |
| DC2-T3 | sonnet | sonnet |