48 lines
3.5 KiB
Markdown
48 lines
3.5 KiB
Markdown
|
|
# 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.
|