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

52 lines
3.4 KiB
Markdown
Raw Normal View History

# CAM-B2m : lacet POV à la souris (PC, fiche lp-mcp-bp, 2026-10-14)
Origine : `CAM-COMMUN5-DIAG.md` § 3. Défaut d'origine : en POV, le mouvement horizontal de la souris fait pencher
l'image au lieu de la tourner. Gel des scènes levé par l'utilisateur pour l'alpha (relayé par Big Boss). PC seul.
## Barème
a0 b1 c0 d1 e1 f0 = 3 → N1, ajusté à N3 (écriture MCP par `lp-mcp-bp`) ; S = C3 1 + f 0 = 1 : une fiche. Aucun nœud
créé, 1 coupure, 3 liens, environ 12 appels. Case C9a : état du PC relu le jour même.
## Cause (dump PC `CAM-B1-VAL_LPDumpFunction_20261013-085611.txt`, PC `A19510E613F31905437BAB48F38C6154`, inchangé depuis CHG-339)
- Horizontal :
- `IfThenElse_136` then et else → `K2Node_CallFunction_951` = `FirstPersonSM.K2_AddRelativeRotation(312)` ;
- `312` = `MakeRotator(Roll ← CommutativeAssociativeBinaryOperator_108, Pitch 0, Yaw 0)` ;
- `108` = `leftright` × −1 (`VariableGet_115`).
Un Roll relatif tourne autour de l'axe de visée du composant : l'image penche.
- Vertical, qui marche : `IfThenElse_164` → `316` = `FirstPersonSM.K2_AddWorldRotation(314 = MakeRotator(Pitch ← 109))`.
- Nœud mort `K2Node_CallFunction_204` = `FirstPersonSM.K2_AddWorldRotation(312)` : execute et then vides, self ←
`VariableGet_67.FirstPersonSM`, DeltaRotation ← 312. Il est déjà câblé pour devenir le lacet monde.
## Écritures (préfixe `/Game/BPs/PC.PC:EventGraph.`, un appel MCP par message)
1. `load_asset` `/Game/BPs/PC`. `get_node_infos` sur 136, 951, 204, 312, 108 et 316. Tout écart avec la section
« Cause » : arrêt avant écriture. Relever les PinID (312 : Roll, Pitch, Yaw ; 204 : execute).
2. `break_pins` `108.ReturnValue` → `312.Roll`.
3. `connect_pins` `108.ReturnValue` → `312.Yaw`. Le rotateur 312 devient un **lacet** ; il alimente 951 et 204.
4. `connect_pins` `IfThenElse_136.then` → `204.execute`, puis `IfThenElse_136.else` → `204.execute`. Une sortie
d'exécution n'a qu'un lien : cela remplace les liens vers 951.
5. Relecture :
- 136 then et else → 204 ;
- 951 : execute vide (laissé en place, mort ; pas de suppression dans cette fiche) ;
- 204 : execute ← 136.then et 136.else, self ← 67, DeltaRotation ← 312 ;
- 312 : Yaw ← 108, Roll 0 non relié ;
- 316 et 164 inchangés.
6. `AssetTools.is_dirty` `/Game/BPs/PC` = vrai ; `compile_blueprint` avec warnings_as_errors = true ;
`save_assets` [`/Game/BPs/PC`] seul ; `Saving Package: /Game/BPs/PC` ; MD5 du PC ≠ `a19510e6…` ; Room, GI et
Person inchangés par cette fiche.
## Réserve et contournement
- Le sens peut être inversé (−1 de 108, hérité du Roll). Si l'essai montre une rotation à l'envers : `set_pin_value`
`108.B` = `1` (fiche courte, même passage UE si possible).
- Le tangage (316, `AddWorldRotation` d'un Pitch) tourne autour de l'axe Y du monde, pas autour de l'axe droit de la
caméra. Il est juste face à X, faux face à Y. Non traité ici : l'utilisateur ne signale que l'horizontal. À noter
pour l'essai.
## VAL (lp-validator distinct)
- V5 : `LPDumpFunction -BP=PC -Fn=EventGraph -Pins -Exec`, diff contre le dump de B1-VAL. Seules différences : 312
(Yaw au lieu de Roll), liens d'exécution de 136, 951 et 204.
- V6 : `CompileAllBlueprints` = référence.
- V7 (COMMUN-6) : voir `CAM-COMMUN-6-TESTS.md`.
## Retour arrière
`.\Tools\Restore.ps1 -Lot CAM-B2m -Only Content\BPs\PC.uasset`, éditeur fermé, sur accord.