LifePlay-Revival/Docs/Migration/etat/REL/FIX1/FIX1-MES.md
2026-10-21 09:36:04 +02:00

15 KiB
Raw Blame History

Fiche FIX1-MES — Niveau N1 — Modèle prévu non précisé par la fiche | utilisé claude-sonnet-5-5 — Agent lp-writer (rôle A-DOC) — Skills sk-protocol, lp-doc, lp-lot

FIX1-MES : protocole de séance de mesure -LPPersonsLog=2 (hauteur de talons et animation « look », F8b et F7b) (2026-10-20)

Demande de Big Boss (local_104ff22d), 2026-10-20, sur ordre de l'utilisateur, cité mot pour mot : « … en build 1, ajoute la hauteur de talons et l'animation à la trace M-Z, et prépare la séance de mesure -LPPersonsLog=2. » Protocole de 20 à 30 minutes, pour l'utilisateur, au ton et au format de etat\BOSS\COMMUN-21-TESTS.md (pas à pas, résultat attendu, motif de journal). Il reprend FIX1-F7-PRE.md (§ 3.1 F7b et F8b, § 3.3, § 3.4 « Ordre conseillé », § 6 questions 2 et 3). Rédigé sans copie UE, sans MCP, sans lancer le jeu. Aucun contenu de jeu : tenue et actions décrites de façon neutre (doc 27).

Ce que la séance doit trancher (FIX1-F7-PRE.md § 4, « Incertain »)

  • F8b : le décalage du maillage au lever (meshZ −80,4 / −82,8 / −85,2 au lieu de −90) vient-il des talons (formule estimée −90 + 12 × HeelHeight, FIX1-F7-PRE.md:119, :170) ou de la place (animation de meuble) ? Question 4 de FIX1-F7-PRE.md § 6 : le personnage flotte-t-il réellement à l'écran ?
  • F7b : l'animation « look » reste-t-elle jouée après la fin de l'action (anim=single:…look), ou seule la variable currentAnimation est-elle périmée ? Effet visible ? (FIX1-F7-PRE.md:158, :203).

1. Build à utiliser

