Quiet Runtime Editor is a sandbox template project with related runtime features designed to create, save, load, and edit 3D scenes.
Overview
Runtime Import
The editor works in two modes:
- Edit Mode – to design scenes.
- Play Mode – to play in designed scenes with your player character.
Main Feature
The core of the project is the Runtime World Outliner. In the project's current version, the World Outliner's foundation is BP_QuietTreeManager. This actor needs to be placed in the level and initializes the entire system at startup.
BP_QuietTreeManager(Manager) stores the world tree, manages the history of actions, generates the user interface, and connects all the editor's features into a single working environment. It contains SerializerComponent and HistoryCompoent. Also, the Manager keeps the Router.
Serialization
The project is based on the ability to serialize objects to JSON. This allows you to edit properties, copy, save to disk, and keep a history of actions for undo-redo.
You can serialize desired classes manually using the provided serialization pipeline.
Details
Communications
Different editor parts are independent and communicated through an intermediary object-router. The router register objects by request and keeps them with the Gameplay Tag key. Thus, you can pass a command or request between any two system parts without accessing them directly. Also, you can wrap any data or objects with JSON and send them through the router.
Other Features
Scene Save and Load System.
The manager saves and loads scenes into the Documents/QuietRuntimeEditor/SaveGames folder in Json-file with the WBP_SceneManager widget. Also, you can rename and delete scenes with it.
Runtime Adding Lights
The user can add lights and PostprocessVolume to scenes by dragging them from the main toolbar.
Runtime Datasmith Import – You can import udatasmith, gltf, and glb files runtime.
Runtime Actor Details (WBP_DetailsWidget) – This feature allows you to edit the serialized properties of actors.
Runtime Content Browser (WBP_QuietContentBrowser) – an important feature that allows you to add content to scenes. It grabs assets from the UserContent folder.
Runtime Material Editor (WBP_QuietMaterialEditor) – a widget for creating and editing Dynamic Materials. Users can create a dynamic material by dragging MaterialInstanceConstant from the ContentBrowser. Also, you can serialize your materials to represent their parameters as you want.
Actions History – this feature registers user actions and stores needed data for Undo-Redo to Json-file.
Runtime Transformation Gizmo allows you to edit actor transforms at runtime.
Actor Transform Tools – multiple tools to transform, align and populate actors.
Runtime Color Wheel (WBP_ColorPickerWindow) – this widget allows a user to select the desired color.
I have planned improvements and additional features for almost every feature in this project so that I will constantly update the project. However, I will be glad to receive suggestions and advice from you.
Examples
You can download example scenes here. Place the SaveGames folder into the Documents/QuietRuntimeEditor folder.