LifePlay-Revival/Docs/Migration/etat/CAM/CAM-B2i-FICHE.md

66 lines
4.5 KiB
Markdown
Raw Normal View History

# CAM-B2i : garde « hors sexe » sur les 5 branches « C2 ? » de Room (fiche lp-mcp-bp, 2026-10-13)
Origine : `CAM-COMMUN4-DIAG.md` (accepté par Big Boss). Room seul, sans toucher à la scène (GI, PC et logique de sexe
inchangés). UE-GO à la fin de la session de jeu COMMUN-4.
## Barème
a0 b1 c0 d0 e1 f1 = 3 → N1, ajusté à N3 (écriture MCP par `lp-mcp-bp`) ; S = C3 1 (procédure `lp-mcp`, gabarits
B2h) + f 1 = 2 < 3 : une fiche. 3 nœuds, 10 liens, environ 25 appels. Case C9a : état de Room à relire le jour même.
## Conditions d'entrée
- `UeState` = 0 avant le lancement de l'éditeur ; aucun jeu en cours.
- Room = `0C8EB59F55CB02AD2C4FA1413840B84B`. GI `E64B5B37…` et Person `8668A47C…` : à ne pas toucher.
- `.\Tools\Snapshot.ps1 -Lot CAM-B2i -Path Content\BPs\Room.uasset` (PowerShell, depuis la racine).
- Si l'éditeur demande de recompiler des modules au lancement : arrêt et compte rendu à Big Boss.
## État attendu avant écriture (préfixe `/Game/BPs/Room.Room:EventGraph.`, dump `CAM-B2g-VAL_LPDumpFunction_20261013-211708.txt`)
| Nœud | Rôle | Lien à relire |
|---|---|---|
| `K2Node_PromotableOperator_8` | vue = `CamRoom` (`EqualEqual_ObjectObject`) | ReturnValue → `IfThenElse_91`, `_98`, `_99`, `_100` `.Condition`, `CommutativeAssociativeBinaryOperator_60.A` |
| `K2Node_CommutativeAssociativeBinaryOperator_60` | OU de B2h | A ← PO_8 ; B ← `VariableGet_269.CamC1On` ; ReturnValue → `IfThenElse_96`, `_97` `.Condition` |
| `K2Node_VariableGet_86` | `SexOn` (self ← `VariableGet_103.GI`) | SexOn → `CommutativeAssociativeBinaryOperator_19.B`, `IfThenElse_29`, `IfThenElse_28` `.Condition` |
| `K2Node_IfThenElse_96` à `_100` | branches « C2 ? » de `CircleCamera`, `LeftRight`, `ScrollDownUp`, `RotateCamera`, `DownUp` | then et else à relever avant, inchangés après |
Tout écart à ce tableau : arrêt avant écriture.
## Écritures (un appel MCP par message)
1. `load_asset` `/Game/BPs/Room`. Lecture groupée du tableau ci-dessus (`get_node_infos`), avec relevé des PinID et
des positions de 96 et 98.
2. Types : `find_node_types` (filtres « NOT » et « AND ») ; types attendus `Math|Booléen|NOTBoolean` et
`Math|Booléen|ANDBoolean` (même famille que `ORBoolean` de B2h). Tout autre résultat : arrêt.
3. `create_node` NOT (près de 86 ou de 96) ; `create_node` AND n° 1 (près de 96) ; `create_node` AND n° 2 (près de 98).
4. Liens :
- L1 : `VariableGet_86.SexOn` → NOT.entrée ;
- L2 : `OR_60.ReturnValue` → AND1.A ;
- L3 : NOT.ReturnValue → AND1.B ;
- L4 : AND1.ReturnValue → `IfThenElse_96.Condition` (remplace le lien de `OR_60`) ;
- L5 : AND1.ReturnValue → `IfThenElse_97.Condition` (idem) ;
- L6 : `PromotableOperator_8.ReturnValue` → AND2.A ;
- L7 : NOT.ReturnValue → AND2.B ;
- L8 : AND2.ReturnValue → `IfThenElse_98.Condition` (remplace le lien de PO_8) ;
- L9 : AND2.ReturnValue → `IfThenElse_99.Condition` (idem) ;
- L10 : AND2.ReturnValue → `IfThenElse_100.Condition` (idem).
Si le NOT ou le AND créé a des entrées en plus de celles prévues (AND à 2 entrées par défaut) : arrêt.
5. Relecture :
- PO_8.ReturnValue → `IfThenElse_91.Condition`, `OR_60.A`, `AND2.A` **seulement** (plus 98, 99, 100) ;
- `OR_60.ReturnValue` → `AND1.A` seulement (plus 96, 97) ; `OR_60` A ← PO_8 et B ← 269 inchangés ;
- `VariableGet_86.SexOn` → 19.B, 29, 28 et NOT (4 liens) ;
- NOT.ReturnValue → AND1.B, AND2.B ;
- AND1 → 96, 97 ; AND2 → 98, 99, 100 ;
- then et else de 96 à 100 identiques au relevé de l'étape 1 ;
- `IfThenElse_91` toujours sur PO_8 (minuterie `UpdateRoomCam` inchangée).
6. `AssetTools.is_dirty` `/Game/BPs/Room` = vrai (sinon procédure B2f-a : créer puis supprimer une Branche isolée,
puis contrôler à nouveau).
7. `compile_blueprint` avec warnings_as_errors = true.
8. `save_assets` [`/Game/BPs/Room`] seul ; `Saving Package: /Game/BPs/Room` au journal de l'éditeur.
9. `md5sum` : Room ≠ `0c8eb59f…` ; GI et Person inchangés.
## VAL (lp-validator distinct, éditeur fermé)
- V5 : dump Room ; diff du corps contre `CAM-B2g-VAL_LPDumpFunction_20261013-211708.txt`. Attendu :
- EventGraph à 1264 nœuds ;
- seules différences : 3 nœuds nouveaux, conditions de 96 à 100, sorties de PO_8, `OR_60` et 86.
- V6 : `CompileAllBlueprints` = référence (3 erreurs `CR_FaceExpRig`, Room compilé).
- V7 : build suivant, cas CAM-29 à CAM-32 de `CAM-COMMUN4-DIAG.md` § 4.
## Retour arrière
`.\Tools\Restore.ps1 -Lot CAM-B2i -Only Content\BPs\Room.uasset`, éditeur fermé, sur accord.