240 lines
22 KiB
Markdown
240 lines
22 KiB
Markdown
|
|
Fiche CAM-B2p-G-PC-VAL — Niveau N1 — Modèle prévu non précisé par la demande | utilisé claude-sonnet-5-5 — Agent lp-validator (A-VAL) — Skills sk-protocol, sk-recount, debug-verification, lp-validate
|
|||
|
|
# CAM-B2p-G-PC-VAL : validation de CAM-B2p-G-PC (PC, C3 dans le cycle C du sexe G-d, panneau des positions G-g) (2026-10-14)
|
|||
|
|
|
|||
|
|
Verdict global : **PASS** (V5, V6, MD5 et UeState rejoués à neuf, éditeur fermé). Deux points restent **non vérifiés** faute
|
|||
|
|
de moyen sans éditeur : le défaut de `SexC3` (faux attendu) et l'éventuel export orphelin `VariableGet_387` dans le fichier
|
|||
|
|
enregistré. Le comportement en jeu (V7) n'est pas de cette VAL : reporté.
|
|||
|
|
|
|||
|
|
Copie `D:\Game\LifePlay-master 5.8`, branche `ue5.8` (`git branch --show-current`). Aucun asset, code ni doc validée modifié
|
|||
|
|
par la VAL. Seuls fichiers écrits : les 2 sorties de commandlets (§ 3), leurs 2 journaux sous `Saved\Logs\portage\`, le diff
|
|||
|
|
brut `Saved\CAM-B2p-G-PC-VAL_diff.txt` (sortie de `git diff --no-index --output=`, dossier ignoré par git) et ce livrable.
|
|||
|
|
Aucune commande git qui écrit. Le jeton UE était tenu par l'orchestrateur ; les commandlets ont tourné un à la fois.
|
|||
|
|
|
|||
|
|
## 1. Fiches amont relues
|
|||
|
|
- `CAM-B2p-G-PC-FICHE.md` (étapes 1 à 10, amendement B2p-G-PC-a l. 69-79, VAL V5 / V6) : relue en entier.
|
|||
|
|
- `CAM-B2p-G-PC-IMPL.md` (agent lp-mcp-bp, `Tours : 63 / 60` déclaré, hors budget du niveau mais sous le plafond de 75, noté
|
|||
|
|
par l'auteur l. 226) : relue en entier. Gabarit IMPL de `lp-doc` : les 6 sections numérotées sont présentes et dans l'ordre
|
|||
|
|
(1 Fichiers modifiés, 2 Écarts, 3 Instantané, 4 Ce qui n'a pas été fait, 5 Points à confirmer, 6 Fichiers à commiter), plus
|
|||
|
|
`Mesuré`, `Reprise` et `Constats`. `Reprise` est une section hors gabarit, non annoncée en tête (`Hors gabarit : <motif>`
|
|||
|
|
absent) : écart de forme mineur. En-tête sur 2 lignes conforme ; « Modèle prévu non précisé par la fiche » (même écart de
|
|||
|
|
forme que B2p-R, non bloquant).
|
|||
|
|
- `CAM-B2p-R-VAL.md` : modèle de forme.
|
|||
|
|
- Références : `CAM-B2kmn-VAL_LPDumpFunction_20261014-011816.txt` (PC d'avant, EventGraph 1439 nœuds) et
|
|||
|
|
`CAM-B2p-R-VAL_CompileAllBlueprints_20261014-101259.txt` (V6).
|
|||
|
|
- Instantané d'avant : `D:\Game\LifePlay_Backup_5.5\CAM-B2p-G-PC\manifest.csv` (cité par l'IMPL § 1.1 ; non rejoué : le diff de
|
|||
|
|
dump suffit au périmètre de la fiche).
|
|||
|
|
|
|||
|
|
## 2. Points à confirmer des IMPL
|
|||
|
|
| Id | Point (IMPL § 5, fiche, demande) | Verdict | Preuve |
|
|||
|
|
|---|---|---|---|
|
|||
|
|
| G-1 | V5 : seules différences = variable `SexC3`, les 8 nœuds du § 3.2 (sans `VariableGet_387`), coupures `123.then ↛ 35` et `15.then ↛ 10`, 8 liens G-d et 4 liens G-g | **PASS** | § 3.1 : 12 hunks de corps et de pied, tous classés ; EventGraph 1439 → 1447 ; 37 lignes de dump ajoutées. La déclaration de la variable n'est pas listée par le dump : elle est établie par les nœuds Get / Set `variable 'SexC3'` (dump l. 6486, 6489, 6503) et par la compilation du PC sans erreur (§ 3.3), **PASS-STATIC** pour la déclaration seule |
|
|||
|
|
| G-2 | `IfThenElse_63.then` vide aussi dans la référence ? (point (a) de la demande) | **PASS** | référence `…011816.txt` l. 3858 : `then (vide)` ; nouveau dump l. 3858 : `then (vide)` ; `63.execute ← InputAction_3.Pressed`, `63.else → 40` identiques ; aucun hunk sur 63. Le « then vide » n'est donc pas un effet de l'écriture |
|
|||
|
|
| G-3 | Un objet orphelin `VariableGet_387` apparaît-il dans le dump ? (point (b)) | **PASS** | `Grep VariableGet_387` sur le nouveau dump : 0 occurrence (ni nœud, ni cible de lien) ; les nœuds 385, 386 et 408 existent, 387 non |
|
|||
|
|
| G-4 | `CallFunction_35` : exécution non reliée après la coupure, aucun diagnostic | **PASS** | dump l. 3009 : `execute (vide)` ; V6 : `La compilation de PC a réussi ! [en 920 ms]` (résumé l. 142), 0 erreur et 0 avertissement nouveau (§ 3.3) |
|
|||
|
|
| G-5 | Défaut de `SexC3` = faux (point (c) de la demande) | **Non vérifié** | le dump ne liste pas les variables de membre ni leur défaut ; il ne montre que les valeurs de broche `SexC3 = 'false'` (Set_39, l. 6492) et `'true'` (Set_58, l. 6506). L'IMPL § 4 le dit déjà (« non relu sur le CDO »). Aucun commandlet du catalogue ne dump les variables (`Grep` de `SexC3`, `DefaultValue` dans `Source/LifePlay/LPDump*.cpp` : 0). Essai qui trancherait : lecture du CDO du PC dans l'éditeur. Attendu faux par le défaut du type bool, non établi |
|
|||
|
|
| G-6 | V6 : `CompileAllBlueprints` = référence ; PC sans erreur ni avertissement nouveau | **PASS** | § 3.3 |
|
|||
|
|
| G-7 | Croissance du PC de 19 273 octets ; `VariableGet_387` écrit ou non comme export orphelin | **Incertain** (reporté) | taille actuelle 3 424 059 octets (`stat`, 2026-10-14 13:52:07) = valeur de l'IMPL. Le dump parcourt `Nodes` et ne peut pas montrer un export hors graphe. Sans effet attendu ; non tranché |
|
|||
|
|
| G-8 | Comportement en jeu (Scene → C → C3 → C → POV 1 … → Scene ; Espace bascule le panneau pendant le sexe ; clics courts gauche et droit ne le basculent plus ; hors sexe Espace met en pause) | **Reporté** | essai en jeu, build empaqueté (V7) ; hors périmètre VAL (éditeur fermé, pas de jeu). Lecture statique seulement : § 3.1a à 3.1c |
|
|||
|
|
|
|||
|
|
## 3. Critères rejoués
|
|||
|
|
Environnement : éditeur fermé ; moteur `D:\Game\Launcher\Engine\UE_5.8` ; `.\Tools\UeState.ps1` avant le 1er commandlet, avant
|
|||
|
|
le 2e et à la fin : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0` (UeState = 0 aux trois relevés). Le 2e commandlet a
|
|||
|
|
démarré après la fin du 1er.
|
|||
|
|
|
|||
|
|
### 3.0 MD5 de départ (avant tout lancement) : **PASS**
|
|||
|
|
```
|
|||
|
|
$ md5sum Content/BPs/PC.uasset Content/BPs/Room.uasset Content/BPs/GI.uasset Content/BPs/Person.uasset
|
|||
|
|
b07f16a9ec04ca297a8504f126d406e1 *Content/BPs/PC.uasset
|
|||
|
|
931387479e2d15f80bc4f36398907712 *Content/BPs/Room.uasset
|
|||
|
|
32fc0a970ab194626e8dc07df3a9633d *Content/BPs/GI.uasset
|
|||
|
|
8668a47c627f7a5254910cf0ac33b12a *Content/BPs/Person.uasset
|
|||
|
|
$ stat -c "%s %y %n" Content/BPs/PC.uasset
|
|||
|
|
3424059 2026-10-14 13:52:07.758768000 +0200 Content/BPs/PC.uasset
|
|||
|
|
```
|
|||
|
|
Attendu : PC `B07F16A9…` (avant : `F45BE57A…`), Room `93138747…`, GI `32FC0A97…`, Person `8668A47C…` : conforme.
|
|||
|
|
|
|||
|
|
### 3.1 V5 PC (dump) : **PASS**
|
|||
|
|
Commande (via `powershell -NoProfile -Command`, après `Set-Location` sur la copie) :
|
|||
|
|
```
|
|||
|
|
.\Tools\RunCommandlet.ps1 -Lot CAM-B2p-G-PC-VAL -Commandlet LPDumpFunction -Args "-BP=PC -Fn=EventGraph -Pins -Exec" -EtatDir "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM"
|
|||
|
|
code=0 duree=56s erreurs=0 avertissements=6447
|
|||
|
|
resume : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM\CAM-B2p-G-PC-VAL_LPDumpFunction_20261014-135527.txt
|
|||
|
|
journal : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\CAM-B2p-G-PC-VAL_LPDumpFunction_20261014-135527.log
|
|||
|
|
```
|
|||
|
|
Trace : `CAM-B2p-G-PC-VAL_LPDumpFunction_20261014-135527.txt` — Fiche CAM-B2p-G-PC-VAL — 2026-10-14 13:55-13:56.
|
|||
|
|
Environnement : copie 5.8, branche `ue5.8`, éditeur fermé, PC `B07F16A9…`.
|
|||
|
|
Attendu (écrit avant lancement, d'après la fiche et la demande) : code 0 ; EventGraph 1447 nœuds (1439 + 8) ; 8 nœuds
|
|||
|
|
`IfThenElse_132`, `133`, `134`, `VariableGet_385`, `386`, `VariableSet_39`, `58`, `CallFunction_408` ; aucun `VariableGet_387` ;
|
|||
|
|
liens et coupures de la fiche et de la demande ; rien d'autre.
|
|||
|
|
Obtenu : code 0, 0 erreur ; les « 6447 avertissements » sont le dump lui-même (canal `LogLPDump: Warning`), pas des
|
|||
|
|
diagnostics. Pied de fichier : référence `0 error(s), 6360 warning(s)`, nouveau `6397` : +37 lignes (recoupe le détail du § 3.1b).
|
|||
|
|
Lecture : le fichier contient deux copies du dump (journal, puis écho stdout tronqué après la l. 6518, 13 nœuds seulement) ;
|
|||
|
|
le recompte des nœuds ne retient que la première (l. 121 à 6517).
|
|||
|
|
|
|||
|
|
**Recompte indépendant des nœuds** (autre méthode que l'en-tête du dump) :
|
|||
|
|
| Élément | Référence | Nouveau | Méthode | Verdict |
|
|||
|
|
|---|---|---|---|---|
|
|||
|
|
| En-tête `=== PC :: EventGraph (… noeuds) ===` | 1439 | 1447 (l. 121 et l. 6518) | `Grep noeuds\)` | +8 = attendu |
|
|||
|
|
| Lignes de nœud `K2Node_` (deux copies) | 1452 | 1460 | `Grep` en comptage de `^(LogInit: Display: )?LogLPDump: Warning: K2Node_` | écart 8 |
|
|||
|
|
| Moins la copie d'écho tronquée (13 nœuds, l. 6519 à 6567 : `Event_0`, `Self_0`, `CallFunction_126`, `CreateWidget_4`, `VariableGet_2454`, `VariableSet_23`, `InputAction_6`, `IfThenElse_582`, `VariableSet_148`, `VariableGet_188`, `CallFunction_1067`, `CallFunction_1068`, `IfThenElse_316`) | −13 | −13 | lecture `Read` l. 6500-6619 | 1439 et 1447 : confirmés |
|
|||
|
|
|
|||
|
|
**Diff** : `git diff --no-index --unified=0 CAM-B2kmn-VAL_LPDumpFunction_20261014-011816.txt CAM-B2p-G-PC-VAL_LPDumpFunction_20261014-135527.txt --output=Saved\CAM-B2p-G-PC-VAL_diff.txt`.
|
|||
|
|
Bilan brut (`--stat`) : `1 file changed, 111 insertions(+), 74 deletions(-)` ; diff de 233 lignes ; **44 hunks** (`Grep -c '^@@'` = 44,
|
|||
|
|
44 en-têtes énumérés par `-o`). Répartition par numéro de ligne de début de hunk du fichier de référence :
|
|||
|
|
- **32 hunks d'en-tête** (lignes 2 à 108 : date, durée, journal, histogramme « Avertissements : 6410 → 6447 lignes, 4761 →
|
|||
|
|
4785 signatures (100 premieres) », classement des signatures réordonné) : bruit, l'histogramme bouge avec le nombre de
|
|||
|
|
lignes. Aucun ne touche un nœud. Équilibre : 124 lignes de diff entre les l. 5 et 160 du diff, moins 32 en-têtes de hunk,
|
|||
|
|
soit 62 insertions et 62 suppressions.
|
|||
|
|
- **12 hunks de corps et de pied** (EventGraph) : 10 modifications d'une ligne (§ 3.1a), 1 hunk d'ajout (l. 6481, +38 −1) et
|
|||
|
|
1 hunk de pied (l. 6531, compteur final, +1 −1). Insertions : 10 + 38 + 1 = 49 ; suppressions : 10 + 1 + 1 = 12.
|
|||
|
|
- Total : 62 + 49 = 111 insertions, 62 + 12 = 74 suppressions, 32 + 12 = 44 hunks : égal au `--stat` et au comptage des `@@`.
|
|||
|
|
|
|||
|
|
3.1a Les 10 modifications d'une ligne, avec la lecture au dump (lignes citées = nouveau fichier) :
|
|||
|
|
| Réf. l. | Nœud / broche | Avant → après | Attendu |
|
|||
|
|
|---|---|---|---|
|
|||
|
|
| 121 | en-tête EventGraph | `1439 noeuds` → `1447 noeuds` | 8 nœuds en plus |
|
|||
|
|
| 829 | `IfThenElse_123.then` (l. 826-830 : Condition ← `VariableGet_233`) | `CallFunction_35.execute` → `(vide)` | coupure `123.then ↛ 35` |
|
|||
|
|
| 987 | `VariableGet_22.SexOn` | `IfThenElse_15.Condition` → `IfThenElse_15.Condition, IfThenElse_134.Condition` | 22 alimente aussi 134.Condition, garde 15 |
|
|||
|
|
| 992 | `IfThenElse_15.then` (l. 989-993) | `IfThenElse_10.execute` → `(vide)` | coupure `15.then ↛ 10` |
|
|||
|
|
| 1549 | `IfThenElse_40.then` (l. 1546-1550 : execute ← `63.else`, Condition ← `CallFunction_125`) | `CallFunction_277.execute` → `IfThenElse_134.execute` | `40.then → 134` |
|
|||
|
|
| 1727 | `IfThenElse_23.then` (l. 1724-1728 : Condition ← `VariableGet_51.SexOn`, else → `131`) | `IfThenElse_44.execute` → `IfThenElse_132.execute` | `23.then → 132` |
|
|||
|
|
| 1738 | `IfThenElse_44.execute` | `IfThenElse_23.then, CustomEvent_5.then` → `CustomEvent_5.then, VariableSet_39.then, IfThenElse_133.then` | 44 garde `CustomEvent_5.then`, perd 23, gagne 39 et 133 |
|
|||
|
|
| 3009 | `CallFunction_35.execute` (appel `LeftMouseSexOn`) | `IfThenElse_123.then` → `(vide)` | côté réciproque de la coupure 123 |
|
|||
|
|
| 3022 | `IfThenElse_10.execute` | `IfThenElse_15.then, CustomEvent_11.then` → `CustomEvent_11.then` | côté réciproque de la coupure 15 |
|
|||
|
|
| 4424 | `CallFunction_277.execute` (`PlayClick`) | `IfThenElse_40.then` → `IfThenElse_134.else` | `134.else → 277`, 40 ne va plus vers 277 |
|
|||
|
|
|
|||
|
|
3.1b Nœuds créés : hunk d'ajout (dump l. 6481 à 6517, 37 lignes, plus la ligne d'écho remplacée l. 6518), extrait fidèle :
|
|||
|
|
```
|
|||
|
|
K2Node_IfThenElse_132 execute<-IfThenElse_23.then Condition<-VariableGet_385.SexC3 then->VariableSet_39.execute else->IfThenElse_133.execute
|
|||
|
|
K2Node_VariableGet_385 variable 'SexC3' SexC3->IfThenElse_132.Condition self(vide)
|
|||
|
|
K2Node_VariableSet_39 variable 'SexC3' execute<-IfThenElse_132.then then->IfThenElse_44.execute SexC3='false' self(vide)
|
|||
|
|
K2Node_IfThenElse_133 execute<-IfThenElse_132.else Condition<-VariableGet_386.POVOn then->IfThenElse_44.execute else->VariableSet_58.execute
|
|||
|
|
K2Node_VariableGet_386 variable 'POVOn' POVOn->IfThenElse_133.Condition self(vide)
|
|||
|
|
K2Node_VariableSet_58 variable 'SexC3' execute<-IfThenElse_133.else then(vide) SexC3='true' self(vide)
|
|||
|
|
K2Node_CallFunction_408 appel ?::LeftMouseSexOn() execute<-IfThenElse_134.then then(vide) self(vide)
|
|||
|
|
K2Node_IfThenElse_134 execute<-IfThenElse_40.then Condition<-VariableGet_22.SexOn then->CallFunction_408.execute else->CallFunction_277.execute
|
|||
|
|
```
|
|||
|
|
Lignes par nœud : 132 = 5, 385 = 3, 39 = 6, 133 = 5, 386 = 3, 58 = 6, 408 = 4, 134 = 5 : somme 37, égale à 6397 − 6360. Le hunk
|
|||
|
|
compte +38 −1 parce que la ligne d'écho `LogInit: Display: … (1439 noeuds)` est remplacée par la même à 1447.
|
|||
|
|
|
|||
|
|
3.1c Recompte des liens de la demande, un par un, tous lus dans le dump :
|
|||
|
|
| # | Lien attendu | Lu |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 1 | `23.then → 132` (plus vers 44) | l. 1727 |
|
|||
|
|
| 2 | `132.then → 39` ; `39.then → 44` | 132 : `then -> VariableSet_39.execute` ; 39 : `then -> IfThenElse_44.execute` |
|
|||
|
|
| 3 | `132.else → 133` | 132 : `else -> IfThenElse_133.execute` |
|
|||
|
|
| 4 | `133.then → 44` ; `133.else → 58` | 133 : `then -> IfThenElse_44.execute`, `else -> VariableSet_58.execute` |
|
|||
|
|
| 5 | `58.then` vide | 58 : `then (vide)` |
|
|||
|
|
| 6 | `44.execute` garde `CustomEvent_5.then` | l. 1738 |
|
|||
|
|
| 7 | conditions 132 ← 385, 133 ← 386 | 132 : `Condition -> VariableGet_385.SexC3` ; 133 : `Condition -> VariableGet_386.POVOn` |
|
|||
|
|
| 8 | `123.then` ne va plus vers 35 ; `15.then` ne va plus vers 10 | l. 829, 992 : `(vide)` |
|
|||
|
|
| 9 | `40.then → 134` (plus vers 277) | l. 1549 |
|
|||
|
|
| 10 | `134.else → 277` ; `134.then → 408` ; `408.then` vide | 134 : `else -> CallFunction_277.execute`, `then -> CallFunction_408.execute` ; 408 : `then (vide)` |
|
|||
|
|
| 11 | `134.Condition ← VariableGet_22.SexOn`, qui garde `15.Condition` | l. 987 et 134 : `Condition -> VariableGet_22.SexOn` |
|
|||
|
|
| 12 | aucun `VariableGet_387` | 0 occurrence |
|
|||
|
|
Soit 8 nœuds, 8 liens G-d, 4 liens G-g et 2 coupures : les nombres d'IMPL § 3.2 sont retrouvés. Rien d'autre : aucun hunk sur
|
|||
|
|
`IfThenElse_63`, `VariableGet_233`, `CustomEvent_5`, `CustomEvent_11`, `InputAction_3`, `IfThenElse_131`, ni sur aucun autre
|
|||
|
|
nœud.
|
|||
|
|
|
|||
|
|
3.1d Périmètre du dump : `-Fn=EventGraph` ne dump qu'un graphe (EventGraph du PC). Les autres graphes du PC ne sont pas dans
|
|||
|
|
cette commande et ne sont pas rejoués ici.
|
|||
|
|
|
|||
|
|
### 3.2 V5 Room / GI / Person
|
|||
|
|
Non demandé par la fiche (aucune écriture de ces assets). Contrôlé seulement par MD5 (§ 3.4).
|
|||
|
|
|
|||
|
|
### 3.3 V6 CompileAllBlueprints : **PASS**
|
|||
|
|
Attendu (écrit avant lancement, d'après la référence B2p-R) : code 3, 25 lignes d'erreur / 16 signatures, 55 lignes
|
|||
|
|
d'avertissement / 42 signatures, 3 erreurs au décompte final, 420 compilations réussies, 421 lignes `Loading and Compiling`,
|
|||
|
|
toutes les erreurs sur `CR_FaceExpRig` / `RLExpStruct` (moteur), PC compilé sans erreur ni avertissement.
|
|||
|
|
```
|
|||
|
|
.\Tools\RunCommandlet.ps1 -Lot CAM-B2p-G-PC-VAL -Commandlet CompileAllBlueprints -EtatDir "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM"
|
|||
|
|
code=3 duree=202s erreurs=25 avertissements=55
|
|||
|
|
resume : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM\CAM-B2p-G-PC-VAL_CompileAllBlueprints_20261014-135635.txt
|
|||
|
|
journal : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\CAM-B2p-G-PC-VAL_CompileAllBlueprints_20261014-135635.log
|
|||
|
|
```
|
|||
|
|
Trace : Fiche CAM-B2p-G-PC-VAL — 2026-10-14 13:56-13:59. Lecture : code 3 est le code de la référence (le moteur compte les 3
|
|||
|
|
erreurs de `CR_FaceExpRig`), pas un échec nouveau.
|
|||
|
|
|
|||
|
|
| Élément | Référence B2p-R | B2p-G-PC (rejoué) | Méthode | Verdict |
|
|||
|
|
|---|---|---|---|---|
|
|||
|
|
| Code de sortie | 3 | 3 | RunCommandlet | identique |
|
|||
|
|
| Lignes d'erreur / signatures | 25 / 16 | 25 / 16 | en-tête du résumé (l. 6) | identique |
|
|||
|
|
| Bloc « Erreurs » (16 lignes, l. 7 à 22) | — | mêmes 16 lignes, même ordre et mêmes comptes | lecture parallèle des deux résumés (`Read`) | identique, toutes `CR_FaceExpRig` / `RLExpStruct` |
|
|||
|
|
| Bloc « Avertissements » (55 / 42, l. 25 à 66) | 55 / 42 | mêmes 42 lignes, même ordre et mêmes comptes | lecture parallèle | identique, toutes `CR_FaceExpRig` |
|
|||
|
|
| `Compiling Completed with …` | `3 errors and 0 warnings and 0 blueprints that failed to load` (journal l. 3302) | même texte (journal l. 3302) | `Grep` sur les deux journaux | identique |
|
|||
|
|
| Compilations réussies | 420 | 420 | `Grep` en comptage de `La compilation de .* a réussi` | identique |
|
|||
|
|
| Lignes `Loading and Compiling` | 421 | 421 | `Grep` en comptage | identique (421 = 420 + `CR_FaceExpRig` en erreur) |
|
|||
|
|
| `PC` | `La compilation de PC a réussi ! [en 978 ms]` (l. 118) | `La compilation de PC a réussi ! [en 920 ms]` (l. 142) | `Grep` | **PC sans erreur ni avertissement** |
|
|||
|
|
|
|||
|
|
Aucune ligne d'erreur ou d'avertissement du résumé ne cite `PC`, `SexC3`, `IfThenElse_13x` ou `CallFunction_408` : les blocs ne
|
|||
|
|
contiennent que `CR_FaceExpRig` / `RLExpStruct`. Limite : la liste complète des BP compilés (nom + chemin) n'a pas été
|
|||
|
|
comparée par somme de contrôle comme en B2p-R (pas de `sed` ni de tube autorisés ici) ; le compte des 420 réussies et des 421
|
|||
|
|
chargements, les deux blocs lus ligne à ligne et le décompte final tiennent lieu de recoupement.
|
|||
|
|
|
|||
|
|
### 3.4 MD5 après les commandlets : **PASS**
|
|||
|
|
```
|
|||
|
|
$ md5sum ../../../../Content/BPs/PC.uasset … Room.uasset … GI.uasset … Person.uasset (relevé après V5 et V6)
|
|||
|
|
b07f16a9ec04ca297a8504f126d406e1 *../../../../Content/BPs/PC.uasset
|
|||
|
|
931387479e2d15f80bc4f36398907712 *../../../../Content/BPs/Room.uasset
|
|||
|
|
32fc0a970ab194626e8dc07df3a9633d *../../../../Content/BPs/GI.uasset
|
|||
|
|
8668a47c627f7a5254910cf0ac33b12a *../../../../Content/BPs/Person.uasset
|
|||
|
|
```
|
|||
|
|
Identiques au § 3.0 : les commandlets n'ont rien écrit dans ces 4 assets. `git status --short -- Content/BPs Source Config` :
|
|||
|
|
GI, PC, Person, Room en `M` (depuis des lots antérieurs), plus des fichiers `Source/LifePlay/` modifiés ou non suivis
|
|||
|
|
(`LPBonusRewardSubsystem`, `LPCameraModeSubsystem`, `LPSaveRelaunch`) qui ne relèvent pas de ce lot ; aucun n'est écrit par la
|
|||
|
|
VAL.
|
|||
|
|
|
|||
|
|
### 3.5 UeState final : **PASS**
|
|||
|
|
`.\Tools\UeState.ps1` après V6 : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0` (UeState = 0).
|
|||
|
|
|
|||
|
|
## 4. Diff lu en entier
|
|||
|
|
- Diff de dump : lu en entier (233 lignes, 44 hunks : 32 d'en-tête classés, 12 de corps et de pied classés, § 3.1). Recompte
|
|||
|
|
indépendant : `--stat` = `111 insertions(+), 74 deletions(-)` ; `Grep` des `@@` = 44 ; répartition 32 + 12 par numéro de ligne ;
|
|||
|
|
nœuds recomptés par lignes `K2Node_` moins l'écho tronqué (1447 contre 1439).
|
|||
|
|
- Diff de V6 : lu en parallèle (§ 3.3) : aucune différence de contenu.
|
|||
|
|
- Fichier du dépôt modifié par le lot CAM-B2p-G-PC : `Content/BPs/PC.uasset` seul (binaire, non lisible en diff texte ; son
|
|||
|
|
contenu est validé par le dump). Room, GI et Person : MD5 inchangés.
|
|||
|
|
- Fins de ligne : sans objet : aucun fichier texte du jeu modifié par le lot en dehors de livrables Markdown neufs ;
|
|||
|
|
`PC.uasset` est binaire.
|
|||
|
|
|
|||
|
|
## 5. Verdict
|
|||
|
|
**PASS** : V5 (1447 nœuds = 1439 + 8, 8 nœuds créés sans `VariableGet_387`, liens et coupures de la fiche, aucune autre
|
|||
|
|
différence), V6 (= référence, PC sans erreur ni avertissement), MD5 (PC `B07F16A9…` ; Room, GI, Person inchangés, avant et
|
|||
|
|
après), UeState = 0 aux trois relevés.
|
|||
|
|
Non rejoué ou non vérifié : défaut de `SexC3` (G-5, non lisible sans éditeur), export orphelin éventuel (G-7), V7 en jeu et
|
|||
|
|
`LogStats` (G-8), comparaison octet à octet de `PC.uasset` avec l'instantané, somme de contrôle de la liste complète des BP
|
|||
|
|
de V6, autres graphes du PC.
|
|||
|
|
|
|||
|
|
## 6. Points à confirmer par l'utilisateur
|
|||
|
|
- [ ] Défaut de `SexC3` = faux : lecture du CDO du PC à l'ouverture de l'éditeur, ou à défaut effet en jeu (premier appui sur
|
|||
|
|
C du sexe depuis la Scene doit rendre C3, pas la vue C1 ou C2).
|
|||
|
|
- [ ] V7 en jeu (build empaqueté, B2p-G compilé) : Scene (`POVOn` faux, `SexC3` faux) → C → C3 (`SexC3` vrai, vue inchangée) →
|
|||
|
|
C → `SexC3` faux, puis POV 1 … dernier POV → C → Scene ; pendant le sexe, Espace bascule le panneau des positions au lieu de
|
|||
|
|
mettre en pause, et le clic molette est fait par le C++ ; les clics courts gauche et droit ne le basculent plus ; hors sexe,
|
|||
|
|
Espace met toujours en pause et rien d'autre ne change.
|
|||
|
|
- [ ] `LogStats` en jeu sans `Accessed None` nouveau sur le PC. Lecture statique : `134.Condition` reprend `VariableGet_22.SexOn`
|
|||
|
|
(self ← `VariableGet_6044.GI`), déjà lu par `IfThenElse_15` ; `385` et `386` n'ont pas de broche cible (self = le PC) ;
|
|||
|
|
aucune lecture de `GI` nouvelle, donc pas de nouvelle source d'`Accessed None` établie par le dump.
|
|||
|
|
|
|||
|
|
## Fichiers à commiter
|
|||
|
|
Aucun fichier du jeu modifié par la VAL. Livrables à ranger par le gardien (dépôt du jeu, branche `ue5.8`, sous `etat/`) :
|
|||
|
|
- A `Docs/Migration/etat/CAM/CAM-B2p-G-PC-VAL.md`
|
|||
|
|
- A `Docs/Migration/etat/CAM/CAM-B2p-G-PC-VAL_LPDumpFunction_20261014-135527.txt`
|
|||
|
|
- A `Docs/Migration/etat/CAM/CAM-B2p-G-PC-VAL_CompileAllBlueprints_20261014-135635.txt`
|
|||
|
|
- (déjà annoncés par l'IMPL : M `Content/BPs/PC.uasset`, A `Docs/Migration/etat/CAM/CAM-B2p-G-PC-IMPL.md`)
|
|||
|
|
|
|||
|
|
Tours : 14 / 40
|
|||
|
|
|
|||
|
|
## Constats
|
|||
|
|
- Le dump du PC contient deux copies de l'EventGraph : le journal complet (l. 121-6517) puis un écho stdout tronqué (13 nœuds,
|
|||
|
|
l. 6519-6567). Un comptage des lignes `K2Node_` donne donc 1460 (et 1452 pour la référence) : il faut retrancher les 13 de
|
|||
|
|
l'écho pour retrouver 1447 (et 1439). Le recompte par l'en-tête et par les lignes concordent ainsi.
|
|||
|
|
- Les 32 hunks d'en-tête du diff de dump sont le bruit habituel de l'histogramme d'avertissements ; leur équilibre (62 / 62)
|
|||
|
|
se contrôle sans les lire un à un, en retranchant les hunks de corps du total.
|
|||
|
|
- Ce que le dump ne dit pas : la déclaration des variables de membre et leur défaut. Le contrôle « défaut faux » d'une
|
|||
|
|
variable de Blueprint demande l'éditeur (ou un commandlet qui lit le CDO), à prévoir dans la fiche suivante qui ajoute une
|
|||
|
|
variable.
|
|||
|
|
- Sans `sed`, `awk`, tube ni redirection (crochet `ecriture-gardien`), la comparaison de deux résumés `CompileAllBlueprints` se
|
|||
|
|
fait par lecture parallèle (`Read` des 80 premières lignes) et `Grep` en comptage ; la somme de contrôle de la liste des BP,
|
|||
|
|
utilisée en B2p-R, n'est pas reproductible dans ces conditions.
|