5.5 KiB
Fiche STG-C5 — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
CART de B7 (B-CHEV) : en scène de dialogue (vin_Pregnancy/Scenes/pregnant_trap.lpscene, avant tout contact), la
partenaire est posée au point du joueur (CLOSE PlayerCharacter Person_C_2147481884 gap=-40.0 dz=0.0, COMMUN-2,
16:50:14 UTC), caméra C1 dans sa tête. Accord de Big Boss (2026-10-13), lecture seule, sans copie UE ; pas d'écriture
dans GI (l'IMPL ira à STE ou se fera de concert, sur décision de Big Boss). Lot STG, registre STG-TACHES.md.
État : § 1-3 tirés des graphes (établi) ; § 4 complété avec la copie définitive de COMMUN-2 (établi).
1. Qui place la partenaire (établi, graphe)
- Le lpscene :
Actor = generatePersonTemporary()…Actor.dress(),Actor.show(), puis les répliques ;Sex(Player, Actor)n'arrive qu'après le choix 0 (l. 19 puis 32). - Commande de scène
show:GI::CallFunction,K2Node_SwitchString_22, casshow(etat/ST/STE/dumps/GI__CallFunction.txtl. 1484-1493, 5023-5057, 6200-6209) :- sans paramètre (
IfThenElse_7626, vrai) →GI::Show(VariableName, Slot = 0)(K2Node_CallFunction_4706) ; - place entière, ex.
show(2)→Show(Slot = Conv_StringToInt(param))(…_156) ; - variable →
Show(Slot = Round(var))(…_46599). C'est le seul appelant deGI::Show(3 nœuds d'appel, tous dansCallFunction, même casshow).
- sans paramètre (
GI::Show(etat/portage55/L6f/L6f_dump_GI.txt, 84 nœuds) :SetActorTransform(Person, ActorTransforms[Slot])sans balayage, affiche la personne,PlayIdle,TalkDirty, puismoveToPerson(Player)seulement sigetDistance > 300.ActorTransforms(GI) n'est écrit nulle part (9 lectures dans GI, 2 dans Room :EventGraph,moveToBedIfPossible, place 3) : valeur par défaut de GI, des postes fixes ; Room est toujours au même point du monde (-3131543, -14967213, -115).
2. Pourquoi la règle des 10 cm n'y joue pas (établi, graphe)
Show pose la personne directement sur un poste fixe : ni standIdle (emplacements, B-CHEV C-O1…), ni moveToPersonStand
(garde C-O4b de B1). Le seul rattrapage (moveToPerson) ne joue qu'au-delà de 300 cm : à distance nulle, rien ne bouge.
3. Hypothèse sur la superposition (estimé)
Actor.show() prend le poste 0 ; le joueur se trouve sur ce même poste (ou sur un point confondu), d'où l'écart nul.
À établir : position du joueur au moment du show (journal définitif : relevé M1 juste avant / après) et valeurs de
ActorTransforms (dump du CDO de GI, sous jeton UE, si besoin).
4. Journal définitif de COMMUN-2 (établi)
Source : D:\Game\LifePlay_Backup_5.5\COMMUN-2\essais\LifePlay_commun2_definitif_BOSS.log (MD5 3f2355f4…), l. 27380-27443.
- 16:50:11 UTC :
Person_C_2147481884(Amber, générée par la scène) « idle played », puis « test270522 found a spot within distance » (standIdle), habillage. - 16:50:14 UTC (relevé M1) : scène
pregnant_trap.lpscene; joueurX -3131413,4 Y -14967128,8 Z -99,0; AmberX -3131413,4 Y -14967128,8 Z -99,0: mêmes coordonnées au dixième de cm ; les deux enQueryAndPhysics, sans meuble,floorHit 0(street : piègefnt_ext,STG-SF4b-DIAG.md) ;CLOSE PlayerCharacter Person_C_2147481884 gap=-40.0. - Le joueur est immobile au même point depuis 16:48 (coincé en street).
- Ensuite (même scène, après
Sex) : 41CLOSEen intérieur,NoCollision, animations de couple (MF_kol07,MF_sp02,MF_sp04) : exception Q-STG-5. Conclusion : la partenaire est posée sur le point exact du joueur aushow()du dialogue (coïncidence exclue à 0,1 cm près). Lequel des deux postes fixesActorTransformsest en cause (poste 0 partagé, ou point du joueur recopié) reste estimé ; B7-a règle les deux cas. Effet aggravant en street : les deux sont pris dans le piègefnt_extet ne peuvent pas s'écarter (réglé par S-F4b).
5. Usage et risque d'un correctif
showest très employé : 496 scènes avec.show(); 383 où unshow()précède unSex(), 180 où unshow()suit unSex(); formes :X.show()1240,X.show(2)949,X.show(3)285,X.show(0)162,X.show(4)88,X.show(5)55,X.show(1)24 (grepsurContent/Modules/**/*.lpscene).- Point dur (Big Boss) : un
show()peut précéder une scène de contact ou de sexe (gelées jusqu'à la release) ; la partenaire ne doit pas y être écartée.Sexrepositionne les deux corps (LPShowCoupleSubsystem, point partagé) : un écart posé parShowserait annulé auSexsuivant ; le danger est unshow()pendant une scène de sexe (180 scènes ont unshow()après unSex()).
6. Options (à décider par Big Boss ; IMPL dans GI par STE ou de concert)
| Id | Geste | Coût | Risque |
|---|---|---|---|
| B7-a | GI::Show : si getDistance(Player) < 70 et GI.SexOn faux et la personne n'est pas le joueur → moveToPersonStand(Player, 100) (passe par la garde C-O4b) |
≈ 6-8 nœuds, GI | faible ; aucune action en scène de sexe |
| B7-b | Même chose, mais seulement pour Slot = 0 (cas de show() sans argument) |
≈ 8-10 nœuds | plus étroit ; ne couvre pas un show(N) qui tomberait sur le joueur |
| B7-c | Corriger les postes fixes (ActorTransforms par défaut de GI) pour que le poste 0 ne soit pas celui du joueur |
1 propriété, GI | non chiffrable sans dump du CDO ; touche toutes les scènes |
Recommandation : B7-a (confirmée par le § 4).
7. Fichiers à commiter
Docs/Migration/etat/ST/STG/STG-C5-CART.md.