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

7 KiB

CAM-B2p-R : vue de scène = SceneCamera pendant le sexe (P1) et flèches = couple sans Maj (P2) (Room, fiche lp-mcp-bp, 2026-10-14)

SPEC : CAM-B2p-SPEC.md, P1 et P2. GO de l'utilisateur sur B2p (« go », 2026-10-14) ; option A : on revient sur Q8 pendant le sexe. Room seul. Aucune écriture sans UE-GO de Big Boss. Va avec B2p-C (C++, CAM-B2p-C-IMPL.md).

Barème

a0 b1 c1 d0 e1 f1 = 4 → N1, ajusté à N3 (MCP) ; S = C3 1 + f 1 = 2, moins de 3 : une fiche. 3 nœuds, 13 liens, environ 40 appels. Case C9a : état relu le jour même dans CAM-B2s-VAL_LPDumpFunction_20261014-084441.txt (Room C5AB724101FA898457293D64059D21A9, EventGraph 1276 nœuds).

Conditions d'entrée

  • UE-GO ; UeState = 0 ; aucun jeu en cours ; MD5 de Room = C5AB724101FA898457293D64059D21A9 (sinon : relecture et compte rendu).
  • Instantané au moment de l'UE-GO : .\Tools\Snapshot.ps1 -Lot CAM-B2p-R -Path Content\BPs\Room.uasset.
  • unreal-mcp connecté dans la session. S'il ne l'est pas, l'utilisateur fait /mcp → Reconnect.
  • Si l'éditeur demande de recompiler des modules : arrêt et compte rendu.

État attendu avant écriture (préfixe /Game/BPs/Room.Room:EventGraph.)

Nœud Attendu
K2Node_CustomEvent_43 (ApplyRoomCamera) then → IfThenElse_77.execute
K2Node_IfThenElse_77 execute ← 43.then ; Condition ← VariableGet_269.CamC1On ; then → 78 ; else → 79
K2Node_CustomEvent_45 (UpdateRoomCam) OutputDelegate → 329.Delegate ; then → IfThenElse_91.execute
K2Node_IfThenElse_91 execute ← 45.then ; Condition ← PromotableOperator_8 ; then → 92 ; else → 81
K2Node_VariableGet_258 SexOn, self ← VariableGet_257.GI ; sorties 78 et 81 .Condition
K2Node_CallFunction_394 SetViewTargetWithBlend ; execute ← 79.then ; then → 303 ; NewViewTarget ← GetArrayItem_9
K2Node_CallFunction_303 RestoreC1 ; execute ← 394.then ; then vide
K2Node_CallFunction_441 K2_ClearAndInvalidateTimerHandle ; execute ← 440.then ; Handle ← VariableGet_274.RoomCamTimer
K2Node_IfThenElse_14 Condition ← VariableGet_62.MoveObject ; then → 27 ; else → 281
K2Node_IfThenElse_17 Condition ← VariableGet_62.MoveObject ; then → 23 ; else → 45
K2Node_VariableGet_62 MoveObject ; sorties 12, 14, 17 .Condition
K2Node_VariableGet_85 SexOn, self ← VariableGet_40.GI ; sorties OR_17.B, 24, 27, 23

Tout écart : arrêt avant écriture.

Écritures (un appel MCP par message)

  1. load_asset /Game/BPs/Room ; get_node_infos sur les 12 nœuds du tableau. Relever les PinID et les positions.

  2. Types :

    • Branche : Utilitaires|ContrôleDeFlux|Branche ;
    • OU : Math|Booléen|ORBoolean.

    Contrôle par get_node_infos après création.

  3. P1 (vue de scène pendant le sexe) :

    • créer la Branche S1, près de 43 ;
      • L1 : 43.then → S1.execute (remplace 43.then → 77) ;
      • L2 : 258.SexOn → S1.Condition ;
      • L3 : S1.then → 394.execute (394 garde aussi 79.then) ;
      • L4 : S1.else → 77.execute ;
    • créer la Branche S2, près de 45 ;
      • L5 : 45.then → S2.execute (remplace 45.then → 91) ;
      • L6 : 258.SexOn → S2.Condition ;
      • L7 : S2.then → 394.execute ;
      • L8 : S2.else → 91.execute ;
    • L9 : 303.then → 441.execute (441 garde 440.then) : la minuterie s'arrête après la pose de la vue de scène.
  4. P2 (flèches = couple sans Maj pendant le sexe) :

    • créer l'OU O1, près de 14 ;
    • L10 : 62.MoveObject → O1.A ;
    • L11 : 85.SexOn → O1.B ;
    • L12 : O1.ReturnValue → 14.Condition (remplace 62 → 14) ;
    • L13 : O1.ReturnValue → 17.Condition (remplace 62 → 17) ;
    • 62 garde sa sortie vers 12 : la molette avec Maj reste inchangée.
  5. Relecture :

    • 43.then → S1 ; 45.then → S2 ; 45.OutputDelegate → 329 inchangé ;
    • 394.execute ← 79.then, S1.then, S2.then ;
    • 77.execute ← S1.else ; 91.execute ← S2.else ;
    • 258 : sorties 78, 81, S1, S2 ;
    • 303.then → 441 ; 441.execute ← 440.then et 303.then ;
    • 62 : sorties 12, O1.A ; 85 : sorties OR_17.B, 24, 27, 23, O1.B ;
    • 14 et 17 : Condition ← O1 ;
    • aucun autre lien de 78, 79, 80, 81, 92, 329, 440, 539 à 542 modifié.
  6. is_dirty = vrai ; compile_blueprint avec warnings_as_errors = true ; save_assets [/Game/BPs/Room] seul ; Saving Package: /Game/BPs/Room ; MD5 ≠ C5AB7241… ; GI, PC et Person inchangés.

Effets attendus

  • Pendant le sexe :
    • à l'entrée (la minuterie tourne en C1 et en C2) et à chaque retour en Scene (PC 353 → 140), la vue est SceneCamera, et la minuterie s'arrête ;
    • la souris (B2n), ZQSD (B2p-C) et la molette (zoom d'origine, nœud 125) agissent sur la caméra en vue ;
    • les flèches déplacent le couple sans Maj.
  • Hors sexe : rien ne change (S1.else et S2.else reprennent les voies actuelles ; O1 vaut MoveObject). Le mode C3 passe déjà par 394, qui mène maintenant aussi à 441 : il arrête la minuterie tout de suite au lieu du passage suivant (82.else → 440 → 441). Le résultat est le même.
  • Fin du sexe : le crochet B1-11 (GI 2699 → ApplyRoomCamera), avec SexOn faux, rend C1, C2 ou C3 et relance la minuterie. SexOn est déjà faux à ce moment-là : à 05:18:57, au journal COMMUN-6, ce crochet a rendu la voie C1 (78.else), ce qui n'est possible qu'avec SexOn faux. On le revérifie en V7. Repli si le cas change : un appel ApplyRoomCamera différé côté C++ quand SexOn redevient faux. Ce repli n'est pas écrit.

Exigence confirmée à COMMUN-7 (utilisateur, relayé par Big Boss)

« je veux que ZQSD en mode scène déplace la caméra aussi », quel que soit le mode de départ (C1, C2 ou C3).

  • COMMUN-7 : L1 et L2 OK (B2r) ; L5 OK (ZQSD en POV, B2p-C).
  • ZQSD en mode Scene (B2p-C) n'agit que si la vue est Room.SceneCamera. P1 (S1 et S2) l'assure dans les trois cas :
    • à l'entrée en sexe, la minuterie de C1 ou de C2 passe par S2 → 394 (SceneCamera), puis s'arrête ;
    • au départ en C3, la vue est déjà SceneCamera ;
    • à chaque retour en Scene, le PC (353 → 140) passe par S1 → 394.
  • Aucune partie C++ de plus. V7 : CAM-42 depuis C1, C2 et C3, dès l'entrée et après POV → Scene.

Garde Accessed None

ChargenCameras[0] (394) et SexOn (258) sont déjà lus sans garde sur ces voies. Rien de nouveau n'est lu.

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

  • V5 : dump Room ; diff contre CAM-B2s-VAL_LPDumpFunction_20261014-084441.txt ; EventGraph 1276 → 1279 nœuds ; seules différences : S1, S2, O1 et les liens ci-dessus.
  • V6 : CompileAllBlueprints = référence.
  • V7 : CAM-41 à CAM-49 et CAM-54, CAM-55 de CAM-B2p-SPEC.md, avec B2p-C compilé.

Retour arrière

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

Estimation

Environ 40 min d'éditeur et 15 min de VAL. À passer dans le même jeton que la compilation de B2r et de B2p-C.