Élément Valeur
Build visée COMMUN-22 : D:\Game\LifePlay_Build_5.8_Development_COM22\Windows\LifePlay.exe ; exe e2ba7dec63d479974394e2cffd1efc19 (F8a + trace M-Z enrichie), paquet du 2026-10-20 20:24 (etat\BOSS\COMMUN-22\COMMUN-22-BUILD.md)
Trace M-Z enrichie fiche FIX1-MZ-IMPL.md (LPDirectControlSubsystem.cpp 687c63d8, exe e2ba7dec) ; format exact : `M-Z : maillage relatif Z -> <après> (gabarit ), debout sans meuble ; HeelHeight=<%.3f
Repli la build COM21 actuelle, D:\Game\LifePlay_Build_5.8_Development_COM21\Windows\LifePlay.exe, sans la trace enrichie : la séance reste utile, car les lignes STATE … meshZ= … currentAnimation= suffisent (§ 4) ; seule la ligne M-Z : reste sans talons ni animation
Copie UE non requise : la séance se joue sur une build empaquetée, sans éditeur

Ligne de commande prête (PowerShell, build COMMUN-22) :

& "D:\Game\LifePlay_Build_5.8_Development_COM22\Windows\LifePlay.exe" -LPPersonsLog=2

Sens exact de -LPPersonsLog=2 (lu dans Source\LifePlay\LPDebugSubsystem.cpp:638-650) :

  • =2 = un relevé toutes les 2 secondes au journal (valeur par défaut sans nombre : 5 s ; plancher : 1 s) ;
  • au lancement, une ligne LPDebug persons : releve toutes les 2 s (catégorie LogLifePlay, niveau Display) ; absente = l'argument n'a pas été pris, arrêter et le dire ;
  • le relevé périodique n'écrit pas de fichier (WritePersonsDump(…, false), :646) : tout est au journal <build>\Windows\LifePlay\Saved\Logs\LifePlay.log ;
  • chaque relevé contient, par personnage, une ligne LPDebug persons : STATE <acteur> coll=… grav=… moveTick=… meshZ=… anim=… currentAnimation=… (:414, préfixe LPDebug persons : ajouté par :580) : meshZ = Z relatif du maillage ; anim = single:<clip> si un clip isolé est joué, bp:<AnimBP> si l'AnimBP pilote, - sinon (:404-413) ; currentAnimation = variable Blueprint du personnage, - quand elle est vide (FIX1-F7-PRE.md:160).
  • Au journal, l'heure de chaque ligne sert à retrouver l'instant noté à la main (§ 3 et § 4).

Alternative ponctuelle, sans relancer : console LifePlay.PersonsDump (un seul relevé, avec un fichier PersonsDump_<date>_<heure>.txt, :631-634, :584-587).

2. Préparation (3 minutes)

  1. Fermer le jeu s'il est ouvert. Ouvrir une montre ou une horloge visible : chaque geste est noté avec l'heure (heure:minute:seconde, celle du poste).
  2. Lancer la ligne de commande du § 1. Charger une partie existante (ou nouvelle partie) avec un personnage joueur, dans une rue ou une pièce dégagée, sans scène en cours.
  3. Vérifier, une fois le jeu chargé, la présence de releve toutes les 2 s :
    Select-String -Path "D:\Game\LifePlay_Build_5.8_Development_COM22\Windows\LifePlay\Saved\Logs\LifePlay.log" -Pattern 'LPDebug persons : releve toutes les'
    
    Attendu : 1 ligne.
  4. Préparer le cahier (papier ou fichier, hors jeu) : une ligne par geste, colonnes heure | geste | ce qu'on voit à l'écran.
  5. Prévoir : une tenue avec chaussures à talons pour le joueur, la même sans talons (ou des chaussures plates), une chaise ou un canapé utilisable, et un meuble de boutique avec l'action « regarder » (celui de COMMUN-8 était une vitrine).

3. Cas

Format comme COMMUN-21-TESTS.md § 3 : Verdict, Découvreur, Heure restent vides, le BILAN les remplit. Contrôle automatique = motif cherché par Big Boss dans le journal (§ 4).

3.1 F8b : talons contre place (≈ 12 minutes)

Cas Lot Objet Action de l'utilisateur Attendu Contrôle automatique du journal Verdict Découvreur Heure
FIX1-MES.1 FIX1 F8b, point de départ Joueur en chaussures plates ou sans talons, debout, immobile 10 s. Noter l'heure. Personnage debout normalement, pieds au sol. lignes STATE PlayerCharacter sur ces 10 s (5 relevés) : meshZ=-90.0
FIX1-MES.2 FIX1 F8b, sans talons Toujours sans talons : s'asseoir sur la chaise (noter l'heure), rester 10 s, se lever (noter l'heure), rester debout et immobile 10 s. Regarder les pieds avant l'assise et après le lever. Après le lever : pieds posés sur le sol, ni suspendus ni enfoncés. juste après le lever : meshZ=-90.0 dans les relevés de la fenêtre ; M-Z : : 0 ligne sur cette fenêtre
FIX1-MES.3 FIX1 F8b, changement de tenue Changer de tenue : mettre les chaussures à talons (noter l'heure). Rester debout et immobile 10 s. Comparer à l'écran avec MES.1. Le personnage est un peu rehaussé par les talons : noter ce qu'on voit (« pieds au sol », « flotte », « trop haut »). relevés debout : meshZ= différent de −90 ; valeur attendue −90 + 12 × HeelHeight (par exemple −85,2 / −82,8 / −80,4 pour HeelHeight 0,4 / 0,6 / 0,8)
FIX1-MES.4 FIX1 F8b, talons et assise Avec les talons : s'asseoir (heure), rester 10 s, se lever (heure), rester debout immobile 10 s sans bouger. Regarder les pieds : le personnage flotte-t-il au-dessus du sol après le lever ? Noter aussi si cela dure plus de 1 à 2 s. Réponse visuelle sans ambiguïté : « flotte » ou « ne flotte pas ». Si M-Z a fonctionné, le flottement dure au plus environ 1 s (2 balayages de 0,5 s, LPDirectControlSubsystem.cpp:1211-1213). une ligne M-Z : PlayerCharacter maillage relatif Z <avant> -> <après> (gabarit …), debout sans meuble dans la minute qui suit le lever, ou son absence ; <avant> à comparer à la formule des talons ; COMMUN-22 : hauteur de talons et animation à lire sur la même ligne (format : à compléter, FIX1-MZ-IMPL.md)
FIX1-MES.5 FIX1 F8b, retour sans talons Reprendre les chaussures plates ou retirer les talons (changer de tenue). Répéter s'asseoir puis se lever (heures notées). Sans talons, au lever : retour à −90,0 ; aucune ligne M-Z : si MES.2 n'en avait pas. Si une ligne M-Z : apparaît sans talons, la place est en cause (pas les talons). relevés après le lever : meshZ=-90.0 ; nombre de lignes M-Z : sur la fenêtre : noter
FIX1-MES.6 FIX1 F8b, personnages non joueurs (facultatif) Si un personnage non joueur est visible et utilise un siège : l'observer s'asseoir puis se lever (heure), noter s'il flotte. Passer si aucun n'est visible. Même lecture que MES.4 ; noter « sans objet : aucun personnage non joueur à portée » sinon. lignes STATE <acteur> du personnage observé (nom lu dans le journal) ; lignes M-Z : visant ce nom (2 sur 18 visaient des personnages non joueurs, FIX1-F7-PRE.md:116)

3.2 F7b : animation « look » restée active (≈ 8 minutes)

Cas Lot Objet Action de l'utilisateur Attendu Contrôle automatique du journal Verdict Découvreur Heure
FIX1-MES.7 FIX1 F7b, référence Joueur debout, hors de tout meuble, immobile 10 s, avant l'action. Noter l'heure. Aucune animation de meuble. STATE PlayerCharacter … currentAnimation=-
FIX1-MES.8 FIX1 F7b, action « regarder » Devant le meuble de boutique, lancer l'action « regarder ». Noter l'heure du début puis celle de la fin de l'action (quand le personnage reprend la main). Laisser l'animation aller à son terme. Le personnage joue l'animation de regard, puis l'action se termine. pendant l'action : currentAnimation=fnt_…-look (nom d'animation finissant par look) avec anim=single:… ; noter la première heure où il apparaît
FIX1-MES.9 FIX1 F7b, après la fin Dès la fin de l'action, ne rien toucher 20 s : le personnage est debout, dans la même pièce. Noter à l'écran : posture penchée ou normale, tête tournée ou non. Posture normale. Cas à retenir : currentAnimation=fnt_…-look encore présent après l'heure de fin ; anim=single:…look encore présent (le clip joue encore) ou anim=bp:… avec la variable seule périmée
FIX1-MES.10 FIX1 F7b, changement de pièce Sortir du lieu (rue, autre pièce ou autre étage), marcher 10 s, noter l'heure et la posture. Puis revenir et marcher encore 10 s. Posture normale, marche normale. après le changement de pièce : currentAnimation= (valeur) et anim= ; COMMUN-8 montrait fnt_new038-f-0-look conservé dans la rue puis au café (STG-COMMUN8-DIAG.md:22)
FIX1-MES.11 FIX1 F7b, répétition Refaire MES.8 à MES.10 une fois sur un autre meuble offrant « regarder » (ou le même). Même résultat qu'à MES.9 : si currentAnimation reste en look deux fois, le défaut est reproductible. idem MES.9

Arrêt anticipé : si le personnage reste bloqué (animation qui ne se termine pas, plus de contrôle), noter l'heure, ne pas relancer d'action, passer au § 5.

4. Ce que Big Boss lira ensuite au journal

Journal : <build>\Windows\LifePlay\Saved\Logs\LifePlay.log du lancement jugé (le jeu en garde un exemplaire horodaté à chaque lancement). Lecture par Grep sur fichier nommé (un Grep de dossier saute les .txt ignorés par git, FIX1-F7-PRE.md § 2). Les heures du cahier se retrouvent sur les horodatages des lignes.

Motifs exacts (code lu) :

Motif Source Lecture
LPDebug persons : releve toutes les 2 s LPDebugSubsystem.cpp:649 1 ligne : trace active
LPDebug persons : STATE PlayerCharacter LPDebugSubsystem.cpp:414, :580 une ligne toutes les 2 s environ ; champs meshZ=, anim=, currentAnimation=
`M-Z : maillage relatif Z -> <après> (gabarit ), debout sans meuble ; HeelHeight=<%.3f ?> ; currentAnimation=<nom -
Fatal|Unhandled|Critical error|Assertion failed relevé commun 0 attendu

