Rotation gizmo: - Quarter-arc rings via UProceduralMeshComponent (3D solid with depth) - Dynamic arc facing: arcs flip to face camera based on octant - Grey guide lines from center to arc endpoints - Screen-space rotation direction (correct from any camera angle) Scale gizmo: - Arrow shafts + cube tips for per-axis scale - Center cube (grey) for uniform XYZ scale - Local space orientation (gizmo aligns with actor rotation) Other: - Runtime confirmation dialog (replaces FMessageDialog) - ProceduralMeshComponent plugin dependency added Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
name, description, type
| name | description | type |
|---|---|---|
| PS_Editor plugin project | Runtime editor plugin for UE 5.5 - object placement, scene editing, JSON save/load in packaged builds | 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)