27 KiB
Fiche CAM-T2 — Niveau N3 — Modèle prévu opus | utilisé claude-opus-5-5 — Agent lp-cart — Skills sk-protocol, lp-commandlets (préchargés présents : ue-cpp-build, lp-paths)
CAM-T2-CART : caméras des graphes Blueprint et chaînes d'activation, d'après les dumps existants (2026-10-11)
Copie D:\Game\LifePlay-master 5.8, branche ue5.8, HEAD 4283c13 (git rev-parse --short HEAD). Lecture seule.
Abréviations de chemins : PC = Docs/Migration/etat/ST/STE/dumps/PC__EventGraph.txt ; GI =
.../ST/STE/dumps/GI__EventGraph_V5.txt ; GICF = .../ST/STE/dumps/GI__CallFunction_V5.txt ; ROOM =
.../ST/STE/dumps/Room__EventGraph_V5.txt ; MM = .../ST/STB/dumps/MainMenu__EventGraph.txt ; PERS =
.../portage55/L6f/L6f_dump_Person.txt ; CLSC = .../portage55/L6f/L6f_components_CentralLondon_SceneCapture.txt.
« Mort » = nœud dont l'entrée d'exécution est execute (vide) dans le dump.
Tableau récapitulatif
| # | Caméra | Où | Type | Qui l'active (preuve) | Suit le MC | Vivante / morte | Rôle apparent |
|---|---|---|---|---|---|---|---|
| K1 | GI.Birdview (classe Birdview_C) |
acteur placé dans CentralLondon.umap (chaînes Birdview_C, Default__Birdview_C du .umap) ; classe fille de CameraActor (chaînes Default__CameraActor, CameraActor de Birdview.uasset) |
CameraActor (BP) | PC BeginAutoLoad → SetViewTargetWithBlend(Birdview) (PC:521-529, 2762-2779) ; GI ShowRender → SetViewTargetWithBlend(Birdview) (GI:3144-3152, 13229-13233) |
non attachée ; déplacée par les entrées (PC:616-625, 743-747, 3092-3121) et PanToBuilding (GI:628-633) ; aucun suivi du MC vu (graphe de Birdview non dumpé) |
vivante | vue de dessus / carte de la ville |
| K2 | GI.ChargenCameras[0] = Room.SceneCamera |
CameraActor placé dans CentralLondon.umap (estimé : chaînes CameraScene, CameraFullBody, CameraPortrait, ChargenCameras du .umap) ; copié dans Room.SceneCamera au BeginPlay de Room (ROOM:404-416, 420-426) |
CameraActor (CameraComponent lu : MM:1547-1549, ROOM:2033-2035) |
GI HideRender(0) → SetViewTargetWithBlend(ChargenCameras[CurrentCamera]) (GI:772-775, 4452-4466, 3117-3125) ; fin de sexe (GI:14505-14513) ; PC SwitchCamera/ResetCamera index 0 (PC:1752-1760, 2351-2355, 3344-3346) |
non attachée ; AutoCamera la tourne vers la tête du MC et la recale par rapport au MC (ROOM:3406-3593, 3796-3872) ; position par défaut GI.CameraSceneTransformDefault (ROOM:1250-1263) |
vivante | caméra de pièce / de scène ; CharGen index 0 |
| K3 | GI.ChargenCameras[1] |
idem K2 (ordre du tableau non prouvé) | CameraActor (estimé) | GI OpenContacts → HideRender(StartingCamera=1) (GI:6252-6254, 6226-6234) ; ZoomCharGen (GI:879-881, 4417-4448) |
non (position fixe ; aucun déplacement vu) | vivante | contacts / CharGen (portrait ou plein pied : incertain) |
| K4 | GI.ChargenCameras[2] |
idem K2 | CameraActor (estimé) | seulement ZoomCharGen : CurrentCamera = (CurrentCamera < 2) ? CurrentCamera + 1 : 0 (GI:4423-4441) |
non | vivante (par ZoomCharGen) | CharGen (zoom) |
| K5 | Person.FirstPersonSM (classe FirstPerson_C) |
composant de Person (chaînes FirstPersonSM, FirstPersonSM_GEN_VARIABLE, FirstPerson_C de Person.uasset) ; FirstPerson.uasset = BP fils de CameraComponent (chaînes Default__CameraComponent, BlueprintSpawnableComponent) |
CameraComponent (BP) | PC SwitchCamera pendant le sexe : SetViewTargetWithBlend(SexPersons[i]) après attache de FirstPersonSM au socket head (PC:3312-3317, 2263-2266, 3378-3396, 3364-3373, 1788-1796) |
attachée à la tête de SexPersons[i] (MC ou partenaire), seulement pendant le sexe |
vivante sous SexOn |
1re personne (POV) |
| K6 | SecondScreen, FaceCapture |
acteurs SceneCapture2D du niveau CentralLondon (CLSC:2, 252) |
SceneCapture2D, pas une caméra de vue | GI secondScreen() (GI:25826-25843), appelé par l'événement Sex (GI:6762-6764) |
sans objet | vivante | rendu vers texture (second écran, visage) |
| K7 | Pawn par défaut (Pawn_C) |
Pawn.uasset (chaînes AutoPossessPlayer, bUseControllerRotation*, aucune chaîne Camera) ; GM.uasset chaîne DefaultPawnClass |
Pawn sans caméra (estimé) | aucun Possess dans les dumps PC et GI |
sans objet | vue implicite avant le 1er SetViewTarget (estimé) |
aucun rôle de caméra prouvé |
Hors caméra de vue (piège 5 de la fiche) : CameraShake_C (LegacyCameraShake, effet) joué par PlayWorldCameraShake
(GI:10868-10873, événement Cum, GI:10803-10805, 27673-27676) ; action d'animation camera de Person = accessoire
tenu en main (spawnProp socket rHand, PERS:34797, 35399-35404).
Caméras de rue en enfilade : aucune trouvée. Caméra de plafond : aucune trouvée. SpringArm : aucun.
1. Objet et périmètre
Domaine : caméras de vue des Blueprints et leurs chaînes d'activation (qui active, quand, suivi du MC, vivante/morte),
d'après les dumps texte présents sur disque. Hors périmètre : C++ et .ini (CAM-T3), comptage dans les .uasset (CAM-T1).
Fonctions C++ vues depuis les BP (noms seulement) : LPUserSettingsLibrary::ApplyCameraSpeedAtStartup (GI:30024-30028).
Version des sources : GI et Room = V5 (HEAD selon la fiche) ; PC = dump STE-D du 2026-10-10 11:31 (PC:1-3), postérieur
au dernier commit de PC.uasset (809102a, 2026-10-08) ; Person = L6f (2026-09-30), antérieur au dernier commit
de Person.uasset (ee2821a, 2026-10-09) ; MainMenu = STB, dernier commit de MainMenu.uasset 547dcdd (2026-10-10).
2. Commandes et lectures (exactes) avec compte brut
| Commande / lecture | Compte brut |
|---|---|
Grep "(?i)camera|viewtarget|springarm|TargetArmLength|FieldOfView|Possess" sur PC |
66 lignes ; 0 SpringArm, 0 TargetArmLength, 0 FieldOfView, 0 Possess |
Grep "(?i)camera|viewtarget|springarm|TargetArmLength|FieldOfView|possess|birdview|firstperson|secondscreen|POVOn" sur GI |
113 lignes ; 0 SpringArm / ArmLength / FieldOfView / Possess |
Grep "(?i)camera|viewtarget|springarm|TargetArmLength|FieldOfView|possess|birdview|firstperson|secondscreen|ceiling" sur ROOM |
122 lignes ; Room = 1010 nœuds (ROOM:1) |
Grep -c "SetViewTarget|CameraComponent|SpringArm|CameraActor|TargetArmLength|FieldOfView|Birdview_C|FirstPersonSM|ChargenCameras" sur Docs/Migration/etat/**/*.txt |
832 occurrences dans 42 fichiers |
SetViewTargetWithBlend dans les dumps HEAD |
PC : 3 nœuds (PC:521, 1752, 1788) ; GI : 4 nœuds (GI:3117, 3132, 3144, 14505) ; Room : 0 |
Grep "VariableSet_\d+ +variable '(Birdview|ChargenCameras|BirdviewOriginal|CameraSceneTransformDefault|PC|Wall)'" sur etat/**/*.txt |
2 lignes, toutes PC := self (PC:190) : aucun dump n'écrit Birdview ni ChargenCameras |
grep -a -o "[A-Za-z_][A-Za-z0-9_]\{3,\}" <uasset> | sort | uniq -c filtré camera/view/arm/fov/spring/… sur Content/BPs/{Birdview,FirstPerson,CameraShake,Pawn,SecondScreenFloor,GM}.uasset, puis Scenes/CentralLondon.umap, BPs/{Person,PC,GI}.uasset, UI/ContactMenu.uasset |
chaînes citées dans 3 ; tailles : Birdview 925 792 o, FirstPerson 6 348, CameraShake 7 392, Pawn 24 691, SecondScreenFloor 25 116, GM 21 349 |
grep -rl -a "<motif>" --include=*.uasset --include=*.umap Content |
ChargenCameras : 6 fichiers (GI, PC, Room, CentralLondon.umap, UI/ContactMenu, UI/MainMenu) ; FirstPerson_C : 4 (FirstPerson, PC, Person, CentralLondon.umap) ; Birdview_C : 11 (Birdview, GI, PC, Room, CentralLondon.umap, UI/ContactMenu, Cursor, Recommend, SearchResult, Shortcut, TopRight) ; CameraShake_C : 2 (CameraShake, GI) |
Grep camera sur post-v1/PawnDyn/*, post-v1/PawnGlobal/* |
ces dumps portent sur Room, pas sur Pawn (-BP=Room, PawnDyn_LPDumpComponents_20261004-223842.txt:1, PawnGlobal_LPDumpFunction_20261004-222937.txt:1) ; composants de Room : StaticMeshComponent0, Box, Wall1-4, WallT, aucune caméra (PawnDyn_LPDumpComponents_20261004-223842.txt:32-41) |
post-v1/STUDIO-EST/* (CharGen, BodyShapeMenu, BodyShape, CharGenSlider, Preset, FaceTexture) |
0 occurrence camera|viewtarget|spring dans les 6 fichiers |
AP5_LPDumpFunction_20261006-134746/134949.txt |
asset dumpé = Room (-BP=Room -Fn=*, ligne 1 de -134949), version du 2026-10-06 ; fonctions getFocalDistance (l. 2293) et isPointInsideRoom (l. 4026) lisent SceneCamera |
STE-V5_LPDumpFunction_20261010-231918.txt |
asset = Room EventGraph (l. 1), même contenu caméra que ROOM |
git log -1 -- Content/BPs/<x>.uasset |
PC, Birdview, FirstPerson, Pawn, GM, ContactMenu, CentralLondon : 809102a (2026-10-08) ; Person ee2821a (2026-10-09) ; Room, GI 4283c13 |
3. Constats fichier:ligne
3.1 K1 Birdview (vue de dessus)
- Activation au chargement :
BeginAutoLoad(PC:2762-2765) →GI.AutoLoad(PC:1424-1428) →Delay(PC:1435-1437) → siTopRightvisible (PC:2772-2779) →SetViewTargetWithBlend(self, GI.Birdview), BlendTime 0,VTBlend_Linear(PC:521-529) →GamePaused := AutoPauseAfterAction→Birdview.AskForHover(PC:1429-1434, 1709-1712). Brancheelsevide : siTopRightn'est pas visible, aucune vue n'est posée ici (PC:2779). - Retour à la vue de dessus :
ShowRender(GI:776-778) →SetVisibility(GI:794-797) →IfThenElse_213(GI:30074-30077) →SetActorHiddenInGame(MapMarkers, StreetMapStatic, false)(GI:13229-13233) →SetViewTargetWithBlend(PC, Birdview), blend 0 (GI:3144-3152) →SpaceOn := false(GI:23939-23944). Appelants deShowRender:CloseSpace(GI:23574-23576, 23613-23616, 23658-23660, 23583-23586, 23601-23604),CloseContactssansNPCSelector(GI:6235-6239), sortie du mode construction de Room (ROOM:1246-1249, puisResetSceneCameraROOM:1296-1298 etBuilderOn := falseROOM:1290-1293). - Commandes (PC → fonctions de
Birdview_C) :RotateCamera(AxisValue CursorY)siMoveCameraet pas de sexe (PC:583-586, 597-609, 616-620, 629-633) ;CircleCamera(leftright)(PC:621-625) ;ScrollDownUp(downup)si pas de sexe (PC:735-739, 743-747) ;DownUpBirdview(axeDownUp, PC:3043-3046, 3087-3096) ;LeftRightBirdView(axeLeftRight, PC:3097-3121).MoveCamera: vrai à l'appui, faux au relâchement deInputAction_50et des événementsStartMoveCamera/StopMoveCamera(PC:547-562, 2852-2857). PanToBuilding(Building)depuis GI (GI:628-633).ResetCameraAndPlayer:Birdview.SetActorTransform(BirdviewOriginal)puisStreetMapStatic.PlayerWC.SetRelativeTransform((20000,0,0))(GI:4881-4918), appelé parCloseCityMenusiChanged(GI:4648-4652, 4943-4955). Transformation sauvegardée/rechargée (BirdeyeTransform, GI:9405-9446).OpenSpacen'agit que si la cible de vue estBirdview(GI:23571-23573, 23669-23672, 23677-23686).- Fonctions internes de Birdview (chaînes de
Birdview.uasset) :CheckIfCameraMovable,PreventCameraMove,CameraSpeed,FindLookAtRotation,isScreenPositionOccupied,SpawnMarker,OrthoWidth,OrthoNearClipPlane,bAutoCalculateOrthoPlanes: incertain, dump requis (aucun dump du graphe de Birdview).
3.2 K2-K4 GI.ChargenCameras[] (caméra de pièce, CharGen, contacts)
HideRender(StartingCamera)(GI:772-775) →IfThenElse_212/SetVisibility(RootComponent, false)(GI:30049-30063) →CurrentCamera := StartingCamera(GI:4452-4457) →SetViewTargetWithBlend(PC, ChargenCameras[CurrentCamera]), blend 0 (GI:3117-3125, 4458-4466) →PlayerCharacter.ShowAppropriateGenital(GI:17489-17492).- Appelants de
HideRender(valeur deStartingCamera) : RoomEditBedroom→HideUI→HideRender(0)(ROOM:5-7, 28-36) ; GI : aprèsStripAll/MoveCharacterBeingEdited(édition de personnage)0(GI:4397-4400, 3863-3866, 750-752, 803-807) ; aprèsStopMoodTimer0(GI:22424-22427, 4293-4301, puisMoveCharacterBeingEditedetRoom.ResetSceneCamera, GI:23975-23985) ; démarrage de scène siSpaceOnfaux0(GI:23705-23708, 5866-5870, puisCreateSceneWidgetGI:6086-6088) ;OpenContacts1(GI:6252-6254, 6226-6234) ;CloseContactssiNPCSelector0(GI:6259-6262, 17481-17484, 17470-17474) ;OpenSpace→SpaceOn := true→Exit Action Menu→0(GI:23577-23580, 23592-23600). ZoomCharGen→CurrentCamera := SelectInt(CurrentCamera+1, 0, CurrentCamera < 2)→SetViewTargetWithBlend(PC, ChargenCameras[CurrentCamera])(GI:879-881, 4417-4448, 3132-3140) : le tableau a au moins 3 entrées (estimé).- Fin de sexe :
SexOn := false(GI:21018-21020) →Room.UpdateDOF→UpdatePartnerList→ForEach SexPersons→Completed→SetViewTargetWithBlend(PC, ChargenCameras[0])(GI:22144-22146, 21319-21321, 6992-6998, 14498-14513). - Room :
SceneCamera := GI.ChargenCameras[0]aprèsForEach AllComponents+Delay 1 sauReceiveBeginPlay(ROOM:2-4, 289-295, 420-426, 404-416), puisTestAutoCamera(ROOM:3456-3459), événement vide (ROOM:3453-3455). - Déplacements de
SceneCameradans Room, tous conditionnés parBuilderOn OR SexOn OR SpaceOn(ROOM:1326-1331, 1335-1340) :ScrollDownUp(avance en X local,Values × 1.5 × CameraSpeed, ROOM:394-397, 427-475, 551-555, 713-717),LeftRight(Y local, ROOM:492-550),DownUp(Z, ROOM:482-485, 566-627),CircleCamera(lacet, ROOM:629-662),RotateCamera(tangage, ROOM:665-700). Ces événements de Room ne sont appelés par aucun nœud de PC (PC n'appelle de Room queSelectUnderCursor,StartMoveObject,StopMoveObject,AddLightOptions,refreshIdleDummies,UpdateDOF: PC:3911-3936, 4019-4022, 4527-4531, 5001-5004) ; leur appelant est inconnu (estimé : Birdview relaie, chaînesCircleCamera,RotateCamera,DownUp,LeftRight,ScrollDownUpdansBirdview.uasset). ResetSceneCamera→SceneCamera.SetActorTransform(GI.CameraSceneTransformDefault)(ROOM:1250-1270) ; appelée par GI aprèsRestartAnimation(GI:23872-23874, 23935-23938) et aprèsMoveCharacterBeingEdited(GI:23975-23985), par Room (ROOM:1296-1298, 1924-1926).AutoCamera(ROOM:3406-3408) : si la cible de vue estSceneCamera(ROOM:3428-3439),PlayerHead := PlayerCharacter.Meshsockethead(ROOM:3441-3447, 3513-3518) ;isPointInsideRoom(caméra)(ROOM:3796-3801) ;SetActorRotation(SceneCamera, FindLookAtRotation(caméra, PlayerHead))si la tête sort de l'écran (ROOM:3448-3452, 3482-3486, 3522-3539) ; si la caméra est hors pièce et la tête dans la pièce : 10 pas de(PlayerHead - caméra)/10jusqu'à rentrer (ROOM:3805-3872) ; sinonSetActorLocation(SceneCamera, (-3131543, -14967213, 75) + (PlayerCharacter.Location - GI.ActorTransforms[3].Location))(ROOM:3547-3593, 3816-3820) ; puisUpdateDOF. Appel :CallFunction_363depuisIfThenElse_63.else(ROOM:3873-3876, 4068-4072), amont non remonté. MinuterieSetTimerDelegate(AutoCamera, 1 s, boucle)morte (ROOM:3643-3653).CameraFocusPoint(Loc)→SetActorRotation(SceneCamera, LookAt)(ROOM:4404-4410, 4431-4434).CameraFocus(Person)→SetActorRotationavecself (vide): la cible est l'acteur Room, pasSceneCamera(ROOM:4396-4399, 4435-4439) — constat, effet en jeu non vérifié.- Commandes de script de scène (
GI.CallFunction,SwitchString_22, GICF:209-219) :cameraMove→Room.SceneCamera.SetActorTransform(Location, Rotation des paramètres, échelle 1)puisUpdateDOF(GICF:6179-6203) ;cameraFocus→Room.CameraFocus(Person)(GICF:6292-6299) ;CameraFocusPoint(GICF:6469) ;cameraLock/cameraUnlock→PreventCameraMove := true / false(GICF:6730-6739).PreventCameraMove := falseaussi en GI:28028-28031. - Profondeur de champ :
UpdateDOF→SceneCamera.CameraComponent.PostProcessSettings.DepthOfFieldFocalDistance := getFocalDistance()ou 0 (ROOM:2004-2095) ; réglage →ChargenCameras[0].CameraComponent.PostProcessSettings. DepthOfFieldFarBlurSize(GI:21058-21106, puisCameraSpeedGI:11926-11930) ; MainMenuSpinBox_0écrit le même champ (MM:1532-1564).CameraSpeedlu depuisGameSettingsInstance(GI:11902-11907). - Lecteurs de
Room.SceneCameradans Person (dump L6f, antérieur à HEAD) :updateButtonSize(PERS:13585, 13601-13649) ; dans l'EventGraph,if GetViewTarget == SceneCamera → SetActorRotation(SceneCamera, LookAt(tête du MC))mort (IfThenElse_70 execute (vide), PERS:34520-34580).
3.3 K5 POV FirstPersonSM (1re personne pendant le sexe)
- Déclencheurs de
SwitchCamera:InputAction_12(nom d'action absent du dump ; chaîneInpActEvt_SwitchCameradansPC.uasset) → siBuilderOnfaux →PlayClick→ siSexOn(PC:1713-1716, 3876-3880, 4430-4432, 1723-1727) ; minuterieSwitchCameraDelayed0,2 s (PC:3347-3360) ; bouton d'action « Switch camera »,Animation = 'Switchcamera'(PC:2505-2531). SwitchCamera(PC:2532-2534) →SexCameraIndex < len(SexPersons)(PC:1728-1740, 1770-1773) :- vrai :
POVOn := true(PC:3312-3317) →CurrentActor := SexPersons[SexCameraIndex](PC:1784-1787, 2263-2266) →SceneSuncaché (PC:2346-2350) →FirstPersonSM.AttachToComponent(Mesh, socket 'head', KeepRelative)(PC:3375-3388) →SetRelativeTransform(PC:3389-3396) →AttachToComponent(Mesh, sans socket, KeepWorld)(PC:3364-3373) →SetViewTargetWithBlend(GI.PC, CurrentActor), blend 0 (PC:1788-1796) →SexCameraIndex++(PC:1741-1744) →Wallcaché (PC:1800-1804) →HairSMcaché (PC:2293-2297). - faux :
POVOn := false(PC:3318-3323) →SexCameraIndex := 0(PC:1746-1751) →SceneSunvisible (PC:2351-2355) →SetViewTargetWithBlend(GI.PC, ChargenCameras[0])(PC:1752-1760, 1777-1783) →Wallvisible selonbHidden(PC:1805-1809, 3995-3998) →ForEach SexPersons(PC:2256-2262). ResetCamera→ même branche « faux » sans remise à 0 de l'index (PC:3344-3346, 2351-2355) ;ContinuePOV→SexCameraIndex := …→ attache (PC:3324-3331, 3378-3380).
- vrai :
- Regard en POV : souris →
FirstPersonSM.AddWorldRotation(PC:1896-1903 via PC:1924-1928 ;CallFunction_951via PC:1999-2003) ;CallFunction_204mort (PC:1888-1895) ;SetRelativeRotation(FirstPersonSM, 90, 90, 0)mort (PC:2055-2062). - Entrée en sexe (GI) :
Sex→secondScreen→clearAllTalks→CompleteAllMovements→SexOn := true→WaitingScene := true→PC.POVOn := false(GI:6762-6764, 25826-25831, 24101-24104, 25067-25070, 6896-6901, 6773-6776, 20528-20533) ; aucunSetViewTargetsur ce chemin (vue conservée : estimé).SexCameraIndex := 0en GI:12828-12833 (amont non remonté). - Sélection de la caméra par le moteur :
SetViewTargetsur un acteurPersonutilise le premierCameraComponentactif de l'acteur (comportement moteur,bFindCameraComponentWhenViewTarget = Truelu pour un autre acteur en CLSC:30) — estimé ; étatbAutoActivatedeFirstPersonSM: incertain, CDO non dumpé.
3.4 Autres
SecondScreen/FaceCapture:SceneCapture2Ddans/Game/Scenes/CentralLondon, dossierPoser/Cameras(CLSC:2-3, 84, 252-253) ;SecondScreenFloorn'a qu'unStaticMeshComponent0(portage55/L6f/L6f_LPDumpComponents_20260930-101930.txt:1, 35). Le dump plus récentST/STE/dumps/CentralLondon__SceneCapture.txtexiste et n'a pas été relu.ContactMenu.uassetcontientCharGenButton,SelectCamera,CurrentCamera,ReturnFromChargen,SetViewTargetWithBlend,ChargenCameras(chaînes) : un site d'activation sans dump (incertain : dump requis).CentralLondon.umapcontientCameraScene,CameraFullBody,CameraPortrait(chacune avec_ExecuteUbergraph_CentralLondon_RefProperty, donc référencées par le script du niveau),Birdview,CamOrthoZoom,ChargenCameras: le remplissage deGI.ChargenCamerasetGI.Birdviewpar le script du niveau est estimé, non prouvé.Person.uassetcontientDetermineBirdviewLooking,MoveCamera,GetViewTarget,SceneCamera,CameraActor.- Nœuds caméra morts (résumé) : PC:2055-2062, 1888-1895 ; PC
Delay(1)PC:1696-1702 ; PCInputAction_51sans liens PC:563-566 ; GIrefreshIdleDummies→SetViewTargetPC GI:24030-24035 etUpdateWallGI:20939-20943 (entrées mortes, le 3e appelant de GI:14506 reste vivant) ; GISetActorHiddenInGame(Skylight)GI:21049-21052 ; ROOM minuterieAutoCamera3643-3653,TestAutoCamera3453-3455,DownUp561-565,IfThenElse_1(déplacement X × -10) 389-393,CenterCameraToActionvide 2102-2104,DrawDebugBox3674-3676 ; PERS:34520-34580.
3.5 Machine à états (reconstituée)
| État (variables) | Caméra active | Entrée (déclencheur, preuve) | Sortie |
|---|---|---|---|
| Démarrage / chargement auto | K1 Birdview si TopRight visible |
BeginAutoLoad (PC:2762-2779, 521-529) |
— |
Ville / rue (SpaceOn faux) |
K1 Birdview | ShowRender (GI:3144-3152) ; CloseSpace (GI:23574) ; CloseContacts sans NPCSelector (GI:6235-6239) ; fin du constructeur (ROOM:1246) |
OpenSpace |
Pièce « Space » (SpaceOn vrai) |
K2 ChargenCameras[0] = Room.SceneCamera |
OpenSpace si vue = Birdview et SpaceOn faux → HideRender(0) (GI:23571-23600) |
CloseSpace → Birdview |
Constructeur de pièce (BuilderOn) |
K2 | EditBedroom → HideRender(0) (ROOM:5-7, 28-36) |
ShowRender + ResetSceneCamera (ROOM:1246-1298) |
| Édition de personnage / CharGen | K2, puis K3, K4 | HideRender(0) (GI:803-807) ; ZoomCharGen 0→1→2→0 (GI:4417-4448) |
ShowRender (estimé) |
| Contacts | K3 ChargenCameras[1] |
OpenContacts → HideRender(1) (GI:6226-6234) |
CloseContacts → K2 (si NPCSelector) ou Birdview |
Scène scriptée (WaitingScene) |
K2, déplacée par cameraMove / cameraFocus / cameraFocusPoint |
HideRender(0) si SpaceOn faux (GI:5866-5870) ; commandes GICF:209-219 |
ShowRender (estimé) |
Sexe (SexOn), POVOn faux |
K2 (vue conservée à l'entrée : estimé) | Sex (GI:6762-6776) ; SwitchCamera index = n ou ResetCamera → K2 (PC:1752-1760) |
fin : ChargenCameras[0] (GI:14505) |
Sexe, POVOn vrai |
K5 POV de SexPersons[i] |
SwitchCamera index < n (PC:1788-1796) |
SwitchCamera suivant / ResetCamera |
Trous nommés : déclencheur de OpenSpace / CloseSpace (touche ? .ini : CAM-T3) ; amont de AutoCamera
(ROOM CallFunction_290) ; logique interne de Birdview ; site ContactMenu (SelectCamera) ; écriture de
ChargenCameras / Birdview / BirdviewOriginal / CameraSceneTransformDefault ; noms des actions d'entrée
InputAction_12, InputAction_50 (dump sans nom ; chaînes InpActEvt_SwitchCamera, InpActEvt_RotateCamera dans PC.uasset).
4. Établi / estimé / incertain
- Établi : 7 nœuds
SetViewTargetWithBlendvivants ou morts (PC 3, GI 4, Room 0), tous avec BlendTime 0 etVTBlend_Linear; cibles =Birdview,ChargenCameras[i], un acteurPerson(§ 3) ; aucunSpringArm,TargetArmLength,SetFieldOfView,Possessdans les dumps GI/PC/Room ni dans les chaînes des 11 assets lus ; aucune caméra de rue ni de plafond ; Room n'a aucun composant caméra ;CameraFocusvise l'acteur Room (ROOM:4435-4439) ; la poursuite du MC parSceneCameradans Person (L6f) est morte. - Estimé : Birdview et ChargenCameras sont des CameraActor placés dans
CentralLondonet affectés par le script du niveau (chaînes du .umap) ; ordre deChargenCameras(scène, plein pied, portrait ?) ; le jeu démarre sur la vue du Pawn par défaut avantBeginAutoLoad; Birdview relaie les commandes versRoom.SceneCameraen mode Space/sexe. - Incertain : valeurs des composants (FOV, projection orthographique de Birdview — chaînes
OrthoWidthprésentes —, post-process,bAutoActivatedeFirstPersonSM), transformations par défaut des caméras placées, contenu deGI.CameraSceneTransformDefaultetBirdviewOriginal: CDO non dumpé. Effet réel dePlayWorldCameraShake(brocheShake (vide)dans GI:10873 alors queGI.uassetréférenceCameraShake_C). Version HEAD de Person et MainMenu.
5. Points à confirmer (phase 1b, copie UE demandée à Big Boss ; rien lancé ici)
| Asset | Commandlet (lp-commandlets) | But |
|---|---|---|
Birdview |
LPDumpFunction -BP=Birdview -Fn=* -Pins -Exec |
RotateCamera, CircleCamera, ScrollDownUp, DownUpBirdview, LeftRightBirdView, PanToBuilding, CheckIfCameraMovable, relais vers Room, BeginPlay (écrit-il GI.Birdview ?) |
Birdview, Person (FirstPersonSM), Pawn, GM, FirstPerson, CameraShake |
LPDumpComponents -BP=<nom> (imprime les propriétés, défauts compris : format vu en CLSC:30) ; LPDumpCDO si ses options sont lues dans Source/LifePlayEditorTools (non documentées dans lp-commandlets) |
FOV, ProjectionMode, OrthoWidth, bAutoActivate, transform relatif, post-process, DefaultPawnClass |
niveau /Game/Scenes/CentralLondon |
LPDumpComponents -Map=/Game/Scenes/CentralLondon -Filter=Camera (et -Filter=Birdview) |
position, rotation, FOV de CameraScene, CameraFullBody, CameraPortrait, Birdview, CamOrthoZoom |
| script du niveau CentralLondon | LPDumpFunction sur le Level Blueprint : support non prouvé (à vérifier dans le .h) |
qui remplit GI.ChargenCameras, GI.Birdview, BirdviewOriginal |
ContactMenu |
LPDumpFunction -BP=ContactMenu -Fn=* -Pins -Exec |
CharGenButton, SelectCamera, ReturnFromChargen |
Person (HEAD) |
LPDumpFunction -BP=Person -Fn=EventGraph -Pins -Exec |
redump à HEAD (L6f date du 2026-09-30) : MoveCamera, DetermineBirdviewLooking, chaîne morte PERS:34520 |
GI |
LPDumpFunction -BP=GI -Fn=* -Pins -Exec (ou liste ciblée) |
qui écrit CameraSceneTransformDefault, fonctions ShowRender/HideRender hors EventGraph s'il y en a |
MainMenu |
LPDumpFunction -BP=MainMenu -Fn=EventGraph -Pins -Exec |
confirmer MM:1532-1564 à HEAD (547dcdd) |
À relire sans commandlet : ST/STE/dumps/CentralLondon__SceneCapture.txt ; amont de Room.AutoCamera (CallFunction_290
dans ROOM) ; amont de GI.SexCameraIndex := 0 (GI:12828).
6. Questions pour la SPEC ou l'utilisateur
- Cible C2 (3e personne à 1,75 m) : la créer comme nouveau composant sur le MC, ou réutiliser
ChargenCameras[0]/Room.SceneCameradéjà pilotée parAutoCamera(regard vers la tête du MC) ? - Cible C1 (1re personne) : réutiliser
Person.FirstPersonSM(FirstPerson_C), aujourd'hui active seulement pendant le sexe viaSwitchCamera, hors sexe aussi ? - Cible C3 (plafond) et caméras de rue : aucune base existante ; Birdview (vue de dessus de la ville) doit-elle rester la vue « rue » ou être remplacée ?
- Le défaut
CameraFocus(rotation de l'acteur Room au lieu de la caméra, ROOM:4435-4439) et les chaînes mortes (AutoCamerasans minuterie, suivi du MC mort dans Person) sont-ils dans le périmètre du lot CAM ? ChargenCamerassert à la fois au CharGen, aux contacts, à la pièce et au sexe (index 0) : faut-il séparer la caméra de pièce de la caméra de CharGen ?
Constats
- Écarts de méthode : deux appels Bash ont utilisé
sed -n 1petgrep -cisur des.txt(en-têtes de STUDIO-EST), au lieu de Read/Grep (sk-protocol § 7), lecture seule, sans effet ; unGreptrop large surGI(sortie 217 Ko non exploitée). UnGrepsur le dossierpost-v1a rendu 0 résultat alors que les fichiers (ASCII, CRLF) contiennent les motifs : le dossier a dû être lu fichier par fichier (une absence vue par Grep sur un dossier d'etat/ne prouve rien). Docs/Migration/etat/CAM/CAM-T1_matrice.txt(livrable de CAM-T1) existe, non lu.- Fichiers écrits :
D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM\CAM-T2-CART.md(A). Aucun autre.
Tours : 48 / 60