5.3 KiB
5.3 KiB
Fiche STG-WALK — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
DIAG de la demande de l'utilisateur relayée par Big Boss (2026-10-13), dans l'alpha : « les poses walk pour Bridget et Michael ;
on ne peut pas laisser le personnage principal glisser sur le sol ». Lecture seule, sans copie UE. Lot STG, registre
STG-TACHES.md.
1. Mesures (établies)
| Contrôle | Commande | Résultat |
|---|---|---|
Ligne « Marche : animation » (journal de WalkAnim) |
grep -c sur COMMUN-2 définitif, COMMUN-3 S1 et S2 fermée |
0 / 0 / 0 ; « physique sans controleur » : 1 / 1 / 1 (la marche démarre bien) |
Fichier LPAnimTarget.ini dans le jeu empaqueté |
ls <archive COMMUN-3>\Windows\LifePlay\Saved\Config\Windows\ |
absent (seulement GameUserSettings.ini, LPKeyboard.ini) |
| Clips | Content/Quaternius/UAL/B_Walk_Loop.uasset (523 104 o), M_Walk_Loop.uasset (513 220 o) |
présents dans la copie |
| Cuisson des clips | Config/DefaultGame.ini l. 54 |
+DirectoriesToNeverCook=(Path="/Game/Quaternius") (lot AP7 : « livrés par mods, jamais dans le jeu ») ; Saved/Cooked/Windows/LifePlay/Content/Quaternius absent |
| Dépendances des clips | noms /Game/… lus dans les deux .uasset |
seulement leur squelette : /Game/Heavy/Daz/Bridget/bridget_gp_Skeleton et /Game/Heavy/Daz/Michael/michael_Skeleton, tous deux cuits (/Game cuit en entier, ERR-026) |
2. Causes (établies) : deux verrous l'un derrière l'autre
- Garde :
Walkn'appelleWalkAnimque siLPAnimRedirect::IsGameTarget()(LPDirectControlSubsystem.cpp). Cette fonction lit[LifePlay.Anim] Target=gamedansSaved/Config/Windows/LPAnimTarget.ini(Plugins/LPAnimCore/…/LPAnimRedirect.cpp). Ce fichier n'existe pas dans un jeu empaqueté, ni dans un nouveau dossierSaved(REL-SAV) : la garde est fausse. - Clips absents du paquet : même avec la garde levée,
LoadObject(LPAnimRedirect::ClipPath("B_Walk_Loop"))rendrait nul./Game/Quaterniusest exclu de la cuisson.WalkAnimsort alors en silence (if (!WalkCycle) return;). Le joueur glisse.
Usage de IsGameTarget dans Source/ : seulement LPDirectControlSubsystem.cpp (grep -rn). Il n'est pas modifié (contrainte de Big
Boss : il peut servir à d'autres redirections, dont celles des scènes de sexe dans l'addon).
3. Contrôles demandés
RestoreAnimà l'arrêt :WalkAniml'appelle dès que la vitesse passe sous 20 (touches relâchées). Il rend l'Anim BP capturée au départ de la marche (SavedAnimClass, ex.Daily_F_C, en modeAnimationBlueprint) ou l'animation simple d'origine. Établi par lecture.- À l'entrée dans une action ou une scène : défaut (établi par lecture). Quand un menu, la boîte de scène ou
SexOnbloque la marche,Tickne passe plus parWalk, donc ni parWalkAnimni parRestoreAnim. Si la marche est coupée en plein pas (scène qui s'ouvre, interaction), le maillage reste sur le cycle de marche jusqu'au prochain passage dansWalk. Avec les clips absents, ce défaut ne se voyait pas.- Correction : appeler
RestoreAnimdans la branche bloquée deTick. Elle est sans effet si rien n'a été capturé.
- Correction : appeler
- Homme ou femme après un changement de sexe (Michael → Bridget) :
IsMaleest relu à chaque appel deWalkAnim. La capture de l'Anim BP est refaite à chaque nouvelle marche, puisquebAnimCapturedest remis à faux parRestoreAnim. Le choix suit doncIsMaledès la marche suivante. Établi par lecture ; essai à faire en jeu.
4. Correctif proposé
C++ (LPDirectControlSubsystem.cpp, sans asset) :
- garde locale :
(LPAnimRedirect::IsGameTarget() || FPlatformProperties::RequiresCookedData()), en plus du!bSandboxexistant :- jeu empaqueté : la marche est animée ;
- éditeur : comportement inchangé, piloté par l'
.ini; IsGameTargetn'est pas modifié ;
- chemin du clip : d'abord la copie cuite (§ 4, asset), puis
LPAnimRedirect::ClipPath(éditeur, mods) ; - un avertissement unique si aucun des deux ne se charge (« Marche : clip … introuvable »), au lieu de la sortie silencieuse ;
RestoreAnim()dans la branche bloquée deTick(§ 3).
Asset (nécessaire, sinon le C++ ne suffit pas) : copier les deux clips hors de /Game/Quaternius, dans un dossier cuit, sans
toucher aux originaux.
- Proposé :
/Game/Heavy/Daz/Bridget/Anim/B_Walk_Loopet/Game/Heavy/Daz/Michael/Anim/M_Walk_Loop, à côté de leur squelette. - Duplication par l'éditeur (
EditorAssetLibrary.duplicate_asset,lp-mcp-bp, sous jeton UE et instantané), environ 1 Mo de paquet en plus. - Une copie du fichier sur disque est écartée : le nom de paquet est inscrit dans le
.uasset.
Alternatives écartées :
- retirer
/Game/QuaterniusdeDirectoriesToNeverCook: 132 clips, 65 Mo, contraire à la décision AP7 ; - livrer les clips par un mod :
Mods/est vide dans les builds.
5. Essai prévu (COMMUN-4)
- ZQSD avec Michael, puis avec Bridget : les jambes marchent, sans glissement. Au journal, une ligne « Marche : animation M_Walk_Loop » ou « … B_Walk_Loop ».
- Arrêt : la pose de repos revient.
- Marche coupée par une scène : la pose de la scène s'affiche, pas la marche.
6. Fichiers à commiter
Docs/Migration/etat/ST/STG/STG-WALK-DIAG.md.