Commandes prêtes (adapter le chemin à la build de la séance) :

$J = "D:\Game\LifePlay_Build_5.8_Development_COM22\Windows\LifePlay\Saved\Logs\LifePlay.log"
Select-String -Path $J -Pattern 'LPDebug persons : STATE PlayerCharacter' | Select-Object LineNumber, Line
Select-String -Path $J -Pattern 'M-Z :'
Select-String -Path $J -Pattern 'currentAnimation=fnt_'

Seuils et lectures de décision (estimés ; la formule vient du dump 5.5, FIX1-F7-PRE.md:117) :

Constat au journal Lecture Suite
debout sans talons : meshZ=-90.0 partout, et debout avec talons : meshZ=-90+12×HeelHeight (−85,2 / −82,8 / −80,4) le décalage vient des talons : forcer −90 n'est pas un correctif ; M-Z retire un décalage voulu F8b : ne pas corriger en Blueprint ; M-Z doit lire la hauteur de talons (décision de l'utilisateur, FIX1-F7-PRE.md § 6 question 4)
meshZ ≠ −90 sans talons après un lever, ou lignes M-Z : sans talons la place (animation de meuble) est en cause F8b : correctif Blueprint à étudier en build 2
meshZ=-88.0 (7 cas sur 18 aux journaux antérieurs) hors grille des talons (2,0 / 12 ≈ 0,167) : chemin d'écriture inconnu noter heure et circonstances, item ouvert
M-Z : … Z <avant> de la forme −90 + 12 × H avec talons (COMMUN-22) confirme la cause « talons » par la ligne même idem première ligne
currentAnimation=fnt_…-look après l'heure de fin de l'action (MES.9, MES.10) et anim=single:…look le clip joue encore : effet visible probable F7b : correctif d'un nœud dans Person envisageable, build 1 seulement avant la porte du 2026-10-23 au soir (FIX1-F7-PRE.md:183)
currentAnimation=fnt_…-look après la fin, mais anim=bp:… seule la variable est périmée, sans effet à l'écran F7b : « ne pas corriger »
currentAnimation=- après la fin défaut non reproduit F7b : pas de correctif ; noter la date

