# SB4-VAL — Validation finale de la sandbox modulaire (SB4-T1b) **Fiche SB4-T1b — Modèle prévu sonnet | utilisé sonnet** - Date : 2026-10-07. Build testé : celui de `SB4-BUILD.md` (non recompilé). Addon `D:\Game\LifePlay-Sandbox`, branche `lot/SB4-final`. - Journaux copiés dans `D:\Game\LifePlay_Backup_5.5\SB4-VAL\` : `F1.log`, `F2_quaternius_sandbox.log`, `F2_quaternius_console.txt`, `F2_freeanims_sandbox.log`, `F2_freeanims_console.txt`. - Procédure : méthode de `SB2-VAL.md` (lanceur `LifePlay_pair_sandbox.bat`, attente de `Ouvert :`, copie du journal, arrêt de `UnrealEditor`). Aucun éditeur avant chaque lancement. Aucun git, aucune modification de source ni de script ; l'ini n'a jamais été touché (déjà à l'état standard). - Incident sans effet : un premier essai F1 (appel depuis bash) n'a pas lancé l'éditeur (erreur de guillemets) ; le journal alors lu était l'ancien. F1 a été refait proprement depuis PowerShell ; seul le second lancement est retenu. ## Tableau des essais | Essai | Attendu | Constaté (lignes recopiées) | Verdict | |---|---|---|---| | F1 démarrage | 7 modules, ordre, aucun refus, `Ouvert : lps_couple` sans suffixe, aucun Error/Ensure/Fatal LPSandbox | `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` ; les 7 en `pret` ; `LogLPSandboxMods: Display: Ouvert : lps_couple` (sans suffixe) ; aucune ligne `refus`. Seul `Error` : `LogLifePlay: Error: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable sur GameInstance_0, table laissee telle quelle` (connu, préexistant, hors LPSandbox). Aucun `Ensure`/`Fatal`. | PASS | | F2 quaternius : avant | `Open=lps_couple` | `Saved\sandbox_mods.ini:3:Open=lps_couple` | PASS | | F2 quaternius : journal | `Ouvert : lps_asset_integration (declencheur, non memorise)` + `TOURNEE fermeture demandee` | `LogLPSandbox: Warning: TOURNEE debut 43 clips, 129 etapes` ; `LogLPSandboxMods: Display: Ouvert : lps_asset_integration (declencheur, non memorise)` ; `TOURNEE debut 43 clips, 2080 etapes` ; `LogLPSandbox: Warning: TOURNEE fermeture demandee`. Code 0, 1136 s, verdict `avertissement`. Seul Error : Coiffures. | PASS | | F2 quaternius : après | `Open=lps_couple` toujours | `Saved\sandbox_mods.ini:3:Open=lps_couple` | PASS (correctif SB4-T0 prouvé) | | F2 freeanims : avant | `Open=lps_couple` | `Saved\sandbox_mods.ini:3:Open=lps_couple` | PASS | | F2 freeanims : journal | idem | `TOURNEE debut 10 clips, 30 etapes` ; `Ouvert : lps_asset_integration (declencheur, non memorise)` ; `TOURNEE debut 10 clips, 697 etapes` ; `TOURNEE fermeture demandee`. Code 0, 435 s, verdict `ok`. Seul Error : Coiffures. | PASS | | F2 freeanims : après | `Open=lps_couple` toujours | `Saved\sandbox_mods.ini:3:Open=lps_couple` | PASS (correctif SB4-T0 prouvé) | | F3 quaternius | fichiers identiques, verdict `avertissement`, 8 mêmes avertissements | voir détail | PASS | | F3 freeanims | fichiers identiques, verdict `ok` | voir détail (20 images diffèrent, comme à SB2) | PASS (images : à juger) | | F4 état final | ini standard, aucun éditeur, git recopié | voir ci-dessous | PASS | ## Détail F3 Référence : `D:\Game\LifePlay_Backup_5.5\SB2-REF\\` ; nouveau : `Saved\AnimPipeline\\`. Comparaison par SHA-256. ### quaternius (verdict `avertissement`) - Liste de fichiers : 44 / 44, identique. - Seuls fichiers dont le SHA-256 diffère : `etapes\5_evaluation.json`, `etat.json` (exclus de la règle : dates/durées) et `rapport.html` (seule ligne différente : « Généré le » 07/10/2026 12:10:18 → 14:13:07). Tous les autres `.json`, `.csv`, `.txt` (dont `rapport.json`, `eval_*.csv`, `controles_*.csv`, `retarget_pose_*.txt`) sont identiques : non-régression des commandlets AP prouvée. - Verdict `5_evaluation.json` : `avertissement` dans la référence et dans le nouveau ; 8 avertissements dans chacun, listes identiques (comparées en JSON). - Images : aucune dans ce pack. ### freeanims (verdict `ok`, 0 avertissement) - Liste de fichiers : 73 / 73, identique. - Même règle : `etapes\5_evaluation.json`, `etat.json` et `rapport.html` (ligne « Généré le » 12:31:18 → 14:32:12 uniquement) diffèrent ; tous les `.json`/`.csv`/`.txt` hors ces fichiers sont identiques. - Images qui diffèrent (20, rendu non déterministe déjà constaté à SB1/SB2 ; ce sont exactement les mêmes 20 fichiers qu'à SB2-VAL), octets réf → nouveau : | Fichier (sous `sandbox\`) | Réf → nouveau | |---|---| | planches\AS_AirKiss.jpg | 148577 → 148526 | | planches\AS_AttackInLevitation2.jpg | 139248 → 139440 | | planches\AS_ChillDriving.jpg | 187537 → 187702 | | planches\AS_ComboHands.jpg | 159892 → 159862 | | planches\AS_EatingOnParty.jpg | 141254 → 141287 | | planches\AS_FlyingUp.jpg | 119045 → 119056 | | planches\AS_GoForward.jpg | 150812 → 150727 | | planches\AS_Rest.jpg | 138425 → 138520 | | planches\AS_RightLegKick2.jpg | 88121 → 88191 | | planches\AS_Talk.jpg | 144201 → 144338 | | vignettes\AS_AirKiss.png | 261470 → 258587 | | vignettes\AS_AttackInLevitation2.png | 252870 → 253413 | | vignettes\AS_ChillDriving.png | 289192 → 290287 | | vignettes\AS_ComboHands.png | 269493 → 269661 | | vignettes\AS_EatingOnParty.png | 263747 → 263304 | | vignettes\AS_FlyingUp.png | 263615 → 264331 | | vignettes\AS_GoForward.png | 257039 → 257130 | | vignettes\AS_Rest.png | 242540 → 242621 | | vignettes\AS_RightLegKick2.png | 265941 → 265247 | | vignettes\AS_Talk.png | 260083 → 260694 | Écarts de taille inférieurs à 1,2 % (AS_AirKiss.png : -1,1 %), sans anomalie de liste. ## État final (F4) - `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 ``` - Processus `UnrealEditor` : 0. - `git -C D:\Game\LifePlay-Sandbox status --short` (changements SB4-T0 non commités, attendu) : ``` M Plugins/LPSandbox/Source/LPSandbox/LPPairSandbox.cpp M Plugins/LPSandbox/Source/LPSandbox/LPSandboxModRegistry.cpp M Plugins/LPSandbox/Source/LPSandbox/LPSandboxModRegistry.h ``` ## Anomalies - Aucune nouvelle. `Error` Coiffures (LogLifePlay) présent à chaque lancement, préexistant. - 20 images freeanims différentes (rendu non déterministe, mêmes fichiers qu'à SB2) : à juger visuellement si souhaité. ## Verdict global **PASS** : F1, F2 (ouverture par déclencheur non mémorisée, `Open=lps_couple` intact après les deux tournées), F3 (quaternius `avertissement` avec les 8 mêmes avertissements, freeanims `ok`, tous fichiers de données identiques) et F4 satisfaits. ## Modeles prevus et utilises | Tache | Prevu | Utilise | |---|---|---| | SB4-T0 | opus | opus | | SB4-T1a | haiku | haiku | | SB4-T1b | sonnet | sonnet | | SB4-T2 | sonnet | sonnet | | SB4-T3 | opus | opus | | SB4-T4 | sonnet | sonnet | **Verdict global du lot SB4 : PASS**