139 lines
11 KiB
Markdown
139 lines
11 KiB
Markdown
|
|
# Fiche STG-C5a — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
|
|||
|
|
|
|||
|
|
Analyse STG de l'essai COMMUN-5 (demande de Big Boss, 2026-10-14), en lecture seule, sans UE. Bilan : `etat/BOSS/COMMUN-5-BILAN.md`.
|
|||
|
|
Verdicts STG de l'utilisateur : H6 à H10, I1, I3 à I7 OK. Lot STG, registre `STG-TACHES.md`. Heures en UTC.
|
|||
|
|
|
|||
|
|
Source : `D:\Game\LifePlay_Backup_5.5\COMMUN-5\essais\LifePlay_commun5_session1_BOSS.log` (MD5 `9c1ebcdc…`, 75 384 lignes).
|
|||
|
|
|
|||
|
|
## 1. `stuck and failed` = 3 : des passants posés au bord, relevés par S-F5 (établi)
|
|||
|
|
|
|||
|
|
| Heure | Qui | Position | Composant, pénétration, normale | Suite |
|
|||
|
|
|---|---|---|---|---|
|
|||
|
|
| 22:25:08.7 | `…980` | x -3131401,38 (bord), z -89,93 | `Box`, 63,6, Z = +1 | relevé par S-F5 à 22:25:11.9 (78,8 cm) |
|
|||
|
|
| 22:27:11.8 | `…980` | x -3131677,30 (autre bord), z -96,34 | `Box`, 70,0, Z = +1 | relevé à 22:27:14.0 (73,8 cm) |
|
|||
|
|
| 22:35:01.9 | `…956` | x -3131677,30, z -96,34 | `Box`, 70,0, Z = +1 | relevé à 22:35:23.9 (73,8 cm) |
|
|||
|
|
|
|||
|
|
- Ce sont les « stuck » dans `Room.Box` déjà expliqués en COMMUN-4 (`STG-COMMUN4-ANALYSE.md` § 2) : `standIdle` pose le centre de la
|
|||
|
|
capsule au point du navmesh au bord de la rue. La pénétration est exactement l'écart entre le dessus de la `Box` (-114,4) et le bas de
|
|||
|
|
la capsule (z − 88) : 63,6 et 70,0.
|
|||
|
|
- **0 n'était pas attendu de STG** : S-F5 et S-F5j ne suppriment pas le placement, qui reste la cause (STG-POST2). Ils relèvent la
|
|||
|
|
personne après coup. Le moteur écrit « stuck » au premier pas tenté, avant le relevage.
|
|||
|
|
- Délai : 2 à 3 s pour `…980`. Pour `…956`, 22 s : il tente de marcher, et la garde « vitesse ≤ 1 cm/s » de S-F5 attend qu'il
|
|||
|
|
s'arrête. C'est voulu, pour ne pas déplacer un personnage en mouvement.
|
|||
|
|
|
|||
|
|
## 2. `le joueur quitte` = 9 : pas de boucle (établi)
|
|||
|
|
|
|||
|
|
Heures (une ligne chacune) : 22:06:02, 22:07:01, 22:16:05, 22:24:19, 22:24:42, 22:25:36, 22:33:39, 22:38:22, 22:38:38. Les 9 meubles sont
|
|||
|
|
distincts (`_81`, `_8`, `_65`, `_181`, `_36`, `_0`, `_3`, `_5`, `_13`), et chaque ligne suit une occupation (« play fnt »).
|
|||
|
|
- « meuble d'une piece quittee » : 2 (22:20:49 `_125`, 22:35:53 `_13`), une ligne chacun.
|
|||
|
|
|
|||
|
|
## 3. KO3c : Ignore 2, quitte 2, bloque 0 (établi, conforme)
|
|||
|
|
|
|||
|
|
| Heure | Ligne | Suite |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 22:25:36.896 | « joueur dans le volume de `_0` (meuble quitte) », puis « quitte `_0` » | « sorti du volume de `_0`, Pawn rendu en Block » à 22:25:38.658 (1,8 s) |
|
|||
|
|
| 22:33:39.178 | « … `_3` (meuble quitte) », puis « quitte `_3` » | « sorti … `_3` … » à 22:33:41.460 (2,3 s) |
|
|||
|
|
|
|||
|
|
- Chaque composant basculé est rendu en Block, une ligne chacun.
|
|||
|
|
- « (bloque) » = 0 : le déclencheur (2) n'a pas joué. Le joueur n'a jamais poussé sans avancer à l'intérieur d'un volume, et les
|
|||
|
|
murs longés n'ont rien déclenché, comme attendu.
|
|||
|
|
- Le cas du comptoir et du bureau (deux volumes, F8) n'a pas été rejoué dans cette session. Les deux cas vus n'avaient qu'un volume
|
|||
|
|
chacun.
|
|||
|
|
|
|||
|
|
## 4. `releve de` = 17 : aucun pendant la marche ni sous un menu (établi)
|
|||
|
|
|
|||
|
|
- **PNJ : 13 relevages.** Bas de capsule de -134,9 à -184,3, soit 20,5 cm ou plus sous la `Box` : aucun faux positif.
|
|||
|
|
- **Joueur : 4 relevages** (S-F5j).
|
|||
|
|
- Pour chacun, la ligne WALK juste avant donne `menus=[] forward=0.00 right=0.00 accel=0` :
|
|||
|
|
|
|||
|
|
| Heure | Relevé de | WALK avant |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 22:19:09.8 | 68,4 | 22:19:07.9 |
|
|||
|
|
| 22:20:17.0 | 65,6 | 22:20:13.0 |
|
|||
|
|
| 22:34:01.4 | 56,2 | 22:33:58.4 |
|
|||
|
|
| 22:36:55.3 | 36,7 | 22:36:53.6 |
|
|||
|
|
|
|||
|
|
- Chaque fois, le joueur venait d'être posé par `standIdle` (« idle played » 1,6 à 2,5 s avant) : 4 examens à 0,5 s, conforme.
|
|||
|
|
- **Pendant la marche** : à 22:19:09.8, la première « Marche : animation » est à 22:19:10.7, donc **après** le relevage. Aucun
|
|||
|
|
relevage n'a lieu entre deux lignes « Marche ».
|
|||
|
|
- **Sous un menu** : à 22:34:01.4, la scène `dating_cooks` n'est pas encore à l'écran. Le journal donne « timed out … pregnant_trap »
|
|||
|
|
à 22:34:01.16, puis l'apparition de la personne de la nouvelle scène à 22:34:01.81, **après** le relevage. `Scene_C` n'est vue qu'au
|
|||
|
|
relevé suivant (22:34:03.4). L'écart est de 0,4 s : c'est conforme, mais serré.
|
|||
|
|
- Après chaque relevage, le joueur est au sol (bas de capsule -103,0) et marche normalement.
|
|||
|
|
|
|||
|
|
## 5. `CLOSE` hors exception
|
|||
|
|
|
|||
|
|
| Paire | Relevés | Contexte | Classement |
|
|||
|
|
|---|---|---|---|
|
|||
|
|
| joueur / `…884` | 60 (gap -40) | `NoCollision`, `sexOn = 1`, `SF_ft07` (`pregnant_trap`) | exception Q-STG-5 |
|
|||
|
|
| joueur / `…980` | 2 (gap -40) | 22:03, `house_viewing`, `…980` assis (`fnt_chair06-f-0-sit`), joueur sans meuble | estimé, non établi : joueur posé par la scène près du point d'acteur du fauteuil (placement de scène) ; 2 relevés, à surveiller |
|
|||
|
|
| **`…932` / `…908`** | **15 (gap -16,6)**, de 22:20:18 à 22:21:28 | street ; les deux passants ont été posés au **même bord** (x -3131677,3 / -3131677,5, à 23,4 cm d'écart en y), **enfoncés**, puis relevés par S-F5 à 22:20:18.0 et 22:20:18.5, à la verticale, x et y gardés | **vrai chevauchement de passants debout**, rendu visible par S-F5 (avant, il était sous le pavé). Cause : deux points de `standIdle` à moins de 40 cm sur le bord, la même que STG-POST2 (S-F2) et C-O1 / C-O3 (Room) |
|
|||
|
|
| `…932` / `…908` | 3 (gap 6,0, 22:37) ; `…980` / `…956` 2 (gap 7,8) | street, debout, sans meuble | sous 10 cm, sans recouvrement ; posés au bord, puis relevés |
|
|||
|
|
| joueur / `…932` | 5 (gap 8,1) | joueur sans meuble, `…932` en `fnt_new038-f-1-look` | place d'un meuble à côté du joueur, sans recouvrement |
|
|||
|
|
|
|||
|
|
**Nouveau constat (B-CHEV)** : S-F5 relève à la verticale. Deux passants posés trop près l'un de l'autre au bord restent l'un dans
|
|||
|
|
l'autre une fois relevés, jusqu'à leur prochain départ (70 s ici).
|
|||
|
|
- **Correctif possible (S-F5k)**, environ 15 lignes : avant le relevage, si une autre personne visible est à moins de 50 cm en 2D, ne
|
|||
|
|
relever qu'une des deux et pousser l'autre de 50 cm dans l'axe du bord, par une descente balayée. Risque : un déplacement latéral
|
|||
|
|
visible.
|
|||
|
|
- **Correctif de fond** : les points de `standIdle` (STG-POST2) ou l'espacement dans Room (C-O1 / C-O3, Room = CAM). Après l'alpha.
|
|||
|
|
|
|||
|
|
## 6. `Accessed None` : 45 lignes, comparées à COMMUN-4
|
|||
|
|
|
|||
|
|
| Famille (lignes) | COMMUN-5 | COMMUN-4 S1 | COMMUN-4 S2 | Lecture |
|
|||
|
|
|---|---|---|---|---|
|
|||
|
|
| `K2Node_CustomEvent_Person` (lecture) + affectation | 22 + 11 | 0 | 4 + 4 | **F1** (STE, défaut d'origine, signature 2 lectures + 1 affectation) : 11 occurrences. Elle suit les entrées en rue avec des passants au travail (`STG-COMMUN2-ANALYSE.md` § e) ; nombreuses ici : 12 entrées en extérieur (« plancher Box epaissi »), F1 groupée à 22:19-22:24, pendant les visites de rue de 22:19:07 à 22:25:07 |
|
|||
|
|
| `Per` | 4 | 0 | 4 | STE (inchangé de S2) |
|
|||
|
|
| `CallFunc_getFirstDick_Person_1`, `CallFunc_GetSkeletalMesh_ReturnValue(_3)` | 1 + 2 | 1 + 2 | — | inchangé (STE) |
|
|||
|
|
| `CallFunc_Array_Get_Item_93` | 1 | 0 | 13 | en baisse (STE) |
|
|||
|
|
| `GI` dans `CityMenu_C` | 1 | 0 | 0 | **nouvelle**, 1 ligne : hors STG (UI, carte de la ville) ; à donner à STE ou à CAM |
|
|||
|
|
|
|||
|
|
Aucune famille dans `Person::moveToPersonStand` autre que F1, ni dans les fonctions touchées par STG (`Show`, `MoveToFnt`, `PlayFntAnim`) :
|
|||
|
|
STG n'ajoute pas d'`Accessed None`. Le module C++ STG lit tout par réflexion avec contrôle de nullité ; il ne produit pas de message
|
|||
|
|
`LogScript`.
|
|||
|
|
|
|||
|
|
## 7. Façades traversables (C5-5) : variante avant l'alpha, estimation chiffrée
|
|||
|
|
|
|||
|
|
État : les façades de la street font partie du **seul** maillage `fnt_ext001` (`STG-SF5b-DIAG.md` § 3). S-F4b le met en Pawn Ignore
|
|||
|
|
pour supprimer le volume piège. Les façades deviennent donc traversables.
|
|||
|
|
|
|||
|
|
**Variante minimale avant l'alpha (rue seulement)** :
|
|||
|
|
|
|||
|
|
| Poste | Détail |
|
|||
|
|
|---|---|
|
|||
|
|
| Assets | **1** : `Content/Heavy/New2/Furniture/fnt_ext001.uasset` (508 Ko, 13 173 triangles), Collision Complexity = `Use Complex Collision As Simple`. Hors git (`Content/Heavy`) : instantané et copie de sécurité |
|
|||
|
|
| MCP | 1 fiche `lp-mcp-bp` sous UE-GO : charger l'asset, `set_properties` sur le `BodySetup` (`CollisionTraceFlag`), relire, sauvegarder ce seul asset. Environ 10 appels |
|
|||
|
|
| C++ | environ 5 lignes dans `LPOutdoorRoomSubsystem::IgnoreOutdoorDecor` (S-F4b) : ne pas basculer en Ignore un décor dont le `BodySetup` est déjà en `CTF_UseComplexAsSimple`. Les 6 autres extérieurs gardent S-F4b. VAL statique |
|
|||
|
|
| Build | **1 build de plus** (COMMUN-6), avec le recuit de `fnt_ext001` (vérifier qu'il est plus récent que sa source) et CheckPackage |
|
|||
|
|
| Essai | rue : façades solides ; marche le long des trottoirs, de la rambarde et des bordures ; passants au travail (accrochages) ; relevages S-F5 / S-F5j toujours justes ; images par seconde |
|
|||
|
|
| Durée | MCP + VAL environ 1 h ; build environ 10 min ; essai de 15 à 20 min |
|
|||
|
|
|
|||
|
|
**Risques** (non mesurés, à établir à l'essai) :
|
|||
|
|
- **accrochage** de la capsule aux petits reliefs du pavé (marches, bordures, rambarde) : la marche peut buter là où elle passait ;
|
|||
|
|
- **personnage posé sous le pavé** (placements de bord, S-F2) : avec des triangles, la capsule n'est plus prisonnière d'un volume, mais elle
|
|||
|
|
peut buter sous la surface. S-F5 et S-F5j relèvent par une descente balayée depuis le dessus, ce qui doit rester valable, mais c'est à
|
|||
|
|
vérifier ;
|
|||
|
|
- **données physiques complexes cuites** : le paquet doit contenir le maillage de collision complexe pour la physique, et non seulement
|
|||
|
|
pour les traces. À vérifier au recuit et en jeu. S'il manque, les façades restent traversables, sans piège ;
|
|||
|
|
- **dépendance** : asset partagé par la seule street (`fnt_ext001` n'apparaît que dans `street___vin01.lpworld`), donc aucun effet ailleurs.
|
|||
|
|
|
|||
|
|
Avis : la variante est **faisable avant l'alpha** pour la seule rue, au prix d'un build et d'une session d'essai de plus, avec un risque
|
|||
|
|
moyen (accrochages). Les 6 autres extérieurs (12 assets `fnt_ext002` à `012`) restent pour après l'alpha (STG-POST1). Décision à
|
|||
|
|
Big Boss ou à l'utilisateur.
|
|||
|
|
|
|||
|
|
## 8. Synthèse
|
|||
|
|
|
|||
|
|
| Point | Verdict |
|
|||
|
|
|---|---|
|
|||
|
|
| stuck = 3 | passants posés au bord (S-F2), relevés en 2 à 22 s : attendu tant que STG-POST2 n'est pas fait |
|
|||
|
|
| quitte = 9 | pas de boucle |
|
|||
|
|
| KO3c | 2 basculés, 2 rendus, 0 « bloque » : conforme ; le cas à deux volumes n'a pas été rejoué |
|
|||
|
|
| releve = 17 | 0 faux positif ; joueur : 4, jamais pendant la marche ni sous un menu (la marge la plus courte, 0,4 s, est à 22:34:01) |
|
|||
|
|
| CLOSE | 1 vrai chevauchement de passants (15 relevés), rendu visible par S-F5 : S-F5k possible, ou correctif de fond après l'alpha |
|
|||
|
|
| Accessed None | aucune famille STG ; F1 (STE) suit les entrées en rue ; 1 nouvelle ligne `CityMenu_C.GI` (hors STG) |
|
|||
|
|
| Façades | variante rue seule faisable avant l'alpha : 1 asset, 1 fiche MCP, environ 5 lignes de C++, 1 build et 1 essai ; risque moyen |
|
|||
|
|
|
|||
|
|
## 9. Fichiers à commiter
|
|||
|
|
|
|||
|
|
`Docs/Migration/etat/ST/STG/STG-COMMUN5-ANALYSE.md`.
|