Retrait de BuildMod, NewMod, EditMod, ModSource, HairPipeline et leurs .py, Tools/anim, Tools/hairs, Tools/mods, ModSources, AnimSources, Config/LPSandbox.ini, lanceurs sandbox et guide des moddeurs (57 fichiers suivis ; contenu disque deplace vers la sauvegarde DC3). References et docs mises a jour. Pin addon 79f0205. Validation : DC3-VAL PASS (cuisson lpr_anim_freeanims depuis l'addon identique au mod publie, tournee identique a SB2-REF). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
10 KiB
Markdown
77 lines
10 KiB
Markdown
# DC3-VAL — Validation automatique du lot DC3 (DC3-T3b)
|
||
|
||
**Fiche DC3-T3b — Modèle prévu sonnet | utilisé sonnet** (agent A-VAL)
|
||
|
||
- Date : 2026-10-07. Build testé : celui de `DC3-BUILD.md` (code 0, non recompilé). Lot DC3 : atelier de mods dans l'addon `D:\Game\LifePlay-Sandbox`, nouveau `Tools\Roots.ps1`, `LPAnimCatalog` exigeant `-Livraison=`.
|
||
- Méthode : celle de `DC2-VAL.md` (pwsh 7, aucun éditeur avant chaque lancement, comparaison SHA-256 contre `SB2-REF`). Aucune commande git hors `status`, aucun script/source/ini modifié, aucune recompilation, rien supprimé.
|
||
- Journaux et pièces : `D:\Game\LifePlay_Backup_5.5\DC3-VAL\` (`v4.log`, `v5.log`, `v5.cmd`, `v6.log`, `v7.log`, `V5_LifePlay.log`, `V6_LifePlay.log`, `V8_LifePlay.log`, `DC3_LPAnimCatalog_20261007-194818.log`, `mods\` zip produit, `x\` extraction des deux zips, `dc3_test_mod\` mod de test déplacé).
|
||
|
||
## Tableau des essais
|
||
|
||
| Essai | Attendu | Constaté | Verdict |
|
||
|---|---|---|---|
|
||
| V0 préalable | `<jeu>\Mods` vide ; `Tools\BuildMod.ps1`, `Tools\anim`, `ModSources`, `AnimSources`, `Config\LPSandbox.ini` absents du jeu | `Mods` présent et vide ; les 5 `Test-Path` = False. 0 UnrealEditor. | PASS |
|
||
| V1 racines | `D:\Game\LifePlay-master 5.5` puis `D:\Game\LifePlay-Sandbox` ; erreur explicite si racine invalide | `D:\Game\LifePlay-master 5.5` / `D:\Game\LifePlay-Sandbox`. `Resolve-LPRoots 'D:\Nexiste\Pas'` : `Exception: ...\Tools\Roots.ps1:37 ... LifePlay.uproject introuvable dans D:\Nexiste\Pas (racine du jeu)` | PASS |
|
||
| V2 ModSource | montage/démontage, addon retrouvé, `Mods` vide | `Mod lpr_anim_freeanims monte dans Mods\lpr_anim_freeanims` ; `Get-StrayMods` : `lpr_anim_freeanims` ; `Mod lpr_anim_freeanims remis dans ModSources\lpr_anim_freeanims`. `ModSources\lpr_anim_freeanims\lpr_anim_freeanims.uplugin` = True ; `<jeu>\Mods` : 0 entrée. | PASS |
|
||
| V3 NewMod | 3 fichiers + `Tools\mods\dc3_test_mod.json` dans l'addon ; déplacé ; git propre | `Mod cree : D:\Game\LifePlay-Sandbox\ModSources\dc3_test_mod` ; `.uplugin`, `Module\dc3_test_mod.lpmod`, `Module\CREDITS.txt`, `Tools\mods\dc3_test_mod.json` tous True (dans l'addon). Déplacés (Move-Item) vers `DC3-VAL\dc3_test_mod\`. `git status --short` de l'addon : plus aucune trace de `dc3_test_mod` (restent les 3 `M` DC3 attendus, voir V9). `<jeu>\Mods` vide. | PASS |
|
||
| V4 cuisson de mod | code 0, même liste de fichiers | code 0, 28 s (voir détail). Zip 4 416 299 octets, 29 fichiers, SHA-256 `F4D011F9...C62DE`. `<jeu>\Mods` vide ; `ModSources\lpr_anim_freeanims\lpr_anim_freeanims.uplugin` revenu. | PASS |
|
||
| V5 conversion à blanc des rigs | `RETARGET rigs prets jeton ...` | `Conversion des clips de /Game/Quaternius/UAL vers Bridget et Michael (methode ue4, rigs)` / ` RETARGET rigs prets jeton 5a32ccdcbe35` / `Cuisson non lancee`. 59 s. Journal éditeur : `LogLPAnimMeasure: PATHS racine addon D:/Game/LifePlay-Sandbox` ; `LogPython: Warning: RETARGET methode ue4 profil ue4_mannequin calques T` ; `RETARGET profil UAL1_Standard -> ue4_mannequin (100%)`. Plantage à la fermeture : non observé, 0 éditeur après. | PASS |
|
||
| V6 tournée freeanims `-From 5 -To 5` | code 0, `ok`, 73 fichiers comparés | code 0, 424 s, `verdict : ok (424 s)`, `[ok] une vignette <Clip>.png par clip`, `[ok] une planche <Clip>.jpg + .json par clip`. Voir détail. | PASS |
|
||
| V7 LPAnimCatalog sans argument | `Usage`, code 1, `fiches_calculees.json` inchangé | `LogLPAnimCatalog: Error: Usage : -Livraison=<livraison.json> [-Out=<dossier>] [-SeuilBoucle=1] [-SeuilSurPlace=5]`, `code=1 duree=12s erreurs=2`. SHA-256 de `Saved\AnimPipeline\quaternius\fiches_calculees.json` avant = après = `5DBBA632FAF3821415D0F7EF9CD74226EA694501BCC69B96565170194F9417AE` (date de modification aussi inchangée, 00:33:24). | PASS |
|
||
| V8 lanceur pair | `Ouvert :`, Modules, PATHS | `LifePlay_pair_sandbox.bat` ; `Ouvert :` en moins de 60 s. `LogLPAnimMeasure: PATHS racine addon D:/Game/LifePlay-Sandbox` ; `LogLPSandboxMods: Display: Modules : 7 sandbox, 16 jeu ; ordre : lps_system_core, lps_system_animmeasure, lps_lib_scene, lps_lib_actors, lps_couple, lps_interaction, lps_asset_integration` ; `LogLPSandboxMods: Display: Ouvert : lps_couple`. Processus UnrealEditor arrêté (`Stop-Process`). | PASS |
|
||
| V9 état final | `Mods` vide, 0 éditeur, `Open=lps_couple`, git status | `<jeu>\Mods` : 0 ; 0 UnrealEditor ; `Saved\sandbox_mods.ini` : `Order=lps_couple,lps_interaction,lps_asset_integration`, `Open=lps_couple`, 3 modules `true`. Git : voir ci-dessous. | PASS |
|
||
|
||
## Détail V4 : cuisson `lpr_anim_freeanims`
|
||
|
||
- Version lue dans le jeu 2026.10.1.6, journal de cuisson `Saved\Logs\portage\mods\lpr_anim_freeanims_20261007_193840.log`. Sorties : `20 paquet(s) cuit(s)`, `conteneur : 20 fichier(s), tous sous Mods/lpr_anim_freeanims/`, `Archive : ...\DC3-VAL\mods\lpr_anim_freeanims-1.0-for-LifePlay-2026.10.1.6.zip (4 416 299 octets, 29 fichiers ...)`. Pas de dossier `precedent_*` (sortie vers un dossier neuf).
|
||
- Comparaison avec `D:\Game\LifePlay_Publication\Mods\lpr_anim_freeanims-1.0-for-LifePlay-2026.10.1.6.zip` (7-Zip, les deux zips extraits) : 41 entrées (dossiers compris) de chaque côté, 29 fichiers de chaque côté, **liste identique** (aucun fichier en plus ni en moins), taille de l'archive identique (4 416 299 octets).
|
||
- Comparaison fichier par fichier (SHA-256) : **les 29 fichiers sont octet pour octet identiques**, y compris `lpr_anim_freeanimsLifePlay-Windows.pak` (2 718 o), `.ucas` (642 192 o), `.utoc` (2 485 o) ; seul l'horodatage du système de fichiers du `.pak` diffère (non compris dans le contenu). Aucun écart de taille.
|
||
- `.lpmod` livré : SHA-256 identique (`0B1B3CAE...4DD9`), diff texte vide (`MODULE_PACKAGED: 2026-10-07` et `MODULE_GAME_VERSION: 2026.10.1.6` identiques dans les deux).
|
||
- Le SHA-256 du zip précédent est `F518B0EB...EAC` contre `F4D011F9...62DE` : différence due à l'enveloppe zip (horodatages des entrées), pas au contenu.
|
||
|
||
## Détail V6 : comparaison complète contre `SB2-REF\freeanims\`
|
||
|
||
Règle de DC2-VAL : SHA-256 de chaque fichier commun ; `5_evaluation.json` et `2_identification.json` comparés en JSON hors `debut`/`fin`/`duree_s` ; `etat.json` exclu ; ligne « Généré le » de `rapport.html` exclue.
|
||
|
||
- **73 fichiers comparés, liste 73 / 73 identique** (`Compare-Object` vide).
|
||
- 50 fichiers au SHA-256 identique. 23 différents :
|
||
- `etat.json` (même taille 1 960 o), `rapport.html` (seule ligne différente : `Généré le` 07/10/2026 12:31:18 → 19:41:00), `etapes\2_identification.json` (JSON égal hors dates), `etapes\5_evaluation.json` (JSON égal hors dates ; verdict `ok` des deux côtés, 0 avertissement des deux côtés ; `duree_s` 424 vs 435).
|
||
- **19 images** (10 planches `.jpg` + 9 vignettes `.png`), toutes dans les 20 images connues non déterministes (AirKiss, AttackInLevitation2, ChillDriving, ComboHands, EatingOnParty, FlyingUp, GoForward, Rest, RightLegKick2, Talk), écart de taille maximal 0,16 % (`AS_Talk.jpg` 144 201 → 144 435). `AS_ChillDriving.png` est cette fois identique, d'où 19 sur 20.
|
||
- Tous les fichiers de données (`rapport.json`, CSV, `retarget_pose_*.txt`, etc.) identiques.
|
||
- Journal d'éditeur (`V6_LifePlay.log`) : `LogLPAnimMeasure: PATHS racine addon D:/Game/LifePlay-Sandbox` ; `METHODE ue5 (calques en pose A, profil source ue5_mannequin)` ; `PROFIL squelette SK_Mannequin (161 os) -> ue5_mannequin, 100% des os du profil` ; `PROFIL squelette bridget_gp_Skeleton (191 os) -> genesis8, 100% des os du profil` ; `PROFIL squelette michael_Skeleton (183 os) -> genesis8, 100%` ; `LogLPSandbox: Warning: TOURNEE debut 10 clips, 30 etapes` ; `LogLPSandboxMods: Display: Ouvert : lps_asset_integration (declencheur, non memorise)`. Aucune erreur « profil » ou « methode » introuvable (les seules lignes trouvées par la recherche `profil` sont `Deviceprofile LinuxArm64... not found`, sans rapport, du moteur). Seul `Error` du journal : `LogLifePlay: Error: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable sur GameInstance_0, table laissee telle quelle` (connu, propre à la sandbox, déjà noté à DC2-VAL).
|
||
- `Open=lps_couple` conservé après la tournée.
|
||
|
||
## État final (V9)
|
||
|
||
- `git -C D:\Game\LifePlay-Sandbox status --short` (changements DC3 non commités, attendu : retrait des replis vers le jeu) :
|
||
```
|
||
M Plugins/LPSandbox/Source/LPAnimMeasure/LPAnimMeasurePaths.cpp
|
||
M Plugins/LPSandbox/Source/LPAnimMeasure/LPAnimMeasurePaths.h
|
||
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxConfig.cpp
|
||
```
|
||
- `git -C "D:\Game\LifePlay-master 5.5" status --short` : 69 lignes, inchangées par cette validation (retraits indexés `D ` de `ModSources/`, `AnimSources/`, `Tools/BuildMod.ps1`, `NewMod.ps1`, `EditMod.ps1`, `ModSource.ps1`, `HairPipeline.ps1`, `Tools/anim/*`, `Tools/hairs`, `Tools/mods`, `Tools/debug/*_sandbox.bat`, `Config/LPSandbox.ini`, `Docs/Modding/...` ; modifiés ` M` `.gitignore`, `README.md`, `Docs/Modding/ShortGuides/explanation.lpmod`, `Source/LifePlay/LPModInfoSubsystem.h`, `Tools/BuildDebug.ps1`, `Tools/SplitModules.ps1` ; non suivis `.cursor/`, `Docs/Migration/etat/PUB1/`, `Docs/Migration/etat/commit_plan/CP-RUN.md`, `Docs/Migration/etat/sandbox/DC3/`, `LPSandboxMeasure.cpp`, `LPSandboxMeasureTour.cpp`).
|
||
|
||
## Anomalies
|
||
|
||
1. `Tools\RunCommandlet.ps1` écrit son résumé `D:\Game\LifePlay-master 5.5\Docs\Migration\etat\DC3_LPAnimCatalog_20261007-194818.txt` (comportement du script, non listé par git status, sans doute ignoré) : à déplacer ou ignorer si indésirable.
|
||
2. `Saved\sandbox_mode.txt` contient `Pair` en fin de validation (valeur écrite par le lanceur pair en V8 ; la valeur d'origine avant V6 n'avait pas été relevée, le pilote la restaure lui-même après V6).
|
||
3. Compte des entrées de zip : 41 entrées dont dossiers pour 29 fichiers (la fiche ne précisait pas la différence) ; sans conséquence.
|
||
4. Le dossier `D:\Game\LifePlay_Backup_5.5\DC3-VAL\x\` contient les deux extractions de zip (rien supprimé) ; peut être effacé par l'utilisateur.
|
||
5. Aucune anomalie sur les chemins : l'addon est utilisé seul pour profils/méthodes (V6, V5 réussis sans repli), et le jeu n'a plus aucun des éléments d'atelier.
|
||
|
||
## Verdict
|
||
|
||
**PASS** sur V0–V9. Critères : V4 zip produit avec la même liste de fichiers (et contenus octet pour octet identiques) ; V6 73 fichiers comparés ; V7 code 1 sans écriture ; `<jeu>\Mods` vide à la fin.
|
||
|
||
## Reste à valider par l'utilisateur
|
||
|
||
Rien de visuel, sauf s'il souhaite ouvrir EditMod (`D:\Game\LifePlay-Sandbox\Tools\EditMod.ps1`, lancement de l'éditeur sur un mod, non testé ici).
|
||
|
||
## Modèles par fiche
|
||
|
||
| Fiche | Modèle prévu | Modèle utilisé |
|
||
|---|---|---|
|
||
| DC3-T1 | opus | opus |
|
||
| DC3-T2 | opus | opus |
|
||
| DC3-T3a | haiku | haiku |
|
||
| DC3-T3b | sonnet | sonnet |
|