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

3.5 KiB
Raw Blame History

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.