LifePlay-Revival/Docs/Migration/etat/ST/STG/STG-COMMUN9-BUILD.md

277 lines
16 KiB
Markdown
Raw Normal View History

Fiche STG-COMMUN9 — Niveau N0 — Modèle prévu (agent lp-builder) | utilisé claude-haiku-5-5 — Agent lp-builder — Skills lp-build, sk-protocol, sk-windows-shell
# STG-COMMUN9-BUILD : neuvième build commun, cible jeu Development + paquet (2026-10-14)
Hors gabarit : rapport de reprise. L'agent a atteint son budget de tours pendant la vérification ; le coordinateur a demandé
de terminer les relevés restants sans relancer le build ni la cuisson. Les sections 1 à 7 du gabarit BUILD sont remplies
ci-dessous, les étapes a à e de la fiche suivent.
## Préalables (étape a)
Commandes et sorties :
- `pwsh -NoProfile -File Tools\UeState.ps1` : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0.
- `Mods\` : `Mods entries: 0`.
- Branche : `ue5.8`.
- MD5 au départ (`Get-FileHash -Algorithm MD5`) : les 21 lignes concordent avec les préfixes de la fiche. Détail :
- `Content\BPs\Person.uasset` `8668A47C627F7A5254910CF0AC33B12A` (complet, égal à la fiche) ;
- `GI.uasset` `32FC0A97…` ; `Room.uasset` `93138747…` ; `PC.uasset` `F45BE57A…` ; `UI\TopRight.uasset` `CB835360…` ;
- `B_Walk_Loop.uasset` `C10FB66E…` ; `M_Walk_Loop.uasset` `D41DB867…` ;
- `LPDirectControlSubsystem.cpp` `4CF589B2…` / `.h` `A82ED5CF…` ; `LPOutdoorRoomSubsystem.cpp` `9DCF0A35…` / `.h` `60FCE1DE…` ;
- `fnt_ext001.uasset` `DF2DB514…` ; `LPDebugSubsystem.cpp` `F0081F9F…` / `.h` `78D3A079…` ;
- `LPCameraModeSubsystem.cpp` `D6063264…` / `.h` `6585D7F6…` ; `LPBonusRewardSubsystem.cpp` `16147626…` / `.h` `87177C7A…` ;
- `LPSaveRelaunch.cpp` `A0CD6687…` / `.h` `F31173F6…` ; `LifePlay.cpp` `3F7FFA30…`.
- Liste complète des MD5 de fin : section Fichiers et MD5.
- Verdict a : FAIT.
## 1. Commande exacte
```
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\Build.ps1' -Lot STG -Target LifePlay -Config Development -ExtraArgs '-NoUBA'"
```
Commande UBT sous-jacente (journal) : `Build.bat LifePlay Win64 Development "-Project=D:\Game\LifePlay-master 5.8\LifePlay.uproject" -WaitMutex -NoHotReloadFromIDE -NoUBA`.
Cuisson et paquet (étape c) :
```
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\BuildDebug.ps1' -Config Development -ArchiveDir 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development' -SkipBuild"
```
UAT lancé : `RunUAT.bat BuildCookRun ... -cook -iterate -stage -pak -iostore -compressed -archive -archivedirectory=...`.
`-iterate` est ajouté par `BuildDebug.ps1` (lp-build § 4) ; ce n'est pas un écart de la fiche.
Contrôle CheckPackage (étape d) :
```
pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1' -Build 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development'
```
## 2. Code de sortie
- Build : `code=0 duree=34s erreurs=0 avertissements=0 autres=0 unites=3` (résumé `Build.ps1`, code 0). Journal : `Result: Succeeded`, `Total execution time: 33.70 seconds`.
- Cuisson/paquet : `BUILD SUCCESSFUL`, `AutomationTool exiting with ExitCode=0 (Success)`, code 0.
- CheckPackage : `Resultat : PASS (code 0)`, code 0.
- UeState à la fin : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0.
## 3. Modules recompilés
Unités compilées (résumé `Build.ps1` et journal, `[1/5]` à `[3/5]`) :
- `LPDirectControlSubsystem.cpp` (compilé, `[1/5] Compile [x64] LPDirectControlSubsystem.cpp [NoUba]`) ;
- `LPOutdoorRoomSubsystem.cpp` (compilé, `[2/5]`) ;
- `Module.LifePlay.cpp` (unité unity, `[3/5]`) ;
- lien `LifePlay.exe` (`[4/5] Link [x64] LifePlay.exe [NoUba]`), `LifePlay.lib` et `LifePlay.exp` créés ;
- `WriteMetadata LifePlay.target` (`[5/5]`).
Horodatages des objets (`Intermediate\Build\Win64\x64\UnrealGame\Development\LifePlay\`) :
- `LPDirectControlSubsystem.cpp.obj` : 14/10/2026 11:42:46 ;
- `LPOutdoorRoomSubsystem.cpp.obj` : 14/10/2026 11:42:50 ;
- `Module.LifePlay.cpp.obj` : 14/10/2026 11:42:54 ;
- `LPCameraModeSubsystem.cpp.obj` : 14/10/2026 10:46:07 ; source `LPCameraModeSubsystem.cpp` 10:30:57 : objet postérieur à la source, donc à jour ;
- `LPBonusRewardSubsystem.cpp.obj` : 14/10/2026 10:46:07 ; source `LPBonusRewardSubsystem.cpp` 09:35:21 : objet postérieur à la source, donc à jour.
Écart à la fiche (établi) : la fiche attend `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` compilés. Ils ne l'ont pas été dans ce build
(absents de la liste des unités, exclus de l'unity par `[Adaptive Build]`), car leurs objets sont plus récents que leurs sources.
Ils ne sont donc pas recompilés, et aucun de leurs avertissements n'a été produit par ce build.
Preuve de l'exclusion adaptative (`Log` du journal) :
`[Adaptive Build] Excluded from LifePlay unity file: LifePlay.cpp, LPBonusRewardSubsystem.cpp, LPCameraModeSubsystem.cpp, LPDebugSubsystem.cpp, LPDirectControlSubsystem.cpp, LPOutdoorRoomSubsystem.cpp, LPSaveRelaunch.cpp`.
Ligne `Makefile` : la sortie du résumé est vide et le journal ne contient aucune ligne `Makefile` (0 ligne). Recréé ou réutilisé : incertain.
Ligne `DLL liees : 0` du résumé : écart de comptage, car le journal contient `[4/5] Link [x64] LifePlay.exe` ; c'est le lien de l'exe jeu.
Messages UHT : aucun `.h` n'a changé depuis la compilation précédente (sauf `LPDirectControlSubsystem.h` 11:12:29 et `LPOutdoorRoomSubsystem.h` 11:19:33, inclus dans cette compilation). Aucun message UHT rapporté dans le journal (`Motif 'UHT'` non relevé ; incertain faute de motif dédié).
## 4. Erreurs et avertissements
- Erreurs du compilateur : 0 (résumé `Build.ps1` : `=== Erreurs du compilateur : 0`).
- Avertissements du compilateur : 0 (`=== Avertissements du compilateur : 0` ; `grep` du motif `warning C` sur le journal : 0 ligne).
- Autres lignes d'erreur ou d'avertissement : 0.
- Avertissements de `LPDirectControlSubsystem.cpp` : aucun dans ce build (0 ligne `warning C` ; le fichier est compilé, `[1/5]`).
- Avertissements de `LPOutdoorRoomSubsystem.cpp` : aucun dans ce build (`[2/5]` sans ligne d'avertissement).
- Avertissements de `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` : non produits (non recompilés, voir § 3).
- Avertissement de cuisson (hors compilateur) : `LogCook: Warning: CookIncremental and UnversionedCookedContent were requested, but LegacyIterative is required due to ZenStore not being used ...` (journal de cuisson lignes 251 et 495 ; résumé `Success - 0 error(s), 1 warning(s)`). Il tient à `BuildDebug` (`-iterate`), pas au code. Non nouveau au sens de lp-build § 7 (`-iterate` est la procédure de BuildDebug).
Aucun avertissement nouveau au sens de la fiche.
## 5. Toolchain
`Using Visual Studio 14.50.35739 toolchain (C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).`
Moteur : `D:\Game\Launcher\Engine\UE_5.8\Engine` (EngineAssociation 5.8). ISPC 1.24.0. Ligne attendue de lp-build § 1 : `14.50.35739 ... 14.50.35717`, conforme.
## 6. Preuve de chargement d'addon
sans objet : la fiche ne demande pas de preuve de chargement ; l'addon `LifePlay-Sandbox-5.8` n'est pas modifié par ce lot (aucun
fichier de l'addon dans la liste de la fiche).
## 7. Journaux archivés
- Résumé de compilation : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG\STG_Build_20261014-114234.txt`.
- Journal de compilation : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG_Build_20261014-114234.log`.
- Journal cuisson/paquet : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\BuildDebug_Development_20261014-114335.log`.
- Archive : `D:\Game\LifePlay_Build_5.8_COMMUN-9_Development` (dossier neuf, créé par ce build ; absent avant).
## Cuisson (étape c)
- `Recooking 0` (journal de cuisson, ligne 255) : `LogCook: Display: Keeping 8917. Recooking 0. Removing 0.`
- Cuits présents dans `D:\Game\LifePlay-master 5.8\Saved\Cooked\Windows\LifePlay\Content\` :
- `BPs\Person.uasset` 185 299 o (14/10/2026 10:47:58) et `Person.uexp` 876 770 o ;
- `BPs\Room.uasset` 184 962 o et `Room.uexp` 242 622 o (10:47:58) ;
- `BPs\GI.uasset` 526 889 o et `GI.uexp` 2 028 199 o (10:47:58).
- Dates : les cuits datent de 10:47:58, antérieurs à ce paquet : ce sont des cuits conservés (`Keeping`), pas des recuits. Aucun recuit exigé, aucun n'a eu lieu.
- Décor `Heavy\New2\Furniture\fnt_ext001.uasset` 2 496 o ; `fnt_ext001.uexp` **1 079 978 o** (02:33:45) : taille de COMMUN-6, conforme.
- Clips : `Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset` 1 557 o (13/10/2026 22:00:46) présent ; `Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset` 1 551 o (22:00:46) présent.
- `Content\Quaternius\` : absent (`Quaternius dir present: False`), conforme.
- Preuve nominative : `Person.uasset` cuit contient `STG_StandTarget` : 1 occurrence ASCII (`Matches` sur les octets).
- Information `ORG4 bonus Endsex homme` : `GI.uexp` ASCII 1 / UTF-16LE 0 ; `GI.uasset` ASCII 0 / UTF-16LE 0.
## CheckPackage (étape d)
Sortie brute (`CheckPackage.ps1 -Build 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development'`) :
```
CheckPackage : build D:\Game\LifePlay_Build_5.8_COMMUN-9_Development ; configuration Development ; projet D:\Game\LifePlay-master 5.8
exe archive : D:\Game\LifePlay_Build_5.8_COMMUN-9_Development\Windows\LifePlay\Binaries\Win64\LifePlay.exe (2026-10-14 11:43:06, 330410496 o)
exe du projet : D:\Game\LifePlay-master 5.8\Binaries\Win64\LifePlay.exe (2026-10-14 11:43:06, 330410496 o)
[1] PASS 0 ...\Windows\Manifest_NonUFSFiles_Win64.txt
[2] PASS 0 ...\Windows\Manifest_UFSFiles_Win64.txt
[3] PASS 0 ...\Intermediate\Build\Win64\x64\LifePlay\Development\LifePlay.exe.rsp
[4] PASS 0 ...\Binaries\Win64\LifePlay.target
Resultat : PASS (code 0)
```
Résultat : PASS, 0 écart, code 0. Le fichier `.lp` ci-dessus tronque les chemins longs.
## Exe de l'archive (étape e)
- `Windows\LifePlay\Binaries\Win64\LifePlay.exe` : 14/10/2026 11:43:06, 330 410 496 o, MD5 `04842366AC4A87C135DB60A1004ABBFD`.
- `Binaries\Win64\LifePlay.exe` du projet : 14/10/2026 11:43:06, 330 410 496 o, MD5 `04842366AC4A87C135DB60A1004ABBFD`. Identique.
- Information : `Windows\LifePlay.exe` (launcher, racine du paquet) : 11:43:57, 301 568 o, MD5 `E0A8016F67B00663CE892BCBA1E13B51` ; ce n'est pas l'exe du jeu.
## Chaînes dans l'exe de l'archive (étape e)
Comptes sur `Windows\LifePlay\Binaries\Win64\LifePlay.exe` (octets lus en Latin-1, comptage ordinal). Une valeur `0` en ASCII
est attendue pour les littéraux `TEXT` (UTF-16LE) ; l'ASCII est donné tel quel.
| Chaîne | ASCII | UTF-16LE |
|---|---|---|
| `Scene_C` | 10 | 9 |
| `le joueur quitte` | 0 | 1 |
| `meuble d'une piece quittee` | 0 | 1 |
| `Pawn en Ignore jusqu'a la sortie` | 0 | 1 |
| `releve(s) en tout` | 0 | 1 |
| `Marche : clip` | 0 | 1 |
| `_Walk_Loop` | 0 | 3 |
| `/Game/Heavy/Daz/%s/Anim/` | 0 | 1 |
| `decor(s) fnt_ext en Pawn Ignore` | 0 | 1 |
| `LifePlay.PersonsDump` | 0 | 1 |
| `Dossier de sauvegarde :` | 0 | 1 |
| `Temoin C2` | 0 | 2 |
| `Camera: POV` | 0 | 1 |
| `(%s), Pawn en Ignore jusqu'a la sortie` | 0 | 1 |
| `meuble quitte` | 0 | 1 |
| `bloque` | 0 | 2 |
| `%s%s releve de` | 0 | 1 |
| `en collision complexe, laisse en Pawn Block` | 0 | 1 |
| `ecarte de` | 0 | 2 |
| `S-F5k)` | 0 | 1 |
| `COUPLE %s anim=` | 0 | 1 |
| `lowestMinusUnder` | 0 | 1 |
| `vue par Slate ; PlayerInput=` | 0 | 1 |
| `marche coupee par le menu` | 0 | 1 |
| `sans contenu visible, la marche n'est pas coupee` | 0 | 1 |
| `CharGen : SpaceOn remis a vrai` | 0 | 1 |
| `CharGen : MainMenuOn remis a faux` | 0 | 1 |
| `Sexe : touches avant=` | 0 | 1 |
| `liberee sans marche, joueur pose` | 0 | 1 |
| `aucun point libre a` | 0 | 1 |
| `B2q-a : %s BoundsScale` | 0 | 1 |
| `T-cull mesure` | 0 | 1 |
| `non rendue, bassin a l'ecran` | 0 | 1 |
| `cm du bassin, a %.0f cm du composant` | 0 | 1 |
| `aucun point libre (depart dans` | 0 | 1 |
| `, S-F5m)` | 0 | 2 |
| `Sexe : couple pris` | 0 | 1 |
| `Sexe : couple pose a` | 0 | 1 |
| `Sexe : couple tourne de` | 0 | 1 |
| `Bonus : pas de panneau EquipMenu` | 0 | 1 |
| `Touche C :` | 0 | 1 |
| `Indicateur de camera : aucun` | 0 | 1 |
| `joueur masque par` | 0 | 1 |
| `Bonus : contrôle formule` (ô, non ASCII) | UTF-8 : 0 | 2 |
| `Bonus : réglage bDisabled` (é, non ASCII) | UTF-8 : 0 | 1 |
Toutes les chaînes de la fiche sont présentes (au moins une occurrence dans l'une des deux encodages). Aucune absente : pas d'ARRÊT.
Lecture : `Scene_C` a 10 occurrences ASCII, ce qui peut être un nom de symbole ou de chemin ; le compte UTF-16LE est le littéral.
Chaînes non ASCII : comptées en UTF-8 et en UTF-16LE (deux méthodes, comme demandé). `Touche C :` et `Indicateur de camera : aucun`
sont présents en UTF-16LE.
Le premier essai de comptage de ce lot visait à tort le stub `Windows\LifePlay.exe` et contenait une erreur d'assemblage de
tableau (deux chaînes accentuées découpées) ; il est remplacé par le compte ci-dessus, sur le bon exe. Il n'est pas retenu.
## Fichiers et MD5 de fin (étape e)
Relevé final, 21 fichiers, mêmes chemins que le départ : tous les MD5 sont identiques à ceux du départ et à la fiche.
| MD5 final | Fichier |
|---|---|
| `8668A47C627F7A5254910CF0AC33B12A` | `Content\BPs\Person.uasset` |
| `32FC0A970AB194626E8DC07DF3A9633D` | `Content\BPs\GI.uasset` |
| `931387479E2D15F80BC4F36398907712` | `Content\BPs\Room.uasset` |
| `F45BE57A39D13D3EB19D0B543153AB0B` | `Content\BPs\PC.uasset` |
| `CB8353603CF95849B4F778A33B4BFBD2` | `Content\UI\TopRight.uasset` |
| `C10FB66E4216F3E6302EE27D211C1A1D` | `Content\Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset` |
| `D41DB867EAF26D26847734172E5D5F98` | `Content\Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset` |
| `4CF589B266FF61C8D61AE68B323FD381` | `Source\LifePlay\LPDirectControlSubsystem.cpp` |
| `A82ED5CFFD97152B9237034BD7F49F4A` | `Source\LifePlay\LPDirectControlSubsystem.h` |
| `9DCF0A35A1418BCB52E1A6A5B7D0F58F` | `Source\LifePlay\LPOutdoorRoomSubsystem.cpp` |
| `60FCE1DE305F4133738193D82CD05F05` | `Source\LifePlay\LPOutdoorRoomSubsystem.h` |
| `DF2DB514E0E2345C6CCAC66A0787621F` | `Content\Heavy\New2\Furniture\fnt_ext001.uasset` |
| `F0081F9F98DEF2FE3BE130C4F26AEF9E` | `Source\LifePlay\LPDebugSubsystem.cpp` |
| `78D3A07957D81E0B39C5D9A81E5E03D3` | `Source\LifePlay\LPDebugSubsystem.h` |
| `D60632646BF1CF7D200E3BEA833D8D72` | `Source\LifePlay\LPCameraModeSubsystem.cpp` |
| `6585D7F67A7BE3AEA377B8E93CFA14D8` | `Source\LifePlay\LPCameraModeSubsystem.h` |
| `16147626D2FA8A11DAC8747CDBE12E9A` | `Source\LifePlay\LPBonusRewardSubsystem.cpp` |
| `87177C7A53FB5B5CC946E904060A3AAA` | `Source\LifePlay\LPBonusRewardSubsystem.h` |
| `A0CD668771FF5893ED2867F24DE1DF3A` | `Source\LifePlay\LPSaveRelaunch.cpp` |
| `F31173F606A8F63DB762F2D8960509F8` | `Source\LifePlay\LPSaveRelaunch.h` |
| `3F7FFA30E0EF83FC87AEC297F699EEA9` | `Source\LifePlay\LifePlay.cpp` |
Le MD5 de l'exe de l'archive (`04842366AC4A87C135DB60A1004ABBFD`) est donné en section Exe ci-dessus.
## Absence de LPSaveLocation.ini
`Test-Path` sur `Windows\LifePlay\Saved\Config\Windows\LPSaveLocation.ini` : False. Recherche récursive sous
`D:\Game\LifePlay_Build_5.8_COMMUN-9_Development` (`-Filter LPSaveLocation.ini`) : aucun résultat. Conforme.
## Non lancé (conforme à la consigne)
Le jeu n'a pas été lancé. Aucune archive autre que `…_COMMUN-9_Development` n'a été touchée. Aucune écriture dans `Source/`, `Content/`, `Config/`.
Le paquet `Saved\Cooked` et `Saved\StagedBuilds` sont des sorties de build (écrites par UAT), non suivies par git.
## Fichiers à commiter
aucun (aucun fichier suivi par git modifié ; ce livrable est nouveau, non suivi).
## Constats
- Build code 0, 0 erreur, 0 avertissement, 3 unités (dont les deux fichiers du lot). Établi.
- `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` non recompilés (objets à jour, § 3). Écart à la fiche, établi.
- Ligne `Makefile` absente du journal : recréation/réutilisation du makefile non établie.
- Cuisson : `Recooking 0`, cuits conservés datés 10:47:58 : aucun recuit.
- CheckPackage PASS 0, paquet et exe conformes.
- Toutes les chaînes présentes ; `ORG4 bonus Endsex homme` : ASCII 1 dans `GI.uexp`, 0 en UTF-16LE (information).
- MD5 de fin = départ pour les 21 fichiers.
- UeState 0 en fin.
Tours : 40 / 40 (estimé, budget atteint pendant la vérification ; `python -I Tools/FicheStats.py --lot STG` fait foi).
## Note de l'orchestrateur (écart levé)
`LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` n'ont pas été recompilés : c'est normal. Ils sont inchangés depuis COMMUN-8
(UE-GO : `d6063264` / `16147626`), et COMMUN-8 les a compilés sans avertissement. Leurs objets (10:46:07) sont plus récents que leurs
sources. Leurs chaînes (`Sexe : couple pris`, `Bonus : pas de panneau EquipMenu`…) sont dans l'exe. L'orchestrateur a recontrôlé le MD5
de l'exe (`04842366…`) et UeState (0).