8.4 KiB
Fiche STG-C2 — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
CART de B-SOL (personnages enfoncés dans le sol jusqu'aux genoux dans la Room street ; ancien, présent en 5.5).
Lot STG, registre STG-TACHES.md. Lecture seule, sans copie UE. Date : 2026-10-13. Copie : D:\Game\LifePlay-master 5.8,
branche ue5.8, HEAD 0745917. Sources communes avec STG-C1 (§ 1 de STG-C1-CART.md : ROOM, ROOM-EG, SI, PEG, COMP, CFG).
1. Sources propres à B-SOL
| Repère | Fichier | Contenu |
|---|---|---|
| ST | Content/Modules/vin_Base/World/street___vin01.lpworld (27 lignes) |
Room street : échelle racine X=3.5 Y=18 Z=0.010 ; décor fnt_ext001 en Z relatif 48130,742 (échelle 0,286 / 0,056 / 100) ; plan de marche fnt_nav01 en Z relatif 60 (échelle 0,246 / 0,120 / 100) |
| OUT | Source/LifePlay/LPOutdoorRoomSubsystem.cpp (CHG-057) |
plafond WallT masqué si échelle Z de la racine < 0,05 |
| J-U6 | etat/U58/U6/LifePlay_58_session2.log l. 7619, 7733 |
street chargée ; Piece exterieure (echelle Z 0.010) : plafond WallT masque |
| J-U7 | etat/U58/U7/T11/LifePlay_U7d_T12_C2_ok.log l. 8513, 8631, 8914 |
idem ; PlayerCharacter passe par PlayIdle → standIdle → moveTo en street |
| L7l | Docs/Journal_Modifications.md l. 963-975 ; Registre_Erreurs.md l. 43 (ERR-036) |
meubles ancrés en Z = 60 (Room::addObject) ; hauteur du sol de marche à mesurer en jeu |
| U7 | etat/U58/U7/U7-SUIVI.md l. 80 |
signalement : Bridget (joueuse) enfoncée jusqu'aux genoux dans le pavé, carte de ville |
| UA | Content/Heavy/New2/Furniture/fnt_ext001.uasset, fnt_nav01.uasset (chaînes lues) |
les deux ont un BodySetup, CollisionProfileName BlockAll, CTF_UseSimpleAndComplex, NavCollision ; matériau de fnt_nav01 : /Game/Heavy/Daz/Bridget/Transparent (plan invisible) |
2. Faits établis
- Ce n'est pas ERR-036 (même symptôme, autre cause) : en street, l'échelle Z vaut 0,010 < 0,05 et le journal confirme
le masquage du plafond (J-U6 l. 7733, J-U7 l. 8631). Le plafond
WallTse trouverait de toute façon à ≈ 20 cm du sol (2040 × 0,01), donc à hauteur de chevilles, et blanc, alors que le défaut atteint les genoux et montre le pavé. - Pieds = position de l'acteur − 90 : demi-hauteur de capsule 88, maillage à Z relatif −90 (COMP l. 1768, 2556).
- La capsule ignore WorldStatic (profil
Custom, COMP l. 1881). Ce qui porte un personnage n'est donc pas n'importe quel décor statique : soit un composant d'un autre type d'objet (WorldDynamic…), soit rien (personnage tenu par ses seules posesSetActorLocation). Les nœudsSetCollisionResponseToChannel(WorldStatic, Ignore / Block)des événementsDisableCol/EnableColsont débranchés, en 5.8 comme en 5.5 (PEG l. 12612-12619, 12876-12887 ; P55 l. 33919-33929). - Trois poses de position sans balayage, chacune met le centre de la capsule exactement sur un point donné :
moveTo(échec deMoveToLocation, ou préfixeC) ;CompleteCurrentMovement(à chaque arrivée) ;MoveAllToCenterRoom(Z de la variable localeLoc, jamais initialisée dans la fonction, ROOM). - Repli de
standIdlesans emplacement libre : destination = centre deRoom.StaticMeshComponent+ 50 en Z (SI). Centre de capsule à +50 → pieds à −40 cm sous l'origine de la pièce : hauteur du genou. - Le défaut existe en 5.5 (utilisateur, U7) ; graphes et donnée de lieu identiques en 5.5 (P55 ;
.lpworldhors git dans la copie 5.8 :.gitignore:83/Content/Modules/).
3. Hypothèses (estimé ; à trancher par mesure)
| # | Hypothèse | Ce qui la soutient | Ce qui la distinguerait en jeu |
|---|---|---|---|
| H-SOL1 | Décor plus haut que la surface de marche : le pavé visible de fnt_ext001 (posé à la main en Z relatif 48130,742, soit ≈ +481 cm) est au-dessus du plan de marche fnt_nav01 / navmesh (+0,6 cm) d'environ 40-50 cm, ou sa collision simple ne suit pas le pavé |
street seule signalée ; même famille que la forêt de L7l (sol de neige posé à la main, « mesure en jeu nécessaire ») ; emplacements = points du navmesh | tous les personnages de la street, joueur compris, à la même profondeur, en permanence, à toute position |
| H-SOL2 | Repli à +50 non corrigé (fait 5) : téléportation du centre de capsule à +50, pas de surface qui la repousse (fait 3) | profondeur prédite = 40 cm = genoux ; street étroite → peu d'emplacements → repli fréquent (STG-C1 K2-K3) | seulement certains personnages (repli), tous au même point, profondeur constante de 40 cm, qui disparaît après un déplacement |
Les deux peuvent coexister. La capture U7 (la joueuse seule, au pavé) penche vers H-SOL1, sans le prouver.
Constat du 2026-10-13 (essais CAM sur COMMUN-1, sans -LPPersonsLog)
Capture de l'utilisateur (transmise par Big Boss, images.webp de la session Big Boss) : street, scène de dialogue en
cours (sous-titre), deux PNJ debout (homme t-shirt vert, femme débardeur) enfoncés à la même profondeur (genoux à
mi-cuisses, ≈ 45-55 cm, estimé à l'œil), près de la rambarde blanche. Ce ne sont pas des poses de meuble (H-D5 de STG-C3
écartée pour ce cas). Même profondeur pour deux personnages placés en scène → plutôt H-SOL1 (surface de marche sous le
pavé visible), ou une pose sans balayage commune aux deux (moveToPersonStand / CompleteCurrentMovement), à trancher
par M1 (delta, floorComp, visibleComp).
4. Assets et nœuds en jeu
- Donnée de lieu :
Content/Modules/vin_Base/World/street___vin01.lpworld, lignesfnt_ext001(l. 22) etfnt_nav01(l. 27) — hors git dans la copie 5.8 (dépôt localContent/Modules: voirlp-pathsavant toute écriture). - Maillages :
Content/Heavy/New2/Furniture/fnt_ext001.uasset,fnt_nav01.uasset(lecture seulement). Content/BPs/Person.uasset:standIdle(repli +50),EventGraphmoveTo(K2Node_CallFunction_399),CompleteCurrentMovement(_487,_303), capsule (CDO).Content/BPs/Room.uasset:MoveAllToCenterRoom(Loc),getStandSpots— réservé par CAM.Source/LifePlay/LPDebugSubsystem.*: support d'une commande de mesure (M1).
5. Mesures demandées (copie UE, sous jeton)
| Fiche | Geste | Coût | Tranche |
|---|---|---|---|
| STG-D1 | RunCommandlet.ps1 LPCheckMeshes -Path=/Game/Heavy/New2/Furniture/fnt_ -CSV=… (existant, colonnes MinZ, MaxZ) |
N0, ≈ 2 min, aucune écriture d'asset | hauteur Z du décor par rapport au plan de marche (première approche de H-SOL1) |
| M1 | commande console non-Shipping LifePlay.PersonsDump (C++ dans LPDebugSubsystem, aucun asset) : par personnage, position, bas de capsule, mode de mouvement, plancher trouvé (composant, Z), surface visible sous les pieds (trace Visibility : composant, Z) et distance 2D minimale à un autre personnage |
≈ 100 lignes, build, 5 min de jeu en street par l'utilisateur | H-SOL1 / H-SOL2, et critère des 10 cm de B-CHEV |
6. Options de correction (après mesure)
| Option | Si | Geste | Coût | Risque |
|---|---|---|---|---|
| S-F1 | H-SOL1 (écart Δ entre pavé et plan de marche) | street___vin01.lpworld : fnt_ext001 abaissé de Δ (Z relatif − Δ × 100), ou fnt_nav01 relevé de Δ (+ Δ × 100) ; ou par l'éditeur de lieu du jeu (« Edit building ») |
1 ligne de donnée | faible ; donnée du module de base (hors git ici, dépôt Content/Modules) ; un mod qui remplace la street n'en profite pas |
| S-F2 | H-SOL2 | standIdle : repli à +90 (demi-hauteur + 2) au lieu de +50, ou par C-O2 de STG-C1 (point du navmesh) ; MoveAllToCenterRoom : Loc initialisé |
1 broche (Person) ; 2-3 nœuds (Room, après CAM) | faible |
| S-F3 | les deux, tous lieux | garde C++ : après chaque arrivée, personnage debout hors meuble et hors scène recalé sur la surface visible sous ses pieds (trace Visibility) | ≈ 80 lignes + build | moyen (lits, chaises, scènes à exclure) ; couvre aussi les lieux des mods |
Recommandation de l'orchestrateur (décision à l'utilisateur) : D1 puis M1, puis S-F1 si H-SOL1 (le moins cher), S-F2 si H-SOL2 (à faire avec C-O2 de STG-C1). S-F3 seulement si plusieurs lieux sont touchés.
7. Questions pour l'utilisateur (par Big Boss)
- Q-STG-3 : accord pour la mesure M1 (code de débogage C++, absent du Shipping) et la session de 5 min en street ?
- Q-STG-4 : si S-F1, accord pour modifier la donnée de lieu du module de base
vin_Base(street) ?
8. Fichiers à commiter
Voir STG-C1-CART.md § 7.