Fiche CAM-T1 — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 (Sonnet 5.5) — Agent lp-inventory — Skills sk-protocol, lp-paths (sk-recount appliqué pour les recoupements) # CAM-T1-INV : inventaire chiffré des sources de caméra (2026-10-11) Copie `D:\Game\LifePlay-master 5.8`, branche `ue5.8`, HEAD `4283c13` (relevé : `git rev-parse --short HEAD` → `4283c13`, `git branch --show-current` → `ue5.8`). Lecture seule ; seuls écrits : ce livrable et 4 journaux `CAM-T1_*.txt` du même dossier. Rien lu dans `.hyperai/` ni dans la copie 5.5. Convention de lecture : sur un `.uasset`/`.umap` (binaire) `grep -c` compte des **lignes** (découpe sur `\n`), pas des occurrences ; un compte « 1 » veut dire « présent au moins une fois ». Sur les textes, Grep (ripgrep) compte aussi des lignes. ## 1. Commandes exactes Outil : Grep (ripgrep) pour les fichiers texte ; Bash `grep -a` pour les `.uasset`/`.umap` (le Grep d'outil ne peut pas forcer `-a` sur un binaire ; la fiche prescrit `grep -a`). Racine : `cd "D:/Game/LifePlay-master 5.8"`. **a) Motifs binaires (21 motifs de la fiche).** Écart de méthode : au lieu de 21 passes sur 9070 fichiers (USB), une passe « union » puis 21 comptes sur les seuls candidats ; équivalent, car tout fichier contenant un motif est dans l'union (SetViewTarget couvre SetViewTargetWithBlend et K2_SetViewTarget ; FieldOfView couvre SetFieldOfView). - A1 union : `grep -rlaF --include=*.uasset --include=*.umap -e CameraComponent -e SpringArmComponent -e CameraActor -e CineCameraActor -e CineCameraComponent -e SceneCaptureComponent2D -e PlayerCameraManager -e SetViewTarget -e GetViewTarget -e TargetArmLength -e FieldOfView -e bUsePawnControlRotation -e CameraLag -e ProbeSize -e bDoCollisionTest -e SetFieldOfView -e SetActiveCamera -e ChargenCameras -e AutoActivate Content > Docs/Migration/etat/CAM/CAM-T1_union.txt` (code 0, 52 s) - A2 matrice : pour chaque fichier F de l'union et chaque motif P : `grep -caF -e "$P" "$F"` → `Docs/Migration/etat/CAM/CAM-T1_matrice.txt` - A3 fichiers par motif : pour chaque P : `grep -rlaF --include=*.uasset --include=*.umap -e "$P" $(cat CAM-T1_union.txt) | wc -l` - A4 contrôle élargi (recoupement, insensible à la casse, hors liste de la fiche) : `grep -rlaiE --include=*.uasset --include=*.umap "camera|viewtarget|springarm" Content > Docs/Migration/etat/CAM/CAM-T1_camera-insensible.txt` - A5 jetons réellement présents : pour chaque fichier de A4 : `grep -aoiE "[A-Za-z_0-9]*(camera|viewtarget|springarm)[A-Za-z_0-9]*" F | sort | uniq -c | sort -rn` → `Docs/Migration/etat/CAM/CAM-T1_tokens.txt` - A6 total de fichiers : `find Content -type f \( -name '*.uasset' -o -name '*.umap' \) | wc -l` **b) Niveaux et config de cuisson.** - B1 : `find Content -name '*.umap'` ; `find Content/__ExternalActors__ -type f | wc -l` ; `find Content/__ExternalActors__ -type f | awk -F/ '{print $3"/"$5}' | sort | uniq -c` ; `find Content -iname '*ThirdPersonMap*' -o -iname '*VehicleExampleMap*' -o -iname '*VehicleOffroadExampleMap*'` ; `git ls-files Content/__ExternalActors__ | wc -l` ; `git check-ignore -v Content/__ExternalActors__` - B2 : Grep `GameDefaultMap|EditorStartupMap|GlobalDefaultGameMode|GameInstanceClass|TransitionMap|ServerDefaultMap|Map` sur `Config/DefaultEngine.ini` ; Grep `MapsToCook|DirectoriesToAlwaysCook|DirectoriesToNeverCook|bCookAll|CookAll|UseZenStore|\.umap|Maps` (insensible à la casse) sur `Config/DefaultGame.ini` ; Read `Config/DefaultGame.ini` l. 36-59. **c) Config.** Grep `camera|FOV|FieldOfView|ViewTarget|SpringArm` (-i, -n) sur `Config/*.ini` ; `sed -n '4,5p' Config/DefaultEditor.ini | cut -c1-200` (lignes trop longues). **d) C++.** Grep `camera|ViewTarget|SpringArm|FieldOfView|FOV` (-i), glob `*.{cpp,h}`, chemin `Source` : en mode `count` puis en mode `content -n`. **e) Modules et addon.** - E1 : Grep `camera` (-i) sur `Content/Modules` en `count` puis `content -n` ; Grep `\.animate\(camera\)` ; Grep `^ANIMATION: camera` ; Grep `^\s*(\d+::\s*)?((Player|Actor[0-9]?)(\([A-Za-z]+\))?::\s*)?".*camera` (-i, lignes de dialogue) - E2 : `find "Content/Modules" -type f | wc -l` ; `git --git-dir='D:\Game\LifePlay_ModulesGit\5.8.git' --work-tree='D:\Game\LifePlay-master 5.8\Content\Modules' status --porcelain | wc -l` et `log --oneline -1` - E3 addon `D:\Game\LifePlay-Sandbox-5.8` : Grep `camera` (-i) en `count`, glob `{Plugins,Source}/**/*.{cpp,h,cs}` ; Grep `camera` (-i) en `count` sur `Source` seul ; `ls -la Content` (jonction) ; `git log --oneline -1` **f) Dumps de graphes.** - F1 : Grep `SetViewTarget|CameraComponent|SpringArm|ViewTarget|CameraActor` (-i), glob `*.txt`, chemin `Docs\Migration\etat`, `count` - F2 (actif / attribution par actif et date) : `cd Docs/Migration/etat && find . -name '*.txt' ! -path './CAM/*' -printf '%p|%TY-%Tm-%Td %TH:%TM\n' | while IFS='|' read -r f d; do awk -v F="$f" -v D="$d" '… (lit -BP=, "=== ::" ou "=== /Game/" dans les 15 premières lignes ; compte les lignes /SetViewTarget|CameraComponent|SpringArm|ViewTarget|CameraActor/ insensible à la casse) …' "$f"; done | sort` (sortie non archivée en fichier : un premier essai avec redirection vers `CAM-T1_dumps.txt` a été refusé par le système de permissions, aucun contournement ; sortie résumée au § 2 F) - F3 : Grep (noms de BP sans dump) `BP=(Birdview|FirstPerson|Pawn|GM|CameraShake|MapStreets|CityExpansion|ContactMenu|SecondScreenFloor|StreetMap_Static)\b|/Game/BPs/(Birdview|…)\b|=== (Birdview|…) ::` sur `etat/**/*.txt`, `count` ; Grep `Birdview|FirstPerson|CameraShake|MapStreets|CityExpansion|\bPawn\b|\bGM\b` sur `portage55/L4-CX-B0[78]_{application,dryrun}.txt` ; Read des 6 premières lignes de `L6f_LPDumpComponents_20260930-102024.txt` et `STE/dumps/CentralLondon__SceneCapture.txt` **g)** Versions 5.5 : sans objet (consigne de la fiche, copie 5.5 non lue). ## 2. Comptes bruts ### A. Motifs binaires dans `Content` (9070 `.uasset`/`.umap`, A6 = `9070`) Union A1 : **12 fichiers** (`wc -l CAM-T1_union.txt` → 12). Par dossier : `Content/BPs` 7 ; `Content/Scenes` 1 ; `Content/__ExternalActors__` **0** ; `Content/UI` 3 ; autres 1 (`Content/FreeAnimationsPack/Map/Overview.umap`). Fichiers par motif (A3) : CameraComponent **6** · SpringArmComponent **0** · CameraActor **9** · CineCameraActor **0** · CineCameraComponent **0** · SceneCaptureComponent2D **2** · PlayerCameraManager **0** · SetViewTargetWithBlend **3** · SetViewTarget **3** · K2_SetViewTarget **0** · GetViewTarget **3** · TargetArmLength **0** · FieldOfView **2** · bUsePawnControlRotation **0** · CameraLag **0** · ProbeSize **0** · bDoCollisionTest **0** · SetFieldOfView **0** · SetActiveCamera **0** · ChargenCameras **6** · AutoActivate **3**. Motifs à 0 fichier sur 9070 : 11 sur 21 (SpringArmComponent, CineCameraActor, CineCameraComponent, PlayerCameraManager, K2_SetViewTarget, TargetArmLength, bUsePawnControlRotation, CameraLag, ProbeSize, bDoCollisionTest, SetFieldOfView, SetActiveCamera = 12 en réalité : voir l'écart E2 en § 3). Un résultat nul n'est pas seul : les 9 autres motifs répondent, donc les commandes fonctionnent. Matrice fichier × motif (valeur = `grep -caF`, lignes ; `.` = 0). Motifs : M1 CameraComponent, M2 SpringArmComponent, M3 CameraActor, M4 CineCameraActor, M5 CineCameraComponent, M6 SceneCaptureComponent2D, M7 PlayerCameraManager, M8 SetViewTargetWithBlend, M9 SetViewTarget, M10 K2_SetViewTarget, M11 GetViewTarget, M12 TargetArmLength, M13 FieldOfView, M14 bUsePawnControlRotation, M15 CameraLag, M16 ProbeSize, M17 bDoCollisionTest, M18 SetFieldOfView, M19 SetActiveCamera, M20 ChargenCameras, M21 AutoActivate. M2, M4, M5, M7, M10, M12, M14-M19 : 0 partout (colonnes omises, présentes dans `CAM-T1_matrice.txt`). | Dossier | Fichier | M1 | M3 | M6 | M8 | M9 | M11 | M13 | M20 | M21 | |---|---|---|---|---|---|---|---|---|---|---| | BPs | Birdview | 1 | 3 | . | . | . | . | . | . | 1 | | BPs | FirstPerson | 2 | . | . | . | . | . | . | . | . | | BPs | GI | 5 | 4 | . | 1 | 1 | 2 | . | 1 | . | | BPs | PC | . | 1 | . | 1 | 1 | . | . | 1 | . | | BPs | Person | . | 1 | . | . | . | 1 | . | . | 1 | | BPs | Room | 5 | 2 | . | . | . | 2 | . | 1 | . | | BPs | StreetMap_Static | . | 1 | . | . | . | . | . | . | . | | Scenes | CentralLondon.umap | 1 | 2 | 1 | . | . | . | 1 | 1 | 1 | | __ExternalActors__ | (190 fichiers) | . | . | . | . | . | . | . | . | . | | UI | ContactMenu | . | 1 | . | 1 | 1 | . | . | 1 | . | | UI | MainMenu | 3 | 2 | . | . | . | . | . | 1 | . | | UI | TopRight | . | . | 1 | . | . | . | . | . | . | | autres | FreeAnimationsPack/Map/Overview.umap | . | . | . | . | . | . | 1 | . | . | Comptes demandés explicitement : CameraComponent = Birdview 1, FirstPerson 2, GI 5, Room 5, CentralLondon 1, MainMenu 3 (somme 17 lignes, 6 fichiers) ; SpringArmComponent = 0 ; CameraActor = Birdview 3, GI 4, PC 1, Person 1, Room 2, StreetMap_Static 1, CentralLondon 2, ContactMenu 1, MainMenu 2 (somme 17, 9 fichiers) ; CineCameraActor = 0 ; SetViewTarget = GI 1, PC 1, ContactMenu 1 (3 fichiers). Recoupement des sommes de colonnes de la matrice avec A3 : M1 6, M3 9, M6 2, M8 3, M9 3, M11 3, M13 2, M20 6, M21 3 = identiques. Contrôle élargi A4 (insensible à la casse, `camera|viewtarget|springarm`, 403 fichiers) : `Content/BPs` 14 · `Content/Scenes` 1 · `Content/UI` 12 · `Content/__ExternalActors__` 24 · autres 352 (`Content/Heavy` 348, `Content/FreeAnimationsPack` 4). 14+1+12+24+352 = 403. - BPs présents dans A4 : Birdview, CameraShake, FirstPerson, GameSettings, GI, MapMarkers, MapStreets, PC, Person, Room, SkyBox, StreetMap_Static, TestBall, TestPerson. BPs de `Content/BPs` (27 `.uasset`) absents de A4 (0 jeton « camera/viewtarget/springarm ») : AI, BridgetBP, CityExpansion, Daily, Daily_F, FullScreenMode, GM, HISM, LightSource, Pawn, Save, SecondScreenFloor, TestStatic (13 ; 14+13 = 27). - UI présents dans A4 : Builder, BuilderFnt, BuilderTexture, CharGen, ColorSlot, Contact, ContactMenu, Inventory, MainMenu, SexAction, SexInterface, TopRight. - Jetons A5 (sortie `CAM-T1_tokens.txt`, 216 lignes) : `__ExternalActors__` (24 fichiers) : un seul jeton, `Camera` ×24 (1 par fichier) ; aucun CameraActor/CameraComponent/CineCamera. `Heavy`+`FreeAnimationsPack` (352) : `EditorCameraPosition` ×344, `AssetEditorOrbitCameraPosition` ×344, camera_prop/camera_M/camera_F ×7, Camera ×4, Cameras ×3, MaterialExpressionCameraVectorWS ×2, camera_sensor, camera_lens, camera, MaterialExpressionCameraPositionWS, CameraRings, CameraLens, CameraFlash ×1. - Jetons notables par BP (extraits de A5, noms tels qu'écrits dans la table des noms) : Birdview : CameraActor, CheckIfCameraMovable, RotateCamera, CircleCamera, PreventCameraMove, CameraSpeed. CameraShake : CameraShake, LegacyCameraShake, EngineCameras. GI : camera ×26, Camera ×20, CameraComponent ×8, SwitchCamera, SwitchCameraDelayed, ResetCamera, ResetCameraAndPlayer, ResetSceneCamera, StartingCamera, SceneCamera, SexCameraIndex, CameraFocusPoint, CameraSceneTransformDefault, PlayWorldCameraShake, ApplyCameraSpeedAtStartup, CameraSpeed, SetViewTargetWithBlend, GetViewTarget, ChargenCameras. PC : SwitchCamera, SwitchCameraDelayed, StartMoveCamera, StopMoveCamera, MoveCamera, RotateCamera, CircleCamera, ResetCamera, CameraChanged, SexCameraIndex, SceneCamera, InpActEvt_SwitchCamera, InpActEvt_RotateCamera, SetViewTargetWithBlend, ChargenCameras. Room : camera ×16, CameraComponent ×7, RotateCamera, CircleCamera, CenterCameraToAction, AutoCamera, TestAutoCamera, StartingCamera, ResetSceneCamera, SceneCamera, CameraFocusPoint, GetViewTarget, ChargenCameras. Person : camera_prop, camera, SceneCamera, MoveCamera, GetViewTarget, CameraActor. CentralLondon : CameraActor ×5, CameraScene ×4, CameraPortrait ×4, CameraFullBody ×4, CameraComponent, ChargenCameras. MainMenu : SliderCameraSpeed, TextCameraSpeedValue, SizeBoxCameraSpeed, SetCameraSpeed, GetCameraSpeed, CameraComponent ×5, CameraActor ×2. ContactMenu/Contact : SelectCamera, SetViewTargetWithBlend, CurrentCamera. SexAction : SwitchCamera, Switchcamera. FirstPerson : CameraComponent ×5 (jetons). ### B. Niveaux - `find Content -name '*.umap'` → 2 : `Content/Scenes/CentralLondon.umap`, `Content/FreeAnimationsPack/Map/Overview.umap`. - `Content/__ExternalActors__` : 190 fichiers (`find … | wc -l` → 190) : `ThirdPerson/ThirdPersonMap` 41 ; `VehicleTemplate/VehicleExampleMap` 36 ; `VehicleTemplate/VehicleOffroadExampleMap` 113 (41+36+113 = 190). Chemins d'un acteur externe : `Content/__ExternalActors__//Maps////.uasset` (profondeur 8). - Aucun `.umap` ne porte le nom ThirdPersonMap / VehicleExampleMap / VehicleOffroadExampleMap ; seuls existent les dossiers `Content/__ExternalActors__/…/` et `Content/__ExternalObjects__/…/` (6 chemins par `find -iname`). `Content/ThirdPerson` et `Content/VehicleTemplate` : n'existent pas (`ls -d` : « No such file or directory »). - `git ls-files Content/__ExternalActors__ | wc -l` → 0 ; `git check-ignore -v` → `.gitignore:64:/Content/__ExternalActors__/`. `git ls-files Content | wc -l` → 292. - Motifs CameraActor / CineCameraActor / CameraComponent dans les 190 acteurs externes (sensible à la casse) : **0 fichier**. Insensible à la casse : 24 fichiers portent le seul jeton `Camera` (ThirdPersonMap 1 : `…/ThirdPersonMap/4/PN/2QISIGK5DJNQ05US8O8FXW.uasset` ; VehicleExampleMap 1 : `…/VehicleExampleMap/4/LP/UZ50PDVAY299IMPNI9D2JC.uasset` ; VehicleOffroadExampleMap 22, liste complète dans `CAM-T1_camera-insensible.txt`). | Niveau | Fichiers avec motif (casse) | Rôle (config) | Cuit ? | |---|---|---|---| | `/Game/Scenes/CentralLondon` | CameraActor (2 l.), CameraComponent (1), SceneCaptureComponent2D (1), FieldOfView (1), ChargenCameras (1), AutoActivate (1) | `GameDefaultMap` et `EditorStartupMap` (`Config/DefaultEngine.ini:10-11`) : niveau de jeu | oui, par déduction : `DefaultGame.ini:51` `+DirectoriesToAlwaysCook=(Path="/Game")`, absent des `NeverCook` ; aucune ligne `MapsToCook` | | `/Game/FreeAnimationsPack/Map/Overview` | FieldOfView (1) | non référencé en config | non : `DefaultGame.ini:55` `+DirectoriesToNeverCook=(Path="/Game/FreeAnimationsPack")` | | ThirdPersonMap (41 acteurs externes) | aucun | aucun `.umap` ; nom d'un gabarit UE (ThirdPerson) | incertain : sous `/Game` (AlwaysCook) et hors NeverCook, mais sans niveau propriétaire | | VehicleExampleMap (36) | aucun | idem, gabarit VehicleTemplate | incertain, idem | | VehicleOffroadExampleMap (113) | aucun | idem | incertain, idem | Config : `DefaultEngine.ini:8` `GlobalDefaultGameMode=/Game/BPs/GM.GM_C` ; `:9` `GameInstanceClass=/Game/BPs/GI.GI_C` ; `:10` `GameDefaultMap=/Game/Scenes/CentralLondon.CentralLondon` ; `:11` `EditorStartupMap=` (même valeur). `DefaultGame.ini` : `:41` `bCookAll=False` ; `:42` `bCookMapsOnly=False` ; `:51` AlwaysCook `/Game` ; NeverCook l. 52, 54-57 dont `/Game/Heavy/New/fBlah`, `/Game/Quaternius`, `/Game/FreeAnimationsPack`, `/Game/AnimPacks`, `/Game/Retarget_ue5`. Grep `MapsToCook` sur `DefaultGame.ini` → 0 ligne (aucune liste de cartes cuites). ### C. Config (`Config/*.ini`, fichiers : DefaultEditor, DefaultEditorSettings, DefaultEngine, DefaultGame, DefaultInput, DefaultScalability) : 8 lignes, 2 fichiers - `Config/DefaultEditor.ini:4` et `:5` : lignes `+Profiles=(ProfileName="Epic Headquarters"…` et `+Profiles=(ProfileName="Grey Wireframe"…` (profils de prévisualisation de l'éditeur ; lignes > 200 caractères, le terme qui a déclenché le motif n'est pas dans les 200 premiers). - `Config/DefaultInput.ini:79` `bEnableFOVScaling=True` ; `:93` `FOVScale=0.011110` ; `:107` `+ActionMappings=(ActionName="RotateCamera",…,Key=MiddleMouseButton)` ; `:108` idem `Key=LeftAlt` ; `:109` idem `Key=RightAlt` ; `:118` `+ActionMappings=(ActionName="SwitchCamera",…,Key=C)`. - `DefaultEngine.ini`, `DefaultGame.ini`, `DefaultEditorSettings.ini`, `DefaultScalability.ini` : 0 ligne. ### D. C++ (`Source`, `*.cpp`/`*.h`) : 81 lignes, 9 fichiers (`Found 81 total occurrences across 9 files` ; somme 4+12+4+1+6+4+3+29+18 = 81) | Fichier | Lignes | Contenu (numéros de ligne) | |---|---|---| | `Source/LifePlay/LPUserSettings.cpp` | 29 | vitesse de caméra (`CameraSpeed`, GameUserSettings.ini) l. 10-114 | | `Source/LifePlay/LPUserSettings.h` | 18 | idem, l. 1-58 | | `Source/LifePlay/LPDirectControlSubsystem.cpp` | 12 | `#include Camera/CameraActor.h` l. 15, `CameraComponent.h` l. 16 ; `FollowCamera` l. 897 : `GetViewTarget` l. 903, `SpawnActor` l. 913, `SetFieldOfView(70.f)` l. 916, log « camera troisieme personne derriere le personnage » l. 918, `SetViewTargetWithBlend(FollowView, 0.35f)` l. 922, balayage `ECC_Camera` sphère 12 l. 934-935 | | `Source/LifePlay/LPDirectControlSubsystem.h` | 4 | l. 12 (« La camera suiveuse n'est pas branchee. »), 19, 43 `FollowCamera(...)`, 64 `ACameraActor* FollowView` | | `Source/LifePlay/LPSecondScreenSubsystem.cpp` | 6 | l. 18, 20 `FaceFOV = 30.f`, 68, 103, 109, 110 `CaptureComp->FOVAngle = FaceFOV` | | `Source/LifePlay/LPSecondScreenSubsystem.h` | 4 | commentaires l. 3-10 (SceneCapture2D « SecondScreen » de CentralLondon) | | `Source/LifePlay/LPKeyboardSubsystem.cpp` | 4 | l. 92 RotateCamera, 97 SwitchCamera, 166, 168 (catégorie « Camera ») | | `Source/LifePlay/LPSettingsSubsystem.cpp` | 3 | l. 204, 346, 405 (`SliderCameraSpeed`) | | `Source/LifePlay/LPOutdoorRoomSubsystem.h` | 1 | l. 6 (commentaire) | Motifs SpringArm : 0 ligne dans `Source`. ### E. Modules texte et addon `Content/Modules` : 2053 fichiers (`find … -type f | wc -l`) ; dépôt local `5.8.git` : `status --porcelain | wc -l` → 0, `log --oneline -1` → `c8661cd`. Grep `camera` (-i) : **84 lignes, 36 fichiers** (`Found 84 total occurrences across 36 files`). Par type de fichier : `.lpscene` 31, `.lpaction` 5 (4 `ANIMATION: camera` + `mpwill_maid.lpaction`), `FAQ.txt` 1. Par module : vin_Base 28 fichiers, vin_Incest 3, vin_NTR 1, vin_BDSM 1, vin_Interracial 2, FAQ.txt 1 (28+3+1+1+2+1 = 36). Par commande de script (plus détail, E1) : | Commande / forme | Lignes | Fichiers | Source | |---|---|---|---| | `.animate(camera)` | 11 | 9 | Grep `\.animate\(camera\)` : onlyfans, reluctant_star ×2, sr_fso_campdare1_cms, sr_fso_darkalley_comedy_cms, sr_fso_door_dare_cms, sr_fso_hangout_dare1_cms, sr_fso_homemade_video_cms, sr_fso_orcmockwar_cms ×2, sr_fso_work_dare2_cms | | `ANIMATION: camera` (clé d'action) | 4 | 4 | take_photos_MULTIPLE, film_videos_MULTIPLE, windowshop, sightsee (`.lpaction` l. 12) | | `followUp(pro_incest_*_camera)` | 2 | 1 | check_on_my_family l. 54, 265 | | `timeout(, pinhole_camera_cms)` | 4 | 1 | pinhole_camera_cms l. 26, 45, 53, 67 | | `ACTION_NAME: …camera` | 1 | 1 | mpwill_maid.lpaction l. 2 | | variable `CameraBought` (`getGlobal`/`setGlobal`/`If`) | 10 | 2 | pro_incest_shower_camera (l. 9, 10, 19, 21, 29), pro_incest_bedroom_camera (l. 10, 11, 20, 22, 30) | | texte de dialogue/narration contenant « camera(s) » | 50 | 21 | Grep des lignes débutant par une chaîne `"…` ou `Acteur::` + `"` (E1, 3e regex) : 50 lignes, 21 fichiers | | commentaire `//` | 1 | 1 | dating_incalls l. 7 | | FAQ.txt | 1 | 1 | `FAQ.txt:16` « How do I control the sex scene camera? » | 11+4+2+4+1+10+50+1+1 = 84 : égal au total. Aucune commande de script de déplacement ou de cadrage de caméra n'apparaît ; les seules formes sont `animate(camera)` (animation « camera » d'un acteur), `ANIMATION: camera`, et des noms de scène ou variable. Addon `D:\Game\LifePlay-Sandbox-5.8` (HEAD `9227db8`) : Grep `camera` (-i), `Plugins/**` et `Source/**` en `*.cpp|*.h|*.cs` : **136 lignes, 10 fichiers**, tous sous `Plugins/LPSandbox/Source/LPSandbox/` : LPSandboxMeasure.cpp 49, LPSandboxMeasureTour.cpp 18, LPSandboxCamera.cpp 17, LPSandboxInteraction.cpp 15, LPSandboxMeasureMod.h 11, LPPairSandbox.cpp 7, LPPairSandbox.h 6, LPSandboxCoupleMod.cpp 5, LPSandboxCamera.h 4, LPSandboxMod.h 4 (somme 136). `Source/` seul de l'addon : 0 résultat (« No matches found »). `Content/` de l'addon : jonction vers le `Content` du jeu 5.8 (`ls -la Content` → `Content -> /d/Game/LifePlay-master 5.8/Content`), donc déjà compté en A et E ; non recompté. ### F. Dumps de graphes déjà présents (`Docs/Migration/etat/**/*.txt`) F1 : **47 fichiers**, 587 lignes ; dont 2 sont mes propres journaux (`CAM/CAM-T1_tokens.txt` 32, `CAM/CAM-T1_matrice.txt` 1) → **45 fichiers de dump** avec au moins une ligne (SetViewTarget|CameraComponent|SpringArm|ViewTarget|CameraActor, -i). Attribution par actif (F2) : 44 fichiers ; le 45e, `portage55/L6f/L6f_LPDumpComponents_20260930-102024.txt` (6 lignes), est un dump de composants de `/Game/Scenes/CentralLondon` (en-tête l. 1 : `LPDumpComponents -Map=/Game/Scenes/CentralLondon -Filter=SceneCapture -All`). Répartition F2 des 45 : GI 20 (22 lignes chacun), MainMenu 7 (3 à 12), Person 8 (1 ligne), Room 6 (6 ou 7), PC 2 (9), CentralLondon SceneCapture 2 (`L6f_components_CentralLondon_SceneCapture.txt` 5, `L6f_LPDumpComponents_20260930-102024.txt` 6) = 45. Dump le plus récent par actif (nom de l'actif, chemin sous `Docs/Migration/etat/`, date de modification, lignes à motif) : | Actif | Dump le plus récent | Date | Lignes motif | |---|---|---|---| | GI (EventGraph) | `ST/STE/dumps/GI__EventGraph_V5.txt` | 2026-10-10 23:24 | 22 | | Room (EventGraph) | `ST/STE/dumps/Room__EventGraph_V5.txt` | 2026-10-10 23:24 | 6 | | PC (EventGraph) | `ST/STE/dumps/PC__EventGraph.txt` | 2026-10-10 11:33 | 9 | | Person (EventGraph) | `ST/STE/dumps/Person__EventGraph_D4.txt` | 2026-10-10 20:17 | 1 | | MainMenu (EventGraph) | `ST/STB/dumps/MainMenu__EventGraph.txt` | 2026-10-09 21:59 | 5 | | CentralLondon (acteurs SceneCapture) | `ST/STE/dumps/CentralLondon__SceneCapture.txt` | 2026-10-10 11:33 | non compté (en-tête `LPDumpComponents -Map=/Game/Scenes/CentralLondon -Filter=SceneCapture`) | | StreetMap_Static (EventGraph) | `ST/STB/dumps/StreetMap_Static__EventGraph.txt` | 2026-10-09 21:59 | 0 | | SecondScreenFloor (composants) | `portage55/L6f/L6f_components_SecondScreenFloor.txt` | 2026-09-30 10:19 | 0 | | MapMarkers (EventGraph) | `ST/STA/dumps/MapMarkers__EventGraph.txt` | 2026-10-09 20:35 | 0 | | SexInterface (EventGraph) | `ST/STB/dumps/SexInterface__EventGraph.txt` | 2026-10-09 21:59 | 0 | | TopRight (arbre de widgets) | `portage55/L6e/L6e_LPDumpWidgetTree_20260930-081148.txt` | 2026-09-30 08:14 | 0 | | CharGen (EventGraph) | `ST/STE/STE-VAL_LPDumpFunction_20261010-141402.txt` | 2026-10-10 14:14 | 0 | Dumps de composants de Room (autres que EventGraph) : `sandbox/PairCol/PairCol_LPDumpComponents_20261004-185441.txt` et `post-v1/PawnDyn/PawnDyn_LPDumpComponents_20261004-223842.txt`, 0 ligne motif. BP caméra (liste des BP de A avec CameraActor/CameraComponent/SetViewTarget ou jeton Camera) **avec** dump d'EventGraph/fonction : GI, PC, Room, Person, StreetMap_Static, MapMarkers, plus MainMenu (UI), SexInterface (UI), CharGen (UI), TopRight (arbre de widgets). **Sans** aucun dump d'actif trouvé : Birdview, FirstPerson, Pawn, GM, CameraShake, MapStreets, CityExpansion, ContactMenu, Contact, SexAction, Builder, GameSettings, SkyBox, TestBall, TestPerson, Overview.umap. SecondScreenFloor : dump de composants seulement (30 sept.), pas de graphe. F3 : pour Birdview, FirstPerson, Pawn, GM, CameraShake, MapStreets, CityExpansion, ContactMenu, les 466 lignes comptées sur 46 fichiers viennent de journaux `CompileAllBlueprints` (14 lignes par fichier, 28 fichiers), `LPResavePackages`/`dryrun`/`application` (liste de noms d'actifs), et un journal `LPFixParse` qui cite `Birdview :: EventGraph -> K2Node_CallFunction_266` (`L4-CX-B08_application.txt:100`) : ce sont des listes ou des avertissements, pas des dumps de graphe. Les lignes des 4 fichiers `STB-VAL_LPDump…` et `STA-T2a_LPDump…` de StreetMap_Static correspondent aux dumps listés ci-dessus. ## 3. Écarts au compte attendu de la fiche - E1 : la fiche cite 190 fichiers `__ExternalActors__` : confirmé (190). Fiche : « seulement 2 `.umap` » : confirmé (2). - E2 : 12 des 21 motifs ont été annoncés 0 fichier dans mes notes de travail ; recompte de la liste du § 2 A : les motifs à 0 sont SpringArmComponent, CineCameraActor, CineCameraComponent, PlayerCameraManager, K2_SetViewTarget, TargetArmLength, bUsePawnControlRotation, CameraLag, ProbeSize, bDoCollisionTest, SetFieldOfView, SetActiveCamera = **12** ; les 9 motifs présents : CameraComponent, CameraActor, SceneCaptureComponent2D, SetViewTargetWithBlend, SetViewTarget, GetViewTarget, FieldOfView, ChargenCameras, AutoActivate (12 + 9 = 21). La phrase « 11 sur 21 » au début de ce § 2 A est fausse : la valeur correcte est 12 (erreur de plume corrigée ici, la liste nominative fait foi). - E3 : la fiche attendait des BP Pawn, GM, SecondScreenFloor, CameraShake, MapStreets, CityExpansion « à relever » : Pawn, GM, SecondScreenFloor, CityExpansion n'ont aucun jeton camera (A4) ; CameraShake et MapStreets n'ont que des jetons « CameraShake/EngineCameras » et « Camera » (aucun des 21 motifs). - E4 : la fiche liste `LPSettingsSubsystem` et `LPUserSettings` comme citant « camera » : confirmé (3 et 47 lignes) ; `LPKeyboardSubsystem` (4), `LPOutdoorRoomSubsystem.h` (1), `LPSecondScreenSubsystem` (10), `LPDirectControlSubsystem` (16) : confirmé. Aucun autre fichier C++ n'apparaît. - E5 : méthode « union + comptes sur candidats » au lieu de 21 passes complètes (équivalence argumentée en § 1). - E6 : l'attribution F2 des 45 fichiers de dump repose sur l'en-tête (15 premières lignes) ; aucun fichier de `CAM-T1_dumps.txt` n'existe (redirection refusée par les permissions, sortie résumée ici). - E7 : `Config/DefaultEditor.ini:4-5` : le terme déclencheur n'a pas été isolé (voir § 2 C). ## 4. Établi / estimé / incertain **Établi** (sortie de commande rejouée, § 2) : les comptes A, A4/A5, B (niveaux, découpe des 190, cartes de config), C, D, E, F1/F2 ; le recoupement A3 = somme des colonnes de la matrice (9 motifs concordants) ; A4 (403) = somme des dossiers (14+1+12+24+352) ; 84 = somme des catégories de commandes du § 2 E ; 136 = somme des fichiers addon ; 81 = somme des fichiers C++. **Estimé** : « CentralLondon cuit » (déduit de AlwaysCook `/Game` + absence dans NeverCook ; pas de journal de cuisson relu) ; « Overview non cuit » (NeverCook `/Game/FreeAnimationsPack`) ; « ThirdPerson/VehicleTemplate sont des gabarits » (déduit des noms de dossiers et de l'absence de `.umap` homonyme ; pas de preuve par un autre fichier) ; catégorisation « dialogue » des 50 lignes (regex de début de ligne, comptée mais non relue ligne à ligne). **Incertain** : (1) si les actifs `__ExternalActors__` sont réellement cuits sans niveau propriétaire (essai : lire le journal ou le manifeste de la dernière cuisson `U8r`, ou lister le contenu de l'archive) ; (2) la signification des 344 jetons `EditorCameraPosition` dans `Content/Heavy` (non cartographiée ici) ; (3) si le `.uasset` binaire écrit les noms en ASCII pour tous les actifs : un nom stocké en UTF-16 échapperait à `grep -a` (aucune raison de le croire pour des noms de classe, mais non testé) ; (4) les comptes `grep -c` sur binaires sont des lignes, pas des occurrences (une ligne peut porter plusieurs occurrences) ; (5) le contenu de `Config/DefaultEditor.ini:4-5` (terme non vu) ; (6) pas de dump Blueprint pour Birdview, FirstPerson, Pawn, GM, CameraShake, MapStreets, CityExpansion : un dump de composants ou de fonctions serait à produire par une fiche de cartographie (CAM-T2/T3), hors de cette fiche (lecture seule). Fichiers écrits (chemins absolus) : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\CAM\CAM-T1-INV.md` ; journaux : `…\CAM\CAM-T1_union.txt`, `…\CAM\CAM-T1_matrice.txt`, `…\CAM\CAM-T1_camera-insensible.txt`, `…\CAM\CAM-T1_tokens.txt`. Fichiers à commiter : aucun fichier suivi modifié ; `Docs/Migration/etat/` n'est suivi que pour les `.md` et `.csv` (`lp-paths`), donc seul `CAM-T1-INV.md` (A) est candidat, et le dossier `CAM/` est déjà non suivi (`??` au statut initial). Tours : 21 / 40 ## Constats - Le jeu n'a aucune trace binaire de SpringArm, de CineCamera, de PlayerCameraManager ni de bUsePawnControlRotation dans `Content` ; les caméras Blueprint sont des `CameraActor` (9 actifs) et des `CameraComponent` (6 actifs), pilotées par `SetViewTargetWithBlend` (GI, PC, ContactMenu). - Les 190 acteurs externes (ThirdPerson, VehicleTemplate) ne contiennent aucun CameraActor/CameraComponent ; leurs niveaux n'existent pas en `.umap`, le dossier est ignoré par git (`.gitignore:64`). - Le C++ contient déjà une caméra de suivi à la 3e personne (`LPDirectControlSubsystem::FollowCamera`, FOV 70, `SetViewTargetWithBlend` 0,35 s), dont le commentaire d'en-tête dit qu'elle « n'est pas branchée » (`LPDirectControlSubsystem.h:12`) ; ni sa distance ni sa hauteur n'ont été relevées ici (CAM-T2/T3). - Les modules n'utilisent aucune commande de script de cadrage : seulement `animate(camera)` (11 lignes), `ANIMATION: camera` (4) et des noms de scène. - L'addon contient un module de caméra de bac à sable (`LPSandboxCamera.cpp`/`.h`, 21 lignes) et des mesures (`LPSandboxMeasure*.cpp`, 78 lignes) ; non lus au-delà du compte.