LifePlay-Revival/Docs/Migration/etat/CAM/CAM-B2d-FICHE.md

54 lines
3.7 KiB
Markdown
Raw Normal View History

# CAM-B2d : fiche lp-mcp-bp (2026-10-13)
GO de Big Boss (2026-10-13), après l'UE-LIBRE de la session street de STG. SPEC : `CAM-SPEC.md` § « CAM-B2d »
(MD5 `48aa5499`). Room seul ; ni `LPDirectControlSubsystem` ni Person.
## Barème
Grille a1 b2 c1 d1 e1 f1 = 7 → N3 ; S = C3 1 (procédure `lp-mcp`, fiches B2b) + f 1 = 2 < 3 : une fiche. Budget :
≈ 12 nœuds créés, 5 supprimés, ≈ 45 appels ; 60 tours. Case C9a : à cocher à l'envoi (relevé du jour).
## Préalables (orchestrateur)
1. UE-LIBRE de STG reçu ; `UeState` = 0 ; aucun jeu en cours.
2. Relevé : `git status -- Content\BPs\Room.uasset` = M ; MD5 Room `E0517C63` ; GI `C4817B84`.
3. Instantané `Snapshot.ps1 -Lot CAM-B2d -Path Content\BPs\Room.uasset`.
4. Éditeur headless ; attente du serveur MCP (journal) ; `load_asset /Game/BPs/Room` par la session.
## Consignes de l'agent
- Rubriques communes : celles de `CAM-B2b-FICHES.md` (un appel MCP par message ; graphe, outils, interdits, arrêt,
livrable `CAM-B2d-IMPL.md`).
- Ordre économe (leçon F6a) : créer tous les nœuds, faire une seule lecture groupée, puis couper chaque lien et le
remplacer aussitôt.
- Nœuds existants (préfixe `/Game/BPs/Room.Room:EventGraph.`) :
- 453 `GetActorForwardVector` (self ← 261) → 454.A (`Normalize2D`) ;
- 262 `GI.PC` ; 261 `GI.PlayerCharacter` ;
- IfThenElse_96 (CircleCamera, then → VariableSet_67) ; PO28 (A ← VariableGet_292, B ← CE1.DeltaSeconds,
sortie → 67) ;
- IfThenElse_97 (LeftRight, then → VariableSet_68) ; PO30 (A ← VariableGet_293, B ← PO29, sortie → 68) ;
- CustomEvent_48 (`PlaceC2`, then 1 → CallFunction_461 `EnsureCamRoom`).
- Identifiants à trouver par `find_node_types` (filtre court) : `GetControlRotation` (Controller), `SetControlRotation`
(Controller ; cible = 262, une référence PC, relire l'index de `self`), `GetForwardVector` (rotateur, catégorie
Math|Rotateur), `BreakRotator`, `MakeRotator` (Roll, Pitch, Yaw : relire les index), `GetActorRotation`.
- Écritures :
1. B2d-1 : (N) `GetControlRotation` (self ← 262) = CR ; (N) `GetForwardVector(CR)` ; break 453 → 454.A ;
`GetForwardVector` → 454.A ; `delete_node` 453.
2. (N) `BreakRotator(CR)` = BR (pur, partagé).
3. B2d-2 : break 292 → PO28.A ; BR.Yaw → PO28.A ; (N) `MakeRotator(0, 0, Yaw ← PO28)` ; (N) `SetControlRotation`
(self ← 262, NewRotation ← ce MakeRotator) ; break 96.then → 67 ; 96.then → SetControlRotation ;
`delete_node` 67 puis 292.
4. B2d-3 : même chose avec PO30, 97, 68 et 293.
5. B2d-4 : (N) `GetActorRotation` (self ← 261) → (N) `BreakRotator` → Yaw → (N) `MakeRotator(0, 0, Yaw)` →
(N) `SetControlRotation` (self ← 262) ; break CE48.then → 461 ; CE48.then → ce nœud ; ce nœud.then → 461.
6. Relecture groupée : nœuds créés, 454, PO28, PO30, 96, 97, CE48, 461. Puis compilation stricte et
`save_assets` `/Game/BPs/Room` seul.
- Mesures : MD5 de Room après l'enregistrement (≠ E0517C63) ; `git status --short -- Content Source Config`.
## Après (orchestrateur)
Fermeture de l'éditeur, `UeState` = 0. V5 : dump Room, critères de la SPEC B2d et de B2b. V6 : CompileAllBlueprints =
référence. UE-LIBRE à Big Boss. Ensuite : STG (Person) → build COMMUN-2 → essai commun B2 + B2b + B2d → commit de Room.
## Essai B2d (à ajouter à la marche à suivre)
- En C2 : Z éloigne toujours de la caméra ; Q et D vont à gauche et à droite de l'écran ; le personnage se tourne vers
sa marche sans faire tourner la caméra.
- La souris et les flèches gauche/droite font tourner la caméra, et Z suit la nouvelle direction.
- En entrant en C2 (touche C ou entrée en pièce), la caméra est derrière le personnage.