LifePlay-Revival/Docs/Migration/etat/CAM/CAM-CIBLE.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

13 KiB
Raw Blame History

Fiche CAM-CIBLE — Niveau N2 — Modèle prévu opus | utilisé claude-opus-5-5 — Agent orchestrateur (session « Camera ») — Skills lp-lot, sk-orchestrate

CAM-CIBLE : écart à la cible et plan de réduction proposé (2026-10-11)

Hors gabarit : proposition de l'orchestrateur (phase 1). Rien n'est décidé ici : chaque choix revient à l'utilisateur (§ 4). Base : CAM-AUDIT.md (identifiants K1-K8). Copie D:\Game\LifePlay-master 5.8, HEAD 4283c13.

1. Cible de l'utilisateur (citée)

« Je souhaite que 3 caméra suivent les mouvments du MC. 1 caméra à la première personne. caméra à la 3ième personnes, lors de l'initialisation, elle est situé à 1,75m du MC est regarde toujours dans sa direction, elle suit ses ses déplacvements.. La 3ièmé caméra est collé au plafon au centre est observe la salle ou elle est toujours à moins de 3m de haut du MC. les caméras de rues prennent toujours les rues en enfilades. »

2. Écart, cible par cible

Cible Existant le plus proche Écart
C1 1re personne du MC K5 FirstPersonSM (composant FirstPerson_C de Person), attaché à la tête par PC SwitchCamera n'existe que pendant le sexe ; vise aussi les partenaires (SexPersons[i]) ; une instance par Person ; regard souris par AddWorldRotation
C2 3e personne, 1,75 m, regarde le MC, le suit K6 FollowView (C++, mort : 340 cm derrière, visée pawn + 50 cm, FOV 70, collision, lissage) ; K2 CameraScene + Room.AutoCamera (regarde la tête du MC, recalage ponctuel) aucune caméra active ne suit le MC ; FollowView a déjà la mécanique (suivi, collision, lissage) mais distance 3,40 m, ne tourne que depuis Birdview pendant la marche, et n'est appelée par personne
C3 plafond, centre de la salle, < 3 m au-dessus du MC aucun à créer ; le plafond WallT des pièces est à Z relatif 2040 × échelle 0,2-0,4 = 4,1 à 8,2 m au-dessus de la racine de Room (calcul, CAM-T3 § 3.5) : la règle « < 3 m au-dessus du MC » contredit « collée au plafond » dans la plupart des pièces
Rues en enfilade aucune ; K1 Birdview = vue de dessus de la ville (carte) ; 7 lieux extérieurs = des Room à échelle Z 0,01 à définir : le jeu n'a pas de rue 3D parcourue ; les routes UStreetMap existent en 2D (RoadPoints, sans hauteur), elles pourraient donner l'axe d'une rue
Moins de caméras 6 sortes de caméras de vue (4 placées, 1 composant × N Person, 1 C++ morte) voir § 3

3. Plan de réduction et de repositionnement proposé (options)

3.1 Bilan proposé (à valider)

Caméra Proposition Motif
K6 FollowView (C++) réutiliser pour C2 (distance 175 cm, déclenchement hors Birdview) ou supprimer mécanique de suivi déjà écrite, jamais branchée
K5 FirstPersonSM devient C1 ; option : ne garder que l'instance du MC (POV des partenaires supprimée) ou garder l'existant une instance par PNJ, utilisée seulement en sexe
K2 CameraScene remplacée par C2 / C3 pour la pièce ; reste pour les scènes scriptées si elles sont gardées surchargée (pièce, scène, sexe, CharGen)
K3, K4 CameraFullBody / CameraPortrait garder pour le CharGen (hors jeu) ou fusionner en une caméra + zoom ne suivent pas le MC, hors cible
K1 Birdview garder comme carte de la ville (hors cible « MC ») ou en tirer les caméras de rue vue de navigation de la ville
K7, K8 SceneCapture hors lot (rendus vers texture, pas des vues) —
C3 plafond à créer aucune base
Rues à créer selon la définition retenue (Q1) aucune base
Résultat visé si tout est retenu : en jeu, C1 + C2 + C3 (+ caméras de rue) au lieu de CameraScene, FollowView morte et
N instances FirstPersonSM ; Birdview et les caméras de CharGen restent à part.

