# Fiche STG-C4a — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5 Analyse STG de l'essai COMMUN-4 (demande de Big Boss, 2026-10-13), en lecture seule. Bilan de l'essai : `etat/BOSS/COMMUN-4-BILAN.md`. Lot STG, registre `STG-TACHES.md`. Heures en UTC. | Repère | Fichier (`D:\Game\LifePlay_Backup_5.5\COMMUN-4\essais\`) | MD5 | Lignes | |---|---|---|---| | S1 | `LifePlay_commun4_session1_BOSS.log` (Michael) | `4b039fd2…` | 24 750 | | S2 | `LifePlay_commun4_session2_BOSS.log` (Bridget) | `36974dfe…` | 23 654 | Comptes (`grep -ac`) : | Motif | S1 | S2 | |---|---|---| | « Marche : animation » (marche animée) | 75 | 105 | | « Marche : clip … introuvable » | 0 | 0 | | « le joueur quitte » (3b) | 3 | 15 | | « meuble d'une piece quittee » (KO3b) | 1 | 1 | | « dans le volume de » / « sorti du volume de » (KO3b) | 1 / 0 | 6 / 4 | | « releve de » (S-F5) | 8 | 1 | | « is stuck » | 4 | 6 | | `CLOSE` | 63 | 22 | ## 1. Boucle « le joueur quitte » : disparue (établi) - Au plus **une** ligne par seconde dans les deux sessions (`uniq -c` par seconde : 1 partout). Comparaison : 461 en 10 s en COMMUN-3. - Le cas qui la provoquait (assis, puis changement de lieu) est passé une fois dans chaque session : « Marche : meuble d'une piece quittee (`_129`), reference videe » (S1, 20:18:08) et « … (`_107`) … » (S2, 20:38:39), une seule ligne, sans appel à `unOccupyFnt` ensuite. KO3b fait ce qui était attendu. - Deux « quitte » sur le même meuble (`_279` à 20:39:24 et 20:39:45, `_19` à 20:41:21 et 20:42:36, S2) : ce sont deux occupations distinctes, chacune précédée de son « play fnt ». Ce n'est pas une boucle. ## 2. Les « stuck » (10) | Session | Heure | Qui | Composant | Pénétration, normale | Lecture | |---|---|---|---|---|---| | S1 | 20:06:33.977 | joueur | `_214` (comptoir du newsagent) | 74,2, X = -1 | F8, traité par KO3c (`STG-KO3c-DIAG.md`) | | S1 | 20:07:47 | `…931` | **`Box`** | 63,6, **Z = +1** | passant au bord de la rue, voir ci-dessous | | S1 | 20:15:31 | `…955` | **`Box`** | 24,7, Z = +1 | idem ; relevé par S-F5 2,5 s après (20:15:34, 30 cm) | | S1 | 20:24:58 | `…907` | **`Box`** | 52,9, Z = +1 | idem, au bord (x -3131401,4) | | S2 | 20:35:52 | joueur | `_36` | 1,5, Y = +1 | contact normal contre un meuble voisin juste après la sortie de `_17` : il bloque, ce qui est attendu | | S2 | 20:36:15-26 (×3) | joueur | `_37` | 29,1, Y = +1 | place de `_15` posée aussi dans `_37` : **même cas que F8** (deux volumes), sorti par une autre direction (« sorti du volume de `_15` » à 20:36:17 et 20:36:28) ; KO3c le couvre | | S2 | 20:38:40 | joueur | `_34` | 1,5, Y = +1 | contact normal, comme `_36` | | S2 | **20:39:23** | joueur | **`Box`** | **85,0, Z = +1** | voir ci-dessous | **Les « stuck » dans `Room.Box` avec normale Z = +1 (établi par le calcul).** La pénétration est exactement l'écart entre le dessus de la `Box` et le bas de la capsule. Le moteur veut sortir la capsule **vers le haut**, et un mouvement horizontal n'y arrive pas. - S1, 20:07:47, `…931` : `z` -89,93, donc bas de capsule -177,9 ; dessus de `Box` en rue -114,4 ; écart 63,5 = 63,6. C'est le passant posé au bord par `standIdle` (x -3131401,38 : le bord connu), la cause de S-F5. - **S2, 20:39:23, joueur** : `z` -99,18, donc bas de capsule -187,2 ; intérieur du newsagent, dessus de `Box` -102,2 ; écart 85,0 = 84,98. - Contexte : le joueur vient de choisir une action au comptoir. Une image plus tard (20:39:24.620), « play fnt » sur `_279`, puis KO3b (« dans le volume de `_279` », « quitte `_279` »). - Le déplacement automatique vers la place (`MoveToFnt`, repli `SetActorLocation` sans balayage) a donc posé **le centre** de la capsule au point de la place, au niveau du sol (z ≈ -99), au lieu de point + demi-hauteur. C'est la cause S-F2 (`STG-SF4b-DIAG.md` § 4). - `PlayFntAnim` repose le joueur 1,3 s plus tard, et le défaut se corrige seul : aucun relevé M1 n'en garde la trace. - Même mécanisme que le `stuck` de S1 à 20:06:33.977 (avant `PlayFntAnim`). - Cause commune : un placement sans balayage, centre de capsule au point visé. Correction de fond : STG-POST2 (S-F2), après l'alpha. En attendant, ces cas se règlent soit par le jeu (replacement de l'action), soit par S-F5 (passants immobiles), soit par S-F5j (joueur immobile, prochain build). ## 3. S-F5 : relevages (9) et faux positifs (aucun, établi) | Session | Heure | Personne | Relevé de | Bas de capsule | Sol trouvé | |---|---|---|---|---|---| | S1 | 20:07:50 | `…955` | 79,9 | -184,1 | `_223` | | S1 | 20:15:05 | `…979` | 43,4 | -147,6 | `_0` | | S1 | 20:15:33-34 | `…883`, `…955`, `…907` | 73,8 / 30,0 / 39,9 | -177,9 / -134,2 / -144,1 | `_90` | | S1 | 20:17:49-50 | `…883`, `…955` | 76,8 / 54,1 | -181,0 / -158,4 | `_147` | | S1 | 20:24:59 | `…883` | 77,9 | -182,1 | `_55` | | S2 | 20:33:00 | `…979` | 51,0 | -155,2 | `_10` | - **Aucun faux positif** : - le relevage le moins profond part de 19,8 cm sous le dessus de la `Box` (-134,2), au-delà du seuil de 15 cm ; - les personnes au sol correct sont à +11,4 cm (VAL S-F5) ; - aucun relevage n'a lieu pendant une scène : scène S1 de 20:09:18 à 20:13:52, scènes S2 vers 20:37:49-20:38:59. - **Efficacité** : dans les deux sessions, aucun relevé M1 ne montre de personne visible, sans meuble, en extérieur, plus de 15 cm sous la `Box` (script de comptage, 0 et 0). Les passants enfoncés le sont moins de 5 s. - Un passant qui **tente de marcher** (`…931` à 20:07:47, `…907` à 20:24:58 : « stuck » avec une vitesse demandée) n'est pas relevé tant qu'il bouge (garde « vitesse 2D ≤ 1 »). Aucun ne le reste assez longtemps pour figurer dans un relevé M1. Il n'y a rien à corriger. - Avec un seul cas S2 et des sols trouvés variés (`_0`, `_10`, `_55`, `_90`, `_147`, `_223`), on ne peut pas dire quel extérieur a été visité en plus de la rue. **L'essai « S-F5 dans un autre extérieur » reste à confirmer** dans le bilan de Big Boss (cas G). ## 4. Tri des `CLOSE` (S1 : 63 ; S2 : 22) | Session | Paire | Relevés | Contexte | Classement | |---|---|---|---|---| | S1 | joueur / `…883` | 11 + 5 + 10 + 18 + 11 (gap -40) | `NoCollision`, `sexOn = 1`, `MF_kol07`, `MF_cg204`, `MF_fp05`, `MF_bedADG`, `MF_fp01` | exception Q-STG-5 | | S2 | joueur / `…883` | 5 + 4 (gap -40) | idem, `SF_ft07`, `FF_gf03` | exception Q-STG-5 | | S1 | joueur / `…979` | 3 + 2 + 3 (gap -0,3) | `fnt_new085-m-0-use` / `fnt_new084-f-0-use` : deux meubles voisins | données du lieu (comme COMMUN-3) | | S2 | joueur / `…955` ou `…907` | 5 + 2 + 1 + 1 (gap -40) | joueur en `fnt_new038-f-0-look`, `occupyingFnt` déjà vidé par 3b ; le PNJ sur la place **f-1 ou m-1 du même** présentoir (`_17`, `_66`, `_15`) | deux places d'un même meuble au même point d'acteur (données) ; le filtre CLOSE ne les exclut plus parce que 3b vide `occupyingFnt` du joueur dès le premier pas (cf. COMMUN-3 § 5). Pas un chevauchement de règle B-CHEV | | S2 | joueur / `…979` | 1 + 1 + 2 (gap -9,8 à -14,5) | `fnt_new013-f-0-buy` / `fnt_new055-m-0-sit` : meubles voisins | données du lieu | Bilan : **aucun chevauchement de personnages debout hors meuble** (S1 et S2). Tous les `CLOSE` sont soit des scènes de contact, soit des places de meubles voisins ou du même meuble, posées par les données. ## 5. Marche : régression ? (aucune vue, établi sur les relevés) - F1 et F2 : 75 et 105 « Marche : animation » ; 0 « clip introuvable ». - **F3 (scène ouverte en plein pas)** : les relevés où le joueur joue encore un `*_Walk_Loop` sont 18 en S1 et 24 en S2, **tous** avec une touche de marche enfoncée (`forward` ou `right` non nul). Aucun ne combine `*_Walk_Loop` avec l'arrêt, `Scene_C` à l'écran ou `sexOn = 1`. `RestoreAnim` rend donc bien l'animation à l'arrêt et à l'ouverture d'une scène. - Limite : un relevé toutes les 5 s ; une marche figée moins de 5 s ne se verrait pas. ## 6. Synthèse | Point | Verdict | |---|---| | Boucle « quitte » | disparue (KO3b) | | Stuck `Box`, Z = +1 | placement sans balayage, centre de capsule au point (S-F2) ; passants : S-F5 ; joueur : réglé par le jeu en 1,3 s, S-F5j au prochain build ; fond : STG-POST2 | | Stuck `_37` (S2) | même cas que F8 (place dans deux volumes) : KO3c | | S-F5 | 9 relevages, 0 faux positif, 0 passant enfoncé dans les relevés | | CLOSE | aucun chevauchement debout hors meuble | | Marche (F3) | pas de régression vue | Rien de nouveau à corriger côté STG pour COMMUN-5 en dehors de KO3c et de S-F5j, déjà écrits et validés en statique. ## 7. Fichiers à commiter `Docs/Migration/etat/ST/STG/STG-COMMUN4-ANALYSE.md`.