4.9 KiB
CAM-B2f : correctifs CAM de COMMUN-2 (fiche, 2026-10-13)
Origine : CAM-COMMUN2-DIAG.md (KO 1 et KO 2). GO de l'utilisateur (« go ») sur le DIAG. Le KO 3 (marche) est dans le
fichier de STG (LPDirectControlSubsystem.cpp) : il n'est pas traité ici, mais renvoyé à Big Boss. Aucune scène de
sexe n'est modifiée : le correctif 1 ne touche que l'indicateur.
1. C++ (fait, sans UE ; compilation au build COMMUN-3)
Sauvegarde avant modification : D:\Game\LifePlay_Backup_5.5\CAM-B2f\Source\LifePlay\ (.h BF3412C1, .cpp
BBCA21B0) et CAM-B2c-SPEC-avant-B2f.md.
- KO 1 (A17) :
POVOnest lu sur le PC (PCPOVOn) au lieu de GI. SPEC B2c § 2 corrigée (PC.POVOn). - 2b, témoin C2 (
WitnessC2, journal seulement) :- En C2, si
CamRoomest à moins de 100 cm de la douillehead, une ligne au plus par seconde :Temoin C2 : camera a N cm de la tete (hauteur ±N) ; sonde Camera : … ; sonde Visibility : … ; boite C2 : marge N cm (largeur X, Y). - Les deux sondes sont des balayages de sphère de 20 cm sur 250 cm, à plat, de la tête vers la caméra. Elles
ignorent Room, le joueur et
CamRoom, comme la sonde de Room. Chacune donne le composant et l'acteur touchés,cache=1si l'acteur est caché, et « départ déjà dedans » si le balayage commence dans un objet.
- En C2, si
- Empreintes après :
.h84F9BA303E1ABD171C506DFBB4ED9F63,.cpp1DE73AA932AF2A056E1B8528CED4DCAB(LF, sans BOM).
2. Room, correctif 2a (à faire par lp-mcp-bp, sous jeton UE)
Barème : a0 b1 c1 d0 e1 f1 = 4 → N1, ajusté à N3 (écriture MCP par lp-mcp-bp, consigne de Big Boss). S = C3 1
(procédure lp-mcp) + f 1 = 2 < 3 : une fiche. Environ 12 appels. Case C9a : état de Room à relire le jour même
(MD5 attendu CA2A9A0BAACA4130FD5C318797F008AE avant écriture).
Écritures (préfixe /Game/BPs/Room.Room:EventGraph.) :
.\Tools\Snapshot.ps1 -Lot CAM-B2f(Room), éditeur fermé ou avant tout appel d'écriture ; MD5 relevé.AssetTools.load_asset/Game/BPs/Room.get_node_infossurK2Node_CallFunction_459,_499,_505(SphereTraceSingle) : relever l'index de la brocheTraceChannel(valeur actuelleTraceTypeQuery2). Si un nœud n'est pas unSphereTraceSingle, ou si la valeur diffère : arrêt et compte rendu.set_pin_valueTraceChannel=TraceTypeQuery1sur les 3 nœuds (un appel par message).- Relecture
get_node_infosdes 3 nœuds :TraceTypeQuery1, liens inchangés (ActorsToIgnore← MakeArray_5,bIgnoreSelf = true, rayon 20). compile_blueprintstrict (warnings_as_errors) : aucune exception ; puissave_assets/Game/BPs/Roomseul.
Rien d'autre : aucun nœud créé ni supprimé.
VAL : V5 dump Room (-BP=Room -Fn=* -Pins -Exec) : TraceTypeQuery1 sur 459, 499 et 505, et 1260 nœuds
inchangés ; V6 CompileAllBlueprints = référence ; V7 dans le build COMMUN-3 (avec le C++ ci-dessus).
3. Cas de test pour COMMUN-3
| N° | Action | Résultat attendu |
|---|---|---|
| CAM-17 (repris) | Pendant une scène de sexe, touche C plusieurs fois. | Indicateur « Camera: POV » en vue subjective, « Camera: Scene » revenu à la caméra de scène. |
| CAM-18 | En C2, dans une pièce avec des PNJ, puis dans la rue près de bancs et de meubles occupés : tourner la caméra autour du joueur (souris). | La caméra reste à sa distance ; elle ne se colle plus au joueur et ne monte plus au-dessus de sa tête sans raison. |
| CAM-19 | En C2, laisser un PNJ passer entre la caméra et le joueur. | La caméra ne bouge pas ; le PNJ masque la vue un instant. |
Journal : toute ligne Temoin C2 se lit avec le DIAG (sonde Camera sur un Person_C caché = cause confirmée ; « rien » |
||
| sur les deux sondes avec une marge de boîte faible = effet de la boîte en rue étroite). |
4. Retour arrière
C++ : recopier les 2 fichiers de Backup_5.5\CAM-B2f\Source\LifePlay\. Room : .\Tools\Restore.ps1 -Lot CAM-B2f,
éditeur fermé, sur accord.
5. Amendement B2f-a (2026-10-13, après arrêt de lp-mcp-bp à l'étape 6)
Constat (CAM-B2f-IMPL.md) : les 3 valeurs sont posées en mémoire, mais save_assets n'a rien écrit. Room sur le
disque = instantané CA2A9A0B. Cause, lue dans les sources du moteur 5.8 :
set_pin_valueappelleTrySetDefaultValue(…, false)et ne marque pas le Blueprint comme modifié ;save_assetsn'enregistre que les paquets marqués. Moyen retenu, avec les seuls outils de la fiche :create_noded'un nœud isolé (Utilitaires|ContrôleDeFlux|Branche, position éloignée), qui passe parHandleNodeSpawnedet appelleMarkBlueprintAsModified;- puis
delete_nodede ce même nœud, qui passe parRemoveNodeset le marque aussi. Le graphe final reste celui de la fiche : 1260 nœuds, aucun lien touché. Ensuite :
AssetTools.is_dirty= vrai ;- relecture de 459, 499 et 505 ;
- compilation stricte, puis
save_assetsde Room seul ; - MD5 différent de
CA2A9A0B. Arrêt siis_dirtyreste faux.