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

60 lines
5.9 KiB
Markdown
Raw Normal View History

# S3-VAL - Validation du lot S3 (addon `LifePlay-Sandbox` branché sur le jeu)
- **Date :** 2026-10-06
- **Fiche :** S3-T5 | **Rôle :** A-VAL
- **Modèle prévu :** `claude-sonnet-5-5-high` | **Modèle utilisé :** `claude-sonnet-5-5-high`
- **Pin addon :** `4de1f0b6764ed3bc575bb687630d3f070e1be221` (`HEAD` de `D:\Game\LifePlay-Sandbox`, arbre propre)
- **Références :** `S3-INT.md`, `S3-IMPL-H.md`, `Docs/S3-move.md` (côté addon)
## Verdict : **PASS** (jeu : PASS complet ; addon mince : PASS avec réserve, voir §3)
| # | Contrôle | Résultat |
|---|---|---|
| 1 | Bat Pair lancé depuis le **jeu** (`Tools/debug/LifePlay_pair_sandbox.bat`) : plugin LPSandbox monté, `LPPairSandboxGameMode` trouvé | **PASS** |
| 2 | Aucune erreur de module (`Unable to load module`, `LNK`, `Fatal error`, `Assertion failed`) ni de GameMode introuvable | **PASS** (0 occurrence) |
| 3 | Sandbox opérationnel (mur, collision, éclairage, interaction, Quaternius) | **PASS** (16 lignes `LogLPSandbox`) |
| 4 | Addon mince `LPSandbox.uproject -game`, même GameMode | **PASS avec réserve** (GameMode et sandbox OK ; erreurs de chargement de Blueprints du jeu, voir §3) |
| 5 | Processus tués après essai | **PASS** (aucun `UnrealEditor` résiduel) |
## 1. Jeu : bat Pair
Commande du bat (inchangée) : `UnrealEditor.exe LifePlay.uproject "/Engine/Maps/Entry?game=/Script/LPSandbox.LPPairSandboxGameMode" -game -windowed -ResX=1600 -ResY=900 -ini:Engine:[...]GameInstanceClass=/Script/Engine.GameInstance`. `Saved/sandbox_mode.txt` = `Pair`. Processus resté vivant (`Responding = True`) environ 85 s, puis tué. Journal : `Saved/Logs/S3-VAL-runtime-game.log` (copie de `LifePlay.log`).
| Constat | Journal |
|---|---|
| Plugin monté depuis `AdditionalPluginDirectories` | `LogPluginManager: Mounting External plugin LPSandbox` |
| GameMode résolu | `LogLoad: Game class is 'LPPairSandboxGameMode'` (aucun « GameMode introuvable ») |
| Sandbox en marche | `Sandbox mur`, `Sandbox collision : 54 meubles, 0 absents, capsule 20 / 88, profil Person lu`, `Sandbox eclairage`, `Sandbox interaction : 286 actions, 160 lieux, 12 horaires` |
| Racine UAL injectée par l'addon (S3-T4) | `Sandbox Quaternius : corps /Game/Quaternius/UAL/UAL1_Standard.UAL1_Standard, 43 animation(s)` |
| Erreurs de module / lien | 0 |
| `: Error:` (total) | 1 : `LogLifePlay: Error: Coiffures : GI.HairstyleTable ou GI.MorphableHairs introuvable` (déjà présent avant le lot S2, sans lien avec l'addon) |
`LogLPAnimMeasure` : 0 ligne, attendu en mode Pair (la mesure n'est active qu'en mode Mesure ; `S2-VAL.md` avait validé les 269 lignes en Mesure avant le transfert). Le module `LPAnimMeasure` (DLL `Binaries/Win64/UnrealEditor-LPAnimMeasure.dll` du 19:20:01) est chargé comme dépendance de `LPSandbox`.
Avertissement non bloquant : `LoadErrors: ... a dependent package /Game/Quaternius/UAL/M_Joints was not available` (le fichier `Content/Quaternius/UAL/M_Joints.uasset` n'existe pas dans le jeu ; l'asset `UAL1_Standard` se charge malgré tout, aucun effet sur le sandbox). À traiter hors S3.
## 2. Binaires du jeu
`UnrealEditor-LifePlay.dll` 19:20:19, `UnrealEditor-LifePlayEditorTools.dll` 19:20:23, `UnrealEditor-LPAnimMeasure.dll` 19:20:01, `UnrealEditor-LPSandbox.dll` 19:20:27 (compilés dans l'arbre du jeu depuis le plugin sibling). `Source/` du jeu ne contient plus ni `LPAnimMeasure/` ni aucun fichier `LP*Sandbox*` (lot S3-T3 effectif). `LifePlay.uproject` : `AdditionalPluginDirectories = ["../LifePlay-Sandbox/Plugins"]` et `LPSandbox` activé.
## 3. Addon mince : `LPSandbox.uproject -game`
Commande : `UnrealEditor.exe D:\Game\LifePlay-Sandbox\LPSandbox.uproject "/Engine/Maps/Entry?game=/Script/LPSandbox.LPPairSandboxGameMode" -game -windowed -ResX=1600 -ResY=900 -ini:...GameInstanceClass=/Script/Engine.GameInstance -abslog=...\S3-VAL-thin.log`. Content : junction `D:\Game\LifePlay-Sandbox\Content` -> `D:\Game\LifePlay-master 5.5\Content` (présente). Processus vivant environ 3 min (la compression des animations `/Game/Heavy/...` en cache DDC a ralenti la fin de l'essai), puis tué. Journal : `Saved/Logs/S3-VAL-runtime-thin.log` (copie de `LifePlay-Sandbox/Saved/Logs/S3-VAL-thin.log`).
| Constat | Journal |
|---|---|
| Plugin monté | `LogPluginManager: Mounting Project plugin LPSandbox` |
| GameMode résolu | `LogLoad: Game class is 'LPPairSandboxGameMode'` |
| Sandbox en marche | mêmes lignes `LogLPSandbox` que dans le jeu (mur, collision 54 meubles / 0 absents, éclairage, interaction 286 actions) |
| Erreur de module / lien | 0 |
| `: Error:` | 2 458, tous dus au **contenu du jeu** : 217 `Unknown structure` + erreurs de compilation Blueprint (`CityExpansion`, `Save`, `GI`, `UI/*`) sur des structures `StreetMapBuilding` (`/Script/StreetMapRuntime`) |
**Réserve (cause identifiée) :** `LPSandbox.uproject` n'active pas le plugin `StreetMap` (plugin du jeu, absent du dossier addon) ; les Blueprints du jeu qui l'utilisent se chargent donc avec des types de repli. Ils ne servent pas au sandbox (le monde est créé par code), qui démarre quand même. Conséquences : (1) l'addon mince valide le chargement du module, du GameMode et du Content monté, pas le contenu complet du jeu ; (2) l'essai complet (BP `Person`, `GI`, etc.) reste à faire depuis le jeu (§1). Piste si besoin : ajouter `AdditionalPluginDirectories = ["../LifePlay-master 5.5/Plugins"]` au `LPSandbox.uproject` (non fait : hors périmètre S3). `Config/LPSandbox.ini` de l'addon est lu côté addon, copie identique à celle du jeu.
## 4. Effets de bord et limites
- Aucun Blueprint ni asset du jeu modifié par l'essai (`git status` : seuls `GI`, `Person`, `Room` figuraient déjà modifiés avant).
- 2 processus `UnrealEditor` tués (jeu, puis addon) ; `CrashReportClient` éventuel nettoyé.
- Contrôle visuel non fait (preuve par journal uniquement). Mode Mesure et commandlets non relancés après transfert (hors fiche).
- Aucun commit effectué par cette fiche.