LifePlay-Revival/Docs/Migration/etat/CAM/CAM-B2e-FICHE.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

47 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CAM-B2e : boîte de pièce sur les faces intérieures des murs (fiche lp-mcp-bp, 2026-10-13)
Défaut des essais de B2b : « camera est hors de la pièces » (capture 5). Diagnostic : `CAM-B2-journal.txt`, section
« Défaut B2b ». Passe dans la même ouverture d'éditeur que B2d, sur GO de Big Boss. Room seul.
## Barème
Grille a1 b2 c1 d1 e1 f1 = 7 → N3 ; S = C3 1 + f 1 = 2 < 3 : une fiche. ≈ 22 nœuds, ≈ 60 appels, 65 tours. Case C9a
à cocher à l'envoi.
## Règle (amendement B2e de la SPEC, B2b-1 remplacé)
Faces intérieures, par `GetComponentBounds` (origine O, étendue E, AABB monde) de chaque mur, avec la convention du jeu
(`Wall1` −X, `Wall2` +X, `Wall3` −Y, `Wall4` +Y : positions relatives par défaut −47,4 / +49,5 / −46,8 / +46,9) :
- MinX = W1.O.X + W1.E.X + 30 ; MaxX = W2.O.X − W2.E.X − 30 ;
- MinY = W3.O.Y + W3.E.Y + 30 ; MaxY = W4.O.Y − W4.E.Y − 30 ;
- plafond intérieur : ZTopIn = WallT.O.Z − WallT.E.Z − 25 (face inférieure) ;
- ZMin (sol + 50) et le choix extérieur (`SelectFloat` 491) sont inchangés.
L'emprise reste en XY dehors : les murs y sont seulement écrasés en Z (échelle 0,01), leur position XY ne change pas.
## Nœuds existants (préfixe `/Game/BPs/Room.Room:EventGraph.`, rapports F1 et F2)
- `ComputeRoomBox` = CustomEvent_49 → VariableSet_64 (C2BoxMin) → VariableSet_65 (C2BoxMax).
- MakeVector 492 (Min) : X ← 484.X, Y ← 484.Y, Z ← PO_14.
- MakeVector 493 (Max) : X ← 485.X, Y ← 485.Y, Z ← 491.
- PO_15 (ZTopIn = A − 25) : A ← 488.Z (centre de WallT).
- Getters : 283 (Wall2), 284 (Wall4), 285 (WallT). Wall1 et Wall3 sont à créer (`Variables|Pardéfaut|ObtenirWall1` /
`ObtenirWall3`, sinon chercher « Wall1 »).
## Écritures
1. Wall1 : getter → (N) `Collision|GetComponentBounds` → (N) Ajouter vecteur (O + E) → (N) Ajouter (B = "30,30,0") →
(N) BreakVector → X → 492.X (`break_pins` 484.X → 492.X d'abord).
2. Wall2 : 283 → GetComponentBounds → Soustraire (O − E) → Soustraire (B = "30,30,0") → BreakVector → X → 493.X.
3. Wall3 : getter → GetComponentBounds → O + E → + "30,30,0" → BreakVector → Y → 492.Y.
4. Wall4 : 284 → GetComponentBounds → O − E → − "30,30,0" → BreakVector → Y → 493.Y.
5. WallT : 285 → GetComponentBounds → O − E → BreakVector → Z → PO_15.A (`break_pins` 488.Z → PO_15.A d'abord).
6. Les anciens nœuds de calcul (PO_9 à PO_13, 479 à 483, 476 à 478, 484, 485, 487, 488) restent sans consommateur.
Ils sont purs et sans effet. Ne pas les supprimer dans cette fiche : budget, et nettoyage plus tard.
7. **Lecture de la collision** (sans écriture) : réponse au canal Camera des murs `Wall1` à `Wall4` et de `WallT`. Par
`get_default_object` de Room puis `ObjectTools.get_properties`, ou par lecture du composant : chercher
`BodyInstance` / `CollisionResponses` / `ResponseToChannels.Camera`. À rapporter tel quel. Hors budget : arrêt de
ce seul point, sans insister.
8. Relecture groupée (créés, 492, 493, PO_15), compilation stricte. `save_assets` de Room seul, une fois B2d et B2e
faites (une seule sauvegarde pour les deux fiches si elles s'enchaînent ; sinon à la fin de chacune).
## VAL
- V5 : `GetComponentBounds` ≥ 5 dans `ComputeRoomBox` ; 492.X/Y et 493.X/Y alimentés par les nouveaux BreakVector ;
PO_15.A alimenté par la face inférieure de WallT.
- Essai : dos au mur, de chaque côté de la pièce (les 4 murs), dans un coin, en hauteur (flèche haut au maximum),
et dans une pièce redimensionnée si possible. Aucune vue de l'extérieur.