--- name: PS_Editor plugin project description: Runtime editor plugin for UE 5.5 - object placement, scene editing, JSON save/load in packaged builds type: project --- PS_Editor is a runtime editor plugin for Unreal Engine 5.5 for the PROSERVE project. Key decisions: - UI: UMG driven by C++ (Slate) - Gizmos: Custom actor with BasicShapes + unlit material (ITF is editor-only) - Serialization: JSON via Json/JsonUtilities (FJsonObjectConverter) - Naming: PS_Editor_ prefix on all files/classes - Plugin path: Unreal/Plugins/PS_Editor/ - AZERTY keyboard: arrows + A/Q for movement, E/R/T for modes - Selection outline: auto-generated post-process material (C++), 8-neighbor edge detection on CustomStencil ## Completed Phases ### Phase 1 - GameMode + Camera - Camera: Fly (RMB), Pan (LMB drag), Orbit (Alt+LMB / MMB) - Movement: arrows + A (up) / Q (down) ### Phase 2 - Selection + Transform + Undo - Click-to-select (Movable actors only), Ctrl+click multi-select - Custom gizmo (R/G/B arrows + cones, SDPG_Foreground, constant screen size) - Translate/Rotate/Scale via gizmo drag, hotkeys E/R/T - Snap to ground (End), soft-delete (Delete + confirmation dialog) - Undo/Redo (Ctrl+Z/Y, 50 action stack) - Properties panel + toolbar UI - Materials: M_PS_Editor_Gizmo (Unlit, "Color" param, Translucent, Disable Depth Test) - Selection outline: auto-generated PP material, BL_SceneColorAfterDOF, Lerp blend, color AF1500, 1px - Outline material auto-created via OnPostEngineInit, uses InvSize for resolution-independent offsets ### Phase 3 - Object Spawning - SpawnableComponent: marker on BPs (name, category, thumbnail) - SpawnCatalog DataAsset + Factory for easy creation - SpawnManager: spawns in front of camera, tracks all spawned actors - Catalogue UI: thumbnail cards (80x80), click to spawn, grouped by category - CaptureAllThumbnails on DataAsset: auto-generates from UE thumbnails - Spawn undo/redo, auto-deselect hidden actors ### Phase 4 - JSON Serialization - SceneData USTRUCT (Version, SceneName, Timestamp, Actors[ClassPath, Location, Rotation, Scale]) - SceneSerializer: Save/Load/Clear/GetSavedSceneNames - Files in Saved/PS_Editor/Scenes/{name}.json - UI: Save field + button, New Scene, saved scenes list with click-to-load ## Next: Phase 5 - Advanced Editing - Splines, lighting, AI characters, property editing, duplication (Ctrl+D)