LifePlay-Revival/Docs/37_Feuille_De_Route_Alpha2.md
edujiro5972 56dfcfc3d2 LifePlay UE 5.8 : état de développement au 2026-10-20
Tickets : PUB-20261020-T1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 17:35:10 +02:00

197 lines
13 KiB
Markdown

# 37. Feuille de route : alphas 2026.10.2.2a et 2026.11.3.1a
Rédigé le 2026-10-20 par Big Boss (lot ROAD1, DOC-37), à partir de la feuille de route donnée par l'utilisateur ce jour
et des tâches en attente de `etat\BOSS\BOSS-ETAT.md` (§ PAUSE, En cours, Décisions, Après l'alpha) et de la reprise REP1.
Règle de tri donnée par l'utilisateur : les tâches en attente sont classées (urgence, fix, quick gain, amélioration) et partent
dans la **première build** ; le reste de la feuille de route part dans la **seconde build**.
Statut de départ : jeu `ue5.8` à `cdd69d9`, publié `pub/ue5.8` `8084622` ; addon `35a9e2c` (= `origin/ue5.8`, Forgejo) ;
archive de la copie avant reprise : `D:\Game\LifePlay_Backup_5.5\ARCH58-20261020\` (copie sans le régénérable, 24 673 fichiers,
11,2 Go, robocopy 0 échec, bundles `jeu-5.8` et `modules-5.8` vérifiés, manifeste sha256).
## 1. Build 1 : alpha 2026.10.2.2a — 5 jours glissés (2026-10-20 → 2026-10-24)
### 1.1 Feuille de route de l'utilisateur
**Fix**
| Id | Tâche | Lien avec l'existant |
|---|---|---|
| F1 | Analyser et corriger tous les défauts relevés par l'audit du générateur de personnage (`D:\Game\LifePlay-Sandbox-5.8\Docs\CG\REF`) | CGREF1 (CHG-368), STE-H3i (378 Accessed None `chargen`) |
| F2 | Empêcher les caméras de sortir de la pièce | CAM B2l (caméra qui évite les meubles), CAM B1e Q1-Q5, R-B1f |
| F3 | StreetMap ne s'affiche plus normalement en 5.8 (par rapport à la 5.5) | C4996 StreetMap (`lp-ue-compat`), plugin désactivé dans l'addon |
**Amélioration**
| Id | Tâche |
|---|---|
| A1 | Caméra à la première personne : ajouter le mouvement sur l'axe Y (aujourd'hui X seul), mouvement (X, Y) |
| A2 | Caméra à la troisième personne : étudier les jeux de référence pour fixer le meilleur paramétrage |
**Paramétrage du clavier**
| Id | Tâche |
|---|---|
| K1 | Auditer le mappage des touches → document de référence (lien : TSC1, Insert et Tilde, `Config/DefaultInput.ini`) |
| K2 | Liste déroulante des dispositions QWERTY et AZERTY avec bouton « Apply » (d'après les jeux les plus populaires) |
| K3 | Entrée pour définir une action |
| K4 | Entrée pour définir une interaction (s'asseoir, parler) |
| K5 | Saisie acceptant les clics de souris et les combinaisons de touches |
| K6 | Section de scène des menus de contrôle : bloc des mouvements de caméra, bloc du déplacement des personnages, entrée pour afficher le panneau d'action |
### 1.2 Tâches en attente avant le gel, triées
**Urgence** (avant tout autre travail de la build)
| Id | Tâche | Pourquoi |
|---|---|---|
| U1 | Recompiler l'addon et valider les sources C++ de SBXTYP-R2 (commitées et poussées sans build rejoué) | code publié non vérifié |
| U2 | Confirmer la visibilité des dépôts sur le Forgejo (jeu public ? addon privé ?) | l'addon contient le référentiel CG |
| U3 | Rotation de Big Boss et des sessions saturées (Low · MEN1, Medium-High > 250 k) | règle de rotation |
| U4 | Copie au profil des skills révisés (liste et MD5 attendus d'EVAL W6, non consignés) | skills du profil peut-être en retard |
**Fix**
| Id | Tâche |
|---|---|
| F4 | `LifePlay.uproject` : remettre `TargetAllowList: Editor` sur `McpAutomationBridge` (perdu, ERR-140) |
| F5 | 7 fiches d'état de l'addon à constat PubCheck (ENV1-T1, SHP1-T1, SHP1-T2, PROJ1-T3-DOC, UEM1-T5 à T7) |
| F6 | ERR-042 : personnages de partie dans `Content\Saves` (reste) |
| F7 | ERR-011 : avertissement CenterBrow ; animation « look » restée active ; accessoires détachés |
| F8 | C4701 : `Aim` à initialiser ; meshZ au lever dans le Blueprint |
| F9 | Écart CHG-329 (« 10 sur 60 » contre « 12 sur 100 ») |
| F10 | README racine qui annonce encore V2.0 |
**Quick gain**
| Id | Tâche |
|---|---|
| Q1 | TSC1 : essai en jeu de la console de scènes (Insert, `tf_start`, Entrée) et réponse au joueur (`TSC1-DIAG-01.md` § 5) — à joindre à K1 |
| Q2 | Ajouter `find` aux fonctions sûres de la garde lp-mcp (refus à tort en TSC1) |
| Q3 | Employer `Tools\CopieEtat.ps1` pour les contrôles GO / FIN de Big Boss |
| Q4 | PIPE1 : choisir l'outil de W4 (a / b / c ; VERIF1 conseille b) et le premier outil (`Vague.ps1` ou `VerifLivrable.ps1`) |
| Q5 | PIPE1 : approuver le recensement `PIPE1-INV-01-SUBSTITUTION.md` et la règle « mécanique = script » (`sk-protocol`, `lp-lot`) |
| Q6 | Décider du tag local `v2026.10.2.1a` (non poussé) |
| Q7 | Licence d'`ue-cpp-build` ; 228 fichiers `synced/` ; `etat\AG\ORGA2\` ; session inconnue `Docs/BAR` (trier, suivre ou écarter) |
**Amélioration** — **reportées en build 2** (décision de l'utilisateur, 2026-10-20 : « A3 à A9 passent en build 2 ») ; numéros gardés
| Id | Tâche |
|---|---|
| A3 | G2 : nettoyage U9 de la grille A3 (banc `LPTestStringCompat` étendu, 56 `LPMeshCompat`, 6 `LPNavigationHelpers`), SPEC puis mesure M0 — lié à la modernisation de la build 2 |
| A4 | B2-ter : mesure de cadence par `logman`/`wpr` puis PresentMon `--etl_file`, journal AMD Adrenalin ou CSV Profiler (Development) |
| A5 | REF2 : 15 contradictions, statuts, orphelines, étiquette « historique » |
| A6 | OPT0 A3 et B1 |
| A7 | PIPE1 : SPEC de W1, W2, W3, W5, W6, W8 ; réponse attendue de Medium-xHigh · PIPE1 sur le modèle de mesure |
| A8 | AMEL1 : mesure P4 et essai R4 (`lp-mcp-bp` en Sonnet, ORGA2) |
| A9 | Après l'alpha : CAM N2 (ligne de journal de refus), STG-POST1 (6 extérieurs), STG-POST2 (S-F2), B2q-b2 à b4, bonus v5.26 (grille), essai GPU de 45 min (STG), Scope Insight RT (EVAL-FAB-4) |
**Échéances dans la fenêtre** : G1 Sentry **suspendu** (utilisateur, 2026-10-20 : « on suspend G1 ») ; passage des traces `TRACE-2026-11` le 2026-11-01 (pendant la build 2).
## 2. Build 2 : alpha 2026.11.3.1a — 10 jours glissés (2026-10-25 → 2026-11-03)
### 2.1 Réforme du processus d'animation
1. Analyser et auditer le processus en place pour évaluer la difficulté d'implémentation → document de référence.
2. Comparer avec les processus d'animation classiques des personnages.
3. Permettre plusieurs opérations du même type.
4. Clé `ANIMATION_PRIORITY` :
- `default` : jouée quand aucune autre pose n'est présente ;
- `override` : surcharge `default` ;
- `randomize` : si deux poses sont enregistrées pour la même action, tirage au sort ;
- `forced` : pas de tirage, l'animation est imposée ;
- redéfinissable quand `ANIMATIOND_ID` sert de référence d'appel depuis un `.lpaction`.
5. Clés d'une animation composée :
- `ANIMATION_IN` (pose d'entrée), `ANIMATION_IDLE` (pose d'attente, en boucle), `ANIMATION_OUT` (pose de sortie) ;
- `ANIMATION_STEP` : numéro d'étape, délai, pose à jouer, effet sonore ; poses jouées dans l'ordre indiqué ;
- `ANIMATION_WEIGHT` : pourcentage d'avantage au tirage ;
- `ANIMATION_LINKED_ASSET` : asset lié pendant l'animation ;
- `ANIMATION_TARGET_ASSET` : asset lié à la pose (position relative à la pose) ;
- `ANIMATION_SOUND_EFFECT` : liste d'effets sonores à charger ;
- `ANIMATIOND_ID` : identifiant qui appelle la chaîne complète depuis un `.lpaction`.
6. Définition et chargement dans un fichier `.lpanimation` (format YAML) ou directement dans un `.lpaction`.
7. Règles : une clé `ANIMATION` seule dans un `.lpaction` vaut `ANIMATION_PRIORITY: default` ; tirage au sort pour `randomize`
ou quand deux `override` entrent en collision.
### 2.2 Optimisation
- Pipeline de rendu pour automatiser les tests (lien : `lp-perf`, modèle de mesure PIPE1).
- Qualité du rendu des personnages.
### 2.3 Modernisation
- Audit puis remplacement des modules obsolètes UE 4 et 5.5 par leurs équivalents UE 5.8 (lien : doc 30, grille A3, A3 de la build 1).
### 2.4 Dépréciation
- L'ancien module de réglages est forké et désactivé avant son retrait à la release suivante ; le menu redirige vers le nouveau
panneau du menu général.
### 2.5 Interaction
- Parler à un PNJ affiche la liste des opérations permises par le mécanisme de filtrage.
- Une action affiche la liste des opérations permises dans une pièce par le même mécanisme.
- Action « s'asseoir » : déterminer l'identifiant unique (`uniq_id`) à employer ; vérifier que la propriété du siège est
verrouillée et qu'aucun PNJ n'est à proximité (10 cm) ; déverrouiller le siège, jouer `ANIMATION_IN` puis `ANIMATION_IDLE` ;
jouer `ANIMATION_OUT` dès qu'une touche met le personnage principal en mouvement.
- Documentation en anglais et en français, et une démo.
### 2.6 Organisation IA
- Commandes pour les tâches répétitives (moins de jetons) — lien : recensement PIPE1-INV-01, Q4 et Q5.
- Processus de découpage des projets complexes : Ouverture → Interview → Analyse des besoins → Définition des objectifs →
Cahier des charges + RACI → Découpage des objectifs en tâches plus fines → Analyse des tâches → Analyse des risques →
Conception → Codage → Compilation → Test → Validation → Fermeture.
- Skills « codeur C++ et Blueprint » et « testeur ».
- Définition des nouveaux agents.
### 2.7 Reportées de la build 1
A3 à A9 du § 1.2 (G2, B2-ter, REF2, OPT0 A3 et B1, SPEC PIPE1, mesure P4 et R4, lots d'après l'alpha) : décision de l'utilisateur
du 2026-10-20. A3 (G2) se joint à la modernisation (§ 2.3), A7 (PIPE1) à l'organisation IA (§ 2.6).
## 3. Build 1 : ordre des lots et sessions (proposition de Big Boss, à approuver)
Contrainte : **une seule copie UE** (compilation, MCP, éditeur, jeu lancé, paquet) sous le jeton de Big Boss ; tout ce qui ne
touche pas la copie (CART en lecture de fichiers, recherche, doc) tourne en parallèle. Chaque lot suit `lp-lot` (CART → SPEC →
IMPL → BUILD → VAL distincte → DOC → tickets) ; commits par vague du gardien en fin de journée.
### 3.1 Lots
| Lot | Contenu | Session (modèle) | Copie UE |
|---|---|---|---|
| ADD1 | U1 : build de l'addon, VAL des sources SBXTYP-R2 | Medium · OPT0-G0 (`local_3df0f077`, opus medium) → « Medium · ADD1 » | oui (1er jeton) |
| QG1 | Q2, Q3, Q7 (tri), F4, F5, F9, F10 : quick gains et petits fix de texte ou de config | Sonnet · REP1 (`local_345cbd76`, sonnet) → « Sonnet · QG1 » | non (F4 : une ligne du uproject, sous instantané) |
| KEY1 | K1 (audit du mappage, doc de référence) + Q1 (TSC1) ; puis SPEC de K2-K6 | Lower · TSC1 (`local_fb6a93ea`, haiku, MCP déjà donné) → « Lower · KEY1 » pour la lecture ; SPEC par Sonnet · REP1-PUB | lecture MCP (2e jeton) |
| CG2 | F1 : défauts de l'audit CG (`Docs\CG\REF`), CART puis IMPL C++ et Blueprint | Medium-xHigh · PIPE1 (`local_c917cf01`, opus xhigh) → « Medium-xHigh · CG2 » | IMPL : 4e jeton |
| CAM2 | F2 (caméras hors de la pièce) + A1 (vue à la 1re personne en X, Y) | session neuve (Medium-High a > 250 k ; CAM y garde son contexte : passation écrite d'abord) | IMPL : 5e jeton |
| CAM3 | A2 : étude du paramétrage de la vue à la 3e personne (recherche) | Sonnet · REP1-PUB (`local_224d5242`) → « Sonnet · CAM3 » | non |
| STM1 | F3 : StreetMap en 5.8 (CART 5.5 contre 5.8, puis correctif) | Medium (`local_232546c8`, opus medium) → « Medium · STM1 » | CART : non ; IMPL : 3e jeton |
| KEY2 | K2-K6 : panneau de touches (disposition QWERTY / AZERTY + Apply, action, interaction, souris et combinaisons, section de scène) | Medium · ADD1 après ADD1 (opus) | IMPL : 6e jeton |
| FIX1 | F6, F7, F8 : petits correctifs Blueprint par MCP | Lower · KEY1 après K1 (`lp-mcp-bp`) | 7e jeton |
| REL2 | VAL commune, Shipping `2026.10.2.2a`, essai en jeu par l'utilisateur, vague du gardien, publication `pub/ue5.8` | Big Boss (session neuve, U3) | dernier jeton |
Gestes de l'utilisateur hors lots : U2 (visibilité Forgejo), U3 (nouvelle session Big Boss, archivage de Low · MEN1 et
Medium-High après copie des transcriptions), U4 (copie des skills au profil), Q4, Q5, Q6 (décisions PIPE1 et tag).
### 3.2 Calendrier (5 jours glissés)
| Jour | En parallèle (hors copie UE) | File de la copie UE |
|---|---|---|
| J1 (10-20) | QG1 ; CART de CG2, STM1, CAM2 ; CAM3 ; gestes U2-U4, Q4-Q6 | ADD1 (build + VAL) → KEY1 (lecture MCP) |
| J2 (10-21) | SPEC de CG2, CAM2, STM1 ; SPEC de KEY2 (d'après K1 et CAM3) | STM1 (IMPL + build) → CG2 (IMPL + build) |
| J3 (10-22) | VAL de STM1 et CG2 ; doc K1 | CAM2 (IMPL + build) → FIX1 |
| J4 (10-23) | VAL de CAM2, FIX1 | KEY2 (IMPL + build) |
| J5 (10-24) | DOC et tickets de tous les lots | VAL de KEY2 → REL2 (Shipping, essai en jeu, vague, publication) |
### 3.3 Risques
1. **KEY2 est le plus gros lot** (panneau d'interface, capture souris et combinaisons, deux dispositions) : **tout K2-K6 reste
en build 1** (décision de l'utilisateur, 2026-10-20 : « non on laisse tout en build 1 »). Parades : SPEC de KEY2 dès la fin
de K1 (J1-J2) ; écriture du code C++ / UMG hors copie UE dès le J2 (seuls compilation, éditeur et essai prennent le jeton) ;
FIX1 avancé au J2 si CG2 finit tôt, pour laisser au KEY2 le J3 soir et tout le J4 sur la copie UE.
2. F1 dépend de l'ampleur de l'audit CG : la CART de CG2 donne le compte des défauts au J1 ; au-delà d'une journée d'IMPL, tri
par gravité avec l'utilisateur.
3. File unique de la copie UE : un build rouge décale toute la file ; Big Boss réordonne, jamais deux jetons ouverts.
4. K6 et F1 touchent du contenu réservé aux adultes : les livrables suivent la règle du doc 27 (rien de tel sur un dépôt
public) ; le référentiel CG reste dans l'addon.