Décompte de contrôle à recopier au BILAN : nombre de lignes STATE PlayerCharacter (≈ une toutes les 2 s : ≈ 600 pour 20 minutes), nombre de lignes M-Z :, valeurs de meshZ= distinctes.

5. Durée cible et arrêt

  • Durée cible : 20 à 30 minutes : préparation 3 min, F8b ≈ 12 min, F7b ≈ 8 min, relève du cahier ≈ 3 min.
  • Arrêt : fermer le jeu normalement (menu), pour que le journal se termine ; ne pas supprimer ni déplacer Saved\Logs\LifePlay.log. Un journal qui n'est pas celui de la séance est à ne pas utiliser : le fichier le plus récent porte l'heure de la séance.
  • Arrêt avant le terme : blocage, plantage, Fatal au journal, ou plus de 30 minutes : arrêter, noter l'heure et le dernier cas fait, ne pas relancer ; la séance partielle reste exploitable cas par cas.
  • À rendre à Big Boss : le cahier (heures, observations), le journal de la séance (fichier nommé ci-dessus), et la mention de la build utilisée (COMMUN-22 avec trace enrichie, ou COM21).

Fichiers à commiter

A Docs/Migration/etat/REL/FIX1/FIX1-MES.md (dépôt jeu, branche ue5.8), par le gardien sur ticket. Aucun autre fichier écrit. Pas de CHG réservé à ce livrable (protocole d'essai, aucune modification du jeu) ; pas de ligne d'index à ajouter.

Points à compléter ou à confirmer

  1. Complété par Big Boss (2026-10-20) : build COMMUN-22 et format de la ligne M-Z : enrichie (voir § 1 et § 3).
  2. Non vérifié : nom exact des états HeelHeight visibles au journal COM21 (la COM21 n'a pas la trace enrichie : les talons ne se lisent alors que par meshZ=).
  3. Estimé : formule −90 + 12 × HeelHeight (dump 5.5, pas relu en 5.8) ; cadence « environ 600 relevés pour 20 minutes ».
  4. Non mesuré : aucune exécution de la séance ; aucun journal produit.