LifePlay-Revival/Docs/Migration/etat/CAM/CAM-B2k-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

4.4 KiB

CAM-B2k : recalage de la caméra C1 sur les yeux à chaque passage de la minuterie (fiche lp-mcp-bp, 2026-10-14)

Origine : CAM-COMMUN5-DIAG.md § 1 (C5-3, caméra C1 dans le buste après une entrée en C1 assise). Room seul, hors sexe (la branche C1 de la minuterie est derrière IfThenElse_81 = SexOn faux). Décision de l'utilisateur relayée par Big Boss : entre dans COMMUN-6.

Barème

a0 b1 c0 d0 e1 f1 = 3 → N1, ajusté à N3 (écriture MCP par lp-mcp-bp) ; S = C3 1 (procédure lp-mcp, gabarits B2h et B2i) + f 1 = 2 < 3 : une fiche. 1 nœud, 3 liens, environ 15 appels. Case C9a : état de Room relu le jour même.

Conditions d'entrée

  • UE-GO de Big Boss ; UeState = 0 ; aucun jeu en cours.
  • Room = 18565365B1195BF2416A1048BF9051B6. GI et Person : à ne pas toucher.
  • Instantané au moment de l'UE-GO : .\Tools\Snapshot.ps1 -Lot CAM-B2k -Path Content\BPs\Room.uasset (PowerShell, depuis la racine).
  • Si l'éditeur demande de recompiler des modules au lancement : arrêt et compte rendu à Big Boss.

État attendu avant écriture (préfixe /Game/BPs/Room.Room:EventGraph., dump CAM-B2i-VAL_LPDumpFunction_20261013-225125.txt)

Nœud Attendu
K2Node_IfThenElse_83 execute ← IfThenElse_82.then ; Condition ← PromotableOperator_0 (vue = PlayerCharacter) ; then vide ; else → CallFunction_440 (RestoreC1)
K2Node_IfThenElse_82 Condition ← VariableGet_269.CamC1On ; execute ← IfThenElse_81.else (81 = SexOn, execute ← IfThenElse_91.else, 91 = vue = CamRoom)
K2Node_VariableGet_265 variable FirstPersonSM, self ← VariableGet_261.PlayerCharacter ; sortie → 430, 431, 433, 446 .self
K2Node_PromotableOperator_2 Multiply_VectorVector, A ← PromotableOperator_1 (= GetSocketLocation(lEye) + GetSocketLocation(rEye), nœuds 447 et 448), B = 0,5 ; sortie → CallFunction_446.NewLocation
Minuterie en C1 (relecture de l'étape 1) voie C1 d'ApplyRoomCamera : VariableSet_53 (C1Hidden) → CallFunction_449 (DelayUntilNextFrame) → 434 (SetViewTargetWithBlend(PlayerCharacter)) → 329 K2_SetTimerDelegate(UpdateRoomCam, 0,016, en boucle) → VariableSet_54 (RoomCamTimer)
Tout écart à ce tableau : arrêt avant écriture.

Écritures (un appel MCP par message)

  1. load_asset /Game/BPs/Room ; lecture groupée des nœuds du tableau (get_node_infos), avec CallFunction_329, _434, _449 et _446. Relever les PinID et les positions de 83 et 446.
  2. Type : le même que K2Node_CallFunction_446 (SceneComponent::K2_SetWorldLocation). Prendre son type_id par get_node_infos et find_node_types (filtre « SetWorldLocation »), avec context_pins sur 265.FirstPersonSM si besoin. Le nœud créé doit être K2_SetWorldLocation (SceneComponent), avec bSweep et bTeleport faux par défaut. Sinon, arrêt.
  3. create_node près de 83 (à droite de sa branche then).
  4. Liens :
    • L1 : IfThenElse_83.then → nouveau.execute ;
    • L2 : VariableGet_265.FirstPersonSM → nouveau.self ;
    • L3 : PromotableOperator_2.ReturnValue → nouveau.NewLocation. La sortie de PO_2 alimente alors 446 et le nouveau nœud ; ce nœud pur est réévalué à chaque appel.
  5. Relecture :
    • 83 : then → nouveau, else → 440 inchangé ;
    • 265 : sorties 430, 431, 433, 446 et le nouveau ;
    • PO_2 : sorties 446 et le nouveau ;
    • 446 inchangé (execute ← 431.then, then → 433) ;
    • le nouveau nœud a un then libre ;
    • aucun autre lien de 81, 82, 91, 440 ou 441 modifié.
  6. AssetTools.is_dirty /Game/BPs/Room = vrai (sinon procédure B2f-a).
  7. compile_blueprint avec warnings_as_errors = true.
  8. save_assets [/Game/BPs/Room] seul ; Saving Package: /Game/BPs/Room au journal de l'éditeur.
  9. md5sum : Room ≠ 18565365… ; GI et Person inchangés.

VAL (lp-validator distinct, éditeur fermé)

  • V5 : dump Room ; diff du corps contre CAM-B2i-VAL_LPDumpFunction_20261013-225125.txt. Attendu : EventGraph à 1265 nœuds ; seules différences : le nœud nouveau et les sorties de 83.then, 265 et PO_2.
  • V6 : CompileAllBlueprints = référence.
  • V7 (COMMUN-6) : s'asseoir, passer en C1, se lever (ZQSD), marcher, se rasseoir, changer de pièce. La vue reste à la hauteur des yeux, jamais dans le buste ni au-dessus de la tête. En C2 et pendant le sexe, rien ne change.

Retour arrière

.\Tools\Restore.ps1 -Lot CAM-B2k -Only Content\BPs\Room.uasset, éditeur fermé, sur accord.