40 lines
3.7 KiB
Markdown
40 lines
3.7 KiB
Markdown
|
|
# CAM-B2-IMPL : C2 en poursuite lissée, confinement, pilotage et Third Person (B2, B2b, B2d, B2e) (2026-10-13)
|
||
|
|
|
||
|
|
Lot CAM, sous-lots B2 (`CAM-SPEC.md` § CAM-B2), B2b (§ CAM-B2b), B2d (§ CAM-B2d), B2e (amendement de B2b-1,
|
||
|
|
`CAM-B2e-FICHE.md`). Room seul. Journal brut des appels et des décisions : `CAM-B2-journal.txt` (ignoré par git,
|
||
|
|
archivé par TRACE1). Rapports des fiches : `CAM-B2b-IMPL-F1.md` à `-F7.md`, `CAM-B2d-IMPL.md`, `CAM-B2e-IMPL.md`.
|
||
|
|
|
||
|
|
## 1. Enchaînement
|
||
|
|
| Étape | Exécutant | Résultat | Room (MD5) |
|
||
|
|
|---|---|---|---|
|
||
|
|
| B2 (B2-1 à B2-7) | session CAM, appels MCP directs | `CamRoom`, `EnsureCamRoom`, `ComputeC2Target` (cible derrière le MC, Z = tête + 60, balayage 12 cm), `PlaceC2`, voie C2, poursuite `VInterpTo` / `RInterpTo` vitesse 8 dans `UpdateRoomCam`, `ReceiveEndPlay` ; 55 nœuds, 240 supprimé | `50E736F8` → `A5FA970E` |
|
||
|
|
| Essais B2 | utilisateur (archive `…_CAM-B2_Development`) | « caméra trop proche près d'un mur » ; perte de la commande de la caméra ; perte de la marche (hors CAM, confiée à STG) ; caméras de sexe inchangées | — |
|
||
|
|
| B2b (F1 à F7) | `lp-mcp-bp`, un appel par message | confinement dans `ComputeRoomBox`, rayon 20, repli vers le haut à moins de 80 cm, trajectoire protégée, option 1 (flèches, souris, molette) ; 95 nœuds | `A5FA970E` → `E0517C63` |
|
||
|
|
| Essais B2b | utilisateur (archive `COMMUN-1`) | « camera est hors de la pièces » ; « le personnage est difficile à manier » | — |
|
||
|
|
| B2d | `lp-mcp-bp` | C2 derrière la rotation de contrôle du PC ; la souris et les flèches tournent cette rotation (`SetControlRotation`) ; alignement à l'entrée en C2 | (en mémoire) |
|
||
|
|
| B2e | `lp-mcp-bp` | boîte calculée sur les faces intérieures des 4 murs (`GetComponentBounds`) et sous `WallT` ; un seul enregistrement avec B2d | `E0517C63` → `CA2A9A0B` |
|
||
|
|
|
||
|
|
## 2. VAL
|
||
|
|
| Contrôle | B2 | B2b | B2d + B2e |
|
||
|
|
|---|---|---|---|
|
||
|
|
| V3 relecture `get_node_infos` | conforme | chaque fiche contre-vérifiée par la session | contre-vérifié |
|
||
|
|
| V4 compilation stricte | aucun message | aucune exception | aucune exception |
|
||
|
|
| V5 dump Room (`CAM-*-VAL_LPDumpFunction_*.txt`) | 1084 → 1138 nœuds | 1138 → 1233 | 1233 → 1260 ; `SetControlRotation` 3, `GetComponentBounds` 6 |
|
||
|
|
| V6 CompileAllBlueprints | = référence (3 erreurs externes `CR_FaceExpRig`) | = référence | = référence |
|
||
|
|
| V7 build | `…_CAM-B2_Development`, CheckPackage 4/4 | `COMMUN-1` (STG), CheckPackage 4/4 | dans `COMMUN-2` |
|
||
|
|
| V8 journal du jeu | PASS (0 ligne caméra) | PASS (0 ligne caméra ; 4 `Accessed None` nouveaux via `Person.PlayIdle`, hors CAM, signalés à STG) | essai commun à venir |
|
||
|
|
|
||
|
|
## 3. Écarts et décisions (détail : journal)
|
||
|
|
- 3 écarts « deux appels MCP dans un message » (B0, B1, B2), sans effet. Ensuite, écritures par `lp-mcp-bp` (consigne de
|
||
|
|
Big Boss).
|
||
|
|
- SPEC : simplification Z = tête + 60 (B2) ; correction E3 (`C2Dist` = décalage, B2b) ; `GetWorldScale` au lieu de
|
||
|
|
`RelativeScale3D` (B2b, E2) ; `declaring_class` Controller pour `GetControlRotation` (B2d, E1).
|
||
|
|
- Décisions de l'utilisateur : option 1 de pilotage ; caméra toujours dans la pièce ; build commun et fiche de tests
|
||
|
|
commune ; « on ne change plus rien pour les scènes de sexe avant la release » (B1e limité à C1, B5 gelé).
|
||
|
|
- Points ouverts : risque R-B1f (masquages de C1 actifs si une scène de sexe démarre en C1 ; test CAM-16) ; pièces
|
||
|
|
supposées de lacet 0 et sans garde Min ≤ Max (B2e) ; réponse de `Wall2-4` au canal Camera non lue.
|
||
|
|
|
||
|
|
## 4. Fichiers à commiter
|
||
|
|
`Content/BPs/Room.uasset` (`CA2A9A0B`), `Source/LifePlay/LPCameraModeSubsystem.h` / `.cpp` (B2c, voir
|
||
|
|
`CAM-B2c-IMPL.md`), et les livrables `.md` de `Docs/Migration/etat/CAM/` (liste : `CAM-B2-DOC.md`).
|