3.2 Deux voies d'implémentation (phase 2)

  • Voie A — C++ (sous-système LPCameraSubsystem, nouveau), sur le modèle de LPDirectControlSubsystem et LPSecondScreenSubsystem (ticker, acteurs transitoires, « aucun Blueprint n'est modifié ») : crée C1 (attachée au socket head du MC), C2 (reprise de FollowCamera, 175 cm), C3 (centre de la boîte de la pièce, Z = min(plafond − marge, Z du MC + 300 cm), regard vers le MC) ; commutation par une touche. Avantages : pas d'écriture dans GI, Room, PC, Person (assets que STE vient de commiter), réversible par git, compilable et testable. Risques : coexistence avec les SetViewTargetWithBlend des BP (Birdview, HideRender, fin de sexe) qui reprendraient la vue ; il faut une règle de priorité.
  • Voie B — Blueprint par MCP : modifier Person (C1), Room / PC (C2, C3, commutation), niveau CentralLondon (caméras de rue). Avantage : intégré aux BP existants. Risques : écritures dans des assets partagés avec STE et U8 (GI, Room, Person, carte), instantanés et gel de la copie UE, recuisson ; .umap modifié (niveau de jeu).
  • Mixte : C++ pour C1/C2/C3, et seulement les points d'entrée BP indispensables (par ex. HideRender / SwitchCamera).
  • Avis d'arbitrage de Big Boss (2026-10-11) : voie A sans conflit avec les autres lots (compilation et build ordinaires dans la file) ; voie B touche les assets de STE (GI, Room) et invalide le candidat Shipping d'U8 : seulement après la porte T11 d'U8 ou sur un gel décidé par l'utilisateur. CAM-T4 inscrite au rang 2, derrière le BUILD-FIN d'U8. Choix : utilisateur.
  • Contrainte de file (Big Boss, 2026-10-11) : après T11, STE écrit aussi dans GI (IMPL C0, GI.destroyDummy) ; CAM et STE passent l'un après l'autre (instantané et commit chacun), ordre fixé par Big Boss ; la SPEC de phase 2 doit lister précisément les fonctions de GI touchées par CAM.

3.3 Étapes proposées (chacune sur décision)

  1. CAM-T4 (phase 1b, lecture seule, copie UE) : commandlets pour fixer les réglages non établis (§ 5).
  2. CAM-SPEC : spécification exécutable de la voie retenue (fichiers, ordre, repli, critères de VAL).
  3. CAM-IMPL (instantané Tools/Snapshot.ps1 -Lot CAM, ticket TAG CAM-avant), CAM-BUILD, CAM-VAL (agent distinct), test en jeu par l'utilisateur (pièce, rue, scène, sexe, CharGen, sauvegarde et rechargement), puis DOC (CHG) et ticket au gardien.

4. Questions à trancher par l'utilisateur

  • Q1 Rues : qu'appelles-tu « rue » dans le jeu ? (a) la vue de la ville Birdview ; (b) les 7 lieux extérieurs (Room « dehors ») ; (c) une nouvelle vue 3D au niveau du sol le long des routes StreetMap. Et « en enfilade » = caméra placée au bout de la rue, regard dans l'axe de la rue : d'accord ?
  • Q2 C2, 1,75 m : distance horizontale au MC, distance totale, ou hauteur de la caméra ? Hauteur de visée (tête, poitrine) ? Placée derrière le MC (regard dans le sens de sa marche) ?
  • Q3 C3, plafond : quand le plafond est à plus de 3 m au-dessus du MC (cas de la plupart des pièces : 4 à 8 m au-dessus de la racine), quelle règle prime : « collée au plafond » ou « < 3 m au-dessus du MC » ? Proposition : hauteur = min(plafond, MC + 3 m), au centre de la pièce, regard vers le MC.
  • Q4 Commutation : la touche C (SwitchCamera) passe-t-elle C1 → C2 → C3 hors sexe ? Pendant le sexe, garde-t-on le cycle actuel des vues POV des partenaires ?
  • Q5 C1 : vue 1re personne du MC seul (on retire FirstPersonSM des PNJ), ou garder la POV des partenaires ?
  • Q6 Caméras hors cible : Birdview (carte de la ville) et les 3 caméras du CharGen / contacts restent-elles telles quelles, ou entrent-elles dans la réduction ?
  • Q7 Voie d'implémentation : A (C++ seul, aucun BP modifié), B (BP par MCP) ou mixte ?
  • Q8 Scènes scriptées : les commandes cameraMove / cameraFocus / cameraLock (aucun module livré ne s'en sert) doivent-elles continuer à piloter une caméra (laquelle) ?
  • Q9 Défauts constatés : le pivot de l'acteur Room par CameraFocus, les chaînes mortes (minuterie AutoCamera, suivi mort dans Person) et le code FollowCamera entrent-ils dans le lot CAM ?
  • Q10 Phase 1b : d'accord pour CAM-T4 (≈ 15 min de copie UE, lecture seule, derrière U8) ?

4b. Réponses de l'utilisateur (2026-10-11, citées)

Second message : « 6 oui. Q2 oui Q3 à partir du sol Q8 oui. a 10 oui » « la rue est une des vue exterieur 2, 1,75m du MC est en hauteur la taille du MC + 50cm. 3 on colle réellement au plafond sauf en extérieur. ou on est à 3,80m. 4 oui. 5 les deux. par modification des Blueprints. 8 oui. 9 oui. Explique le 6 un peu mieux »

Q Décision lue Reste à préciser
Q1 (b) rue = une des vues extérieures (les 7 lieux extérieurs, Room à échelle Z 0,01) —
Q2 C2 à 1,75 m du MC ; hauteur de la caméra = taille du MC + 50 cm ; regard vers le MC confirmé (« Q2 oui »)
Q3 C3 réellement collée au plafond en intérieur (la règle « < 3 m » tombe) ; en extérieur, à 3,80 m au-dessus du sol confirmé (« Q3 à partir du sol »)
Q4 oui : touche C = C1 → C2 → C3 hors sexe ; cycle POV actuel gardé pendant le sexe —
Q5 les deux : POV du MC et des partenaires —
Q6 « 6 oui » : recommandation retenue : Birdview gardée telle quelle ; CameraFullBody et CameraPortrait gardées pour le CharGen et les contacts (fusion non retenue) ; CameraScene perd son rôle de pièce (remplacée par C1-C3), garde le CharGen lecture de l'orchestrateur du « oui »
Q7 voie B, Blueprints, après la porte T11 d'U8 (« a ») —
Q8 oui : les commandes de scène (cameraMove, cameraFocus, cameraLock) pilotent C2 confirmé (« Q8 oui »)
Q9 oui : CameraFocus, chaînes mortes et FollowCamera dans le lot —
Q10 oui : CAM-T4 (phase 1b) accordée BUILD-DEMANDE envoyée à Big Boss

4c. Réponses de l'utilisateur aux questions de la SPEC (CAM-SPEC.md § 4, Q1-Q20), 2026-10-11, citées

« q4 lissage et évitement, le reste oui » ; puis « approuvé » (amendement de la SPEC et suite).

  • Q4 : C2 en poursuite lissée avec évitement des murs (portage en BP de la mécanique de FollowCamera : minuterie, balayage anti-collision, interpolation), au lieu de l'attache rigide proposée → amendement de la SPEC (CAM-T5b).
  • Toutes les autres propositions de la SPEC sont retenues : Q1 derrière le MC, 175 cm à l'horizontale ; Q2 taille = tête − sol + 10 cm ; Q3 regard vers la tête ; Q5 C3 intérieure fixe, rotation qui suit le MC ; Q6 enfilade au bout opposé au MC ; Q7 C2 à l'entrée, mode gardé non sauvegardé ; Q8 étape hors POV = caméra de pièce ; Q9 constructeur et édition de personnage gardent CameraScene ; Q10 flèches / molette / souris sans effet en pièce (premier passage) ; Q11 C1 masque cheveux, soleil, mur, pas de regard souris ; Q12 scène hors pièce → C2 ; Q13 cameraMove détache C2, lock inchangé ; Q14 AutoCamera supprimée ; Q15 FollowCamera C++ supprimée ; Q16 sonde B0 accordée ; Q17 post-traitement de CameraScene copié ; Q18 Person non touchée ; Q19 un seul CameraActor pour C2 et C3 ; Q20 retour à l'utilisateur si le MCP échoue.
  • Redump -Pins -Exec de Birdview, ContactMenu, Person (≈ 3 min, lecture seule) : accordé (« le reste oui »).

5. Phase 1b proposée : CAM-T4 (commandlets en lecture seule, copie UE)

Options vérifiées dans Source/LifePlayEditorTools/LPDumpComponentsCommandlet.h:8-11 et LPDumpCDOCommandlet.cpp:24-30.

# Commande (-run=) But
1 LPDumpComponents -Map=/Game/Scenes/CentralLondon -Filter=Camera -All transform, FOV, post-traitement de CameraScene, CameraFullBody, CameraPortrait
2 LPDumpComponents -Map=/Game/Scenes/CentralLondon -Filter=Birdview -All position, projection, OrthoWidth de Birdview
3 LPDumpComponents -BP=Birdview -All composants et défauts de la classe
4 LPDumpComponents -BP=Person -All FirstPersonSM : transform relatif, FOV, bAutoActivate
5 LPDumpComponents -BP=FirstPerson -All défauts de la classe C1
6 LPDumpCDO -Class=/Game/BPs/GM.GM_C -Out=… -Props=DefaultPawnClass,PlayerControllerClass classes par défaut
7 LPDumpCDO -Class=/Game/BPs/PC.PC_C -Out=… -Props=PlayerCameraManagerClass gestionnaire de caméra
8 LPDumpCDO -Class=/Game/BPs/GI.GI_C -Out=… -Props=CameraSceneTransformDefault position par défaut de la caméra de pièce
9 LPDumpFunction -BP=Birdview -Fn=* graphe de Birdview (relais vers Room, suivi éventuel)
10 LPDumpFunction -BP=ContactMenu -Fn=* SelectCamera, ReturnFromChargen
11 LPDumpFunction -BP=Person -Fn=EventGraph redump à HEAD (le dump L6f date d'avant le commit ee2821a)
Lancement par lp-builder via Tools/RunCommandlet.ps1 (journaux dans etat\CAM\), après BUILD-GO de Big Boss ;
aucun asset écrit (MD5 de Person, GI, Room, PC, Birdview et de CentralLondon.umap relevés avant et après).