66 lines
4.5 KiB
Markdown
66 lines
4.5 KiB
Markdown
|
|
# 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.
|