4.4 KiB
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)
load_asset/Game/BPs/Room; lecture groupée des nœuds du tableau (get_node_infos), avecCallFunction_329,_434,_449et_446. Relever les PinID et les positions de 83 et 446.- Type : le même que
K2Node_CallFunction_446(SceneComponent::K2_SetWorldLocation). Prendre sontype_idparget_node_infosetfind_node_types(filtre « SetWorldLocation »), aveccontext_pinssur265.FirstPersonSMsi besoin. Le nœud créé doit êtreK2_SetWorldLocation(SceneComponent), avecbSweepetbTeleportfaux par défaut. Sinon, arrêt. create_nodeprès de 83 (à droite de sa branchethen).- 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.
- L1 :
- 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
thenlibre ; - aucun autre lien de 81, 82, 91, 440 ou 441 modifié.
AssetTools.is_dirty/Game/BPs/Room= vrai (sinon procédure B2f-a).compile_blueprintavec warnings_as_errors = true.save_assets[/Game/BPs/Room] seul ;Saving Package: /Game/BPs/Roomau journal de l'éditeur.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.