LifePlay-Revival/Docs/Migration/etat/sandbox/SB2/SB2-VAL.md

152 lines
12 KiB
Markdown
Raw Normal View History

# SB2-VAL — Validation automatique du lot SB2 (SB2-T5, partie automatique)
**Fiche SB2-T5 — Modèle prévu sonnet | utilisé sonnet**
- Date : 2026-10-07. Build testé : celui de SB2-T4 (compilation code 0, non refaite).
- Journaux copiés dans `D:\Game\LifePlay_Backup_5.5\SB2-VAL\` : `E1.log`, `E2.log`, `E3.log`, `E4_quaternius_sandbox.log`, `E4_freeanims_sandbox.log`, `E4_*_console.txt`.
- Procédure : aucun éditeur actif avant chaque lancement ; démarrage par `LifePlay_pair_sandbox.bat` ; attente de `Ouvert :` / `Aucun mod ouvert` ; copie du journal ; arrêt du seul `UnrealEditor` lancé. E4 : le pilote lance et ferme lui-même la sandbox.
- Aucun git, aucune modification de source ni de script. Seuls fichiers touchés : `Saved\sandbox_mods.ini` (E2, remis) et le dossier `0010_lps_lib_scene` (E3, remis).
## Tableau des essais
| Essai | Attendu | Constaté (lignes de journal) | Verdict |
|---|---|---|---|
| E1 démarrage | 7 modules, ordre, aucun refus ; `Ouvert : lps_couple` ; lignes boîte / corps / Quaternius ; pas de `Sandbox interaction : action chargee` ; aucun `Error`/`Ensure`/`Fatal` | `LogLPSandboxMods: 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`, les 7 en `pret`. `Sandbox Quaternius : corps /Game/Quaternius/UAL/UAL1_Standard.UAL1_Standard, 43 animation(s)` (1 seule ligne). `Sandbox corps : bridget_gp`, `Sandbox corps : michael`. `Sandbox boite AgMakeout : centre X=20.831 Y=1.400 Z=-0.534, etendue X=41.180 Y=50.958 Z=89.466` ; `Sandbox pose : AgMakeout_F sur Bridget` / `AgMakeout_M sur Michael`. `Ouvert : lps_couple`. Aucune ligne `Sandbox interaction`. Seul `Error` : `LogLifePlay: Error: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable sur GameInstance_0, table laissee telle quelle` (hors module LPSandbox ; présente dans les 9 journaux antérieurs du jour, donc préexistante) | PASS |
| E2 ouverture interaction | `Ouvert : lps_interaction`, action chargée, N actions, poses Idle_Loop | `Sandbox interaction : action chargee Chat` ; `Sandbox interaction : 286 actions, 160 lieux, 12 horaires` ; `Sandbox pose : M_Idle_Loop sur Michael`, `B_Idle_Loop sur Bridget`, `M_Idle_Loop sur Michael` ; `Sandbox interaction : touche E lue dans ../../../../../../LifePlay-master 5.5/Saved/Config/Windows/LPKeyboard.ini` ; `Ouvert : lps_interaction`. Un seul `Error` (Coiffures, préexistant) | PASS |
| E3 prérequis (D2) | 3 mods en prérequis manquant, scène neutre, pas de plantage | `Modules : 6 sandbox, 16 jeu ; ordre : lps_system_core, lps_system_animmeasure, lps_lib_actors, lps_couple, lps_interaction, lps_asset_integration` ; `lps_couple [mod] prerequis manquant : prerequis absent : lps_lib_scene` ; idem `lps_interaction` et `lps_asset_integration` (+ 3 `Warning`) ; `Ouverture refusee : lps_couple (prerequis absent : lps_lib_scene)` puis `Aucun mod ouvert : scene neutre`. Aucun plantage, aucun `Fatal`/`Ensure`. Seul `Error` : Coiffures (préexistant) | PASS |
| E4 quaternius | verdict `avertissement`, 8 avertissements identiques, fichiers identiques, `Ouvert : lps_asset_integration`, `TOURNEE fermeture demandee` | voir détail ci-dessous ; journal : `TOURNEE debut 43 clips, 129 etapes`, `Ouvert : lps_asset_integration`, `TOURNEE fin vignettes`, `TOURNEE fin planches`, `TOURNEE fermeture demandee` ; code 0, 1136 s ; seul `Error` : Coiffures | PASS |
| E4 freeanims | verdict `ok`, fichiers identiques, `Ouvert : lps_asset_integration`, `TOURNEE fermeture demandee` | voir détail ci-dessous ; journal : `Ouvert : lps_asset_integration`, `TOURNEE fermeture demandee` ; code 0, 436 s ; seul `Error` : Coiffures | PASS (images : à juger) |
| E5 état final | ini exact, dossier en place, aucun éditeur, git inchangé | voir ci-dessous | PASS |
## Détail E4
Référence : `D:\Game\LifePlay_Backup_5.5\SB2-REF\<pack>\` ; nouveau : `Saved\AnimPipeline\<pack>\`. Comparaison par SHA-256.
### quaternius (verdict `avertissement`, identique à la référence)
- Liste de fichiers : 44 / 44, identique (rien en plus, rien en moins).
- `etapes\*` : tous identiques (SHA-256) sauf `5_evaluation.json` (champs `debut`, `fin` seulement : 12:09:57→12:47:11 et 12:28:53→13:06:07). `etat.json` : dates `fin` / `maj` seulement. Ces deux fichiers sont listés à part comme demandé.
- Tous les `.json`, `.csv` (`controles_*`, `eval_*`), `rapport.json`, `retarget_pose_*.txt` : identiques. Seul autre écart : `rapport.html`, ligne « Généré le » (12:10:18 → 12:47:32) ; le reste est identique.
- Images : le pack n'en contient aucune dans `Saved\AnimPipeline\quaternius\` (0 png/jpg), donc aucun écart.
- Avertissements de l'étape 5 (champ `avertissements`) : 8 dans la référence, 8 dans le nouveau, listes identiques (comparées en JSON) :
Bridget et Michael — Death01 (sol 5.6 cm lFoot), Fixing_Kneeling (sol 5.2 / 4.4 cm rFoot), Jump_Start (saut 23.1° lForearmBend), Roll (sol 4.8 / 5.0 cm rFoot).
### freeanims (verdict `ok`, 0 avertissement, identique à la référence)
- Liste de fichiers : 73 / 73, identique.
- `etapes\*` : identiques sauf `5_evaluation.json` (`debut`, `fin`, `duree_s` 435→436) ; `etat.json` : dates seulement.
- Tous les `.json` de planches, `.csv`, `rapport.json`, `retarget_pose_*.txt` : identiques. `rapport.html` : seule la ligne « Généré le » diffère (12:31:18 → 13:06:56).
- Images qui diffèrent (rendu non déterministe connu, comme à SB1), octets référence → nouveau, 20 fichiers sous `sandbox\` :
| Fichier | Réf → nouveau |
|---|---|
| planches\AS_AirKiss.jpg | 148577 → 148578 |
| planches\AS_AttackInLevitation2.jpg | 139248 → 139275 |
| planches\AS_ChillDriving.jpg | 187537 → 187658 |
| planches\AS_ComboHands.jpg | 159892 → 159937 |
| planches\AS_EatingOnParty.jpg | 141254 → 141230 |
| planches\AS_FlyingUp.jpg | 119045 → 119005 |
| planches\AS_GoForward.jpg | 150812 → 150807 |
| planches\AS_Rest.jpg | 138425 → 138509 |
| planches\AS_RightLegKick2.jpg | 88121 → 88134 |
| planches\AS_Talk.jpg | 144201 → 144311 |
| vignettes\AS_AirKiss.png | 261470 → 261594 |
| vignettes\AS_AttackInLevitation2.png | 252870 → 253367 |
| vignettes\AS_ChillDriving.png | 289192 → 289447 |
| vignettes\AS_ComboHands.png | 269493 → 269859 |
| vignettes\AS_EatingOnParty.png | 263747 → 263094 |
| vignettes\AS_FlyingUp.png | 263615 → 264127 |
| vignettes\AS_GoForward.png | 257039 → 256848 |
| vignettes\AS_Rest.png | 242540 → 242539 |
| vignettes\AS_RightLegKick2.png | 265941 → 265573 |
| vignettes\AS_Talk.png | 260083 → 259601 |
Écarts de taille inférieurs à 0,5 %.
## Observations
- Écart attendu confirmé (§ 7 de la carte) : au démarrage, ni `Sandbox interaction : action chargee` ni comptage d'actions ; chargés à l'ouverture d'interaction (E2). Un seul `Sandbox Quaternius` par démarrage (E1, E2, E3).
- E3 : sans `lps_lib_scene`, le GameMode construit tout de même la pièce (lignes `Sandbox mur`, `Sandbox collision`, `Sandbox eclairage` présentes, en E3 comme en E2) ; seul le registre refuse les mods. Aucun plantage. À noter, non bloquant (la décision D2 ne portait que sur le refus des mods).
- `Error` `LogLifePlay: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable` : présent dans chaque lancement, y compris dans les journaux d'avant SB2 (09:36 à 10:38) ; sans lien avec SB2.
- `Open=` a été réécrit par la sandbox à chaque ouverture (`lps_asset_integration` après E4) ; remis à l'état demandé.
## État final (E5)
- `D:\Game\LifePlay-master 5.5\Saved\sandbox_mods.ini` :
```
[Mods]
Order=lps_couple,lps_interaction,lps_asset_integration
Open=lps_couple
[Enabled]
lps_couple=true
lps_interaction=true
lps_asset_integration=true
```
- `Modules\System\0010_lps_lib_scene\lps_lib_scene.lpmod` : présent ; `D:\Game\LifePlay_Backup_5.5\SB2-VAL\0010_lps_lib_scene` : absent (remis à sa place).
- Processus `UnrealEditor` : 0. `Saved\sandbox_mode.txt` : `Pair`.
- `git -C D:\Game\LifePlay-Sandbox status --short` (non commité, attendu) :
```
M Plugins/LPSandbox/Modules/Mods/lps_asset_integration/lps_asset_integration.lpmod
M Plugins/LPSandbox/Source/LPSandbox/LPPairSandbox.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPPairSandbox.h
M Plugins/LPSandbox/Source/LPSandbox/LPPairSandboxMenu.h
RM Plugins/LPSandbox/Source/LPSandbox/LPCoupleSim.cpp -> Plugins/LPSandbox/Source/LPSandbox/LPSandboxCoupleMod.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxInteraction.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxMeasure.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxMeasureTour.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxMod.h
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxModRegistry.cpp
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxModRegistry.h
M Plugins/LPSandbox/Source/LPSandbox/LPSandboxModWrappers.cpp
RM Plugins/LPSandbox/Source/LPSandbox/LPSandboxRoomBuilder.cpp -> Plugins/LPSandbox/Source/LPSandbox/LPSandboxScene.cpp
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxActors.cpp
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxActors.h
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxCamera.cpp
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxCamera.h
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxCoupleMod.h
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxInteractionMod.h
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxMeasureMod.h
?? Plugins/LPSandbox/Source/LPSandbox/LPSandboxScene.h
```
## Reste à l'utilisateur : contrôle visuel
- Couple, Interaction, Asset integration : chaque mod s'ouvre depuis la barre latérale et se comporte comme l'ancien mode (touches 1/2, déplacement, pastille E, chat, filtres, vues, marche, panneau Mesure).
- Enchaînement couple → interaction → asset integration → couple sans résidu (caméra, boîte du couple, collision, animation).
- Écarts attendus à constater : panneau du mod placé sous la rangée Corps (D5) ; scène neutre sans couple (D3).
- Observation O1 de la carte : pièce visible ou non après une Mesure (à confirmer à l'écran).
- Images freeanims qui diffèrent (20 fichiers du tableau).
## Verdict global de la partie automatique
**PASS** : E1, E2, E3, E4 (quaternius `avertissement` avec les 8 mêmes avertissements, freeanims `ok`) et E5 satisfaits ; seuls écarts : dates, `rapport.html` (date de génération) et 20 images freeanims (rendu non déterministe). Aucun plantage, aucun `Error` du module LPSandbox. Contrôle visuel restant à l'utilisateur.
## Contrôle visuel utilisateur (2026-10-07)
| Critère | Verdict |
|---|---|
| (a) chaque mod s'ouvre depuis la barre latérale et se comporte comme l'ancien mode | PASS (« tout est conforme ») |
| (b) enchaînement couple, interaction, asset integration, couple sans résidu | PASS (« tout est conforme ») |
| (c) mod décoché non ouvrable ; décocher le mod ouvert ramène la scène neutre | PASS (« tout est conforme ») |
| Scène neutre sans couple (D3) | PASS (« tout est conforme ») |
| Panneau du mod sous la rangée Corps (D5) | PASS (« tout est conforme ») |
| Images freeanims (20 fichiers qui diffèrent) | PASS (« tout est conforme ») |
| O1 : pièce visible après une Mesure | **Confirmé par l'utilisateur** (« les murs sont invisibles » en revenant de Mesure à Couple) : défaut préexistant, conservé à l'identique par SB2 (SB2-CART § 8), hors périmètre SB2 |
## Verdict global du lot SB2
**PASS** (partie automatique E1 à E5 + contrôle visuel utilisateur). O1 confirmé, non corrigé (hors périmètre).
## Modèles par fiche
| Fiche | Modèle prévu | Modèle utilisé |
|---|---|---|
| SB2-T0 | haiku | haiku |
| SB2-T1 | opus | opus |
| SB2-T2 | opus | opus |
| SB2-T3 | opus | opus |
| SB2-T4 | haiku | haiku |
| SB2-T5 | sonnet | sonnet |
| SB2-T6 | sonnet | sonnet |