You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mainly motivated after seeing a discussion in #5003, but this proposal can be applied to any project.
Describe the problem or limitation you are having in your project
Nodes like MeshInstance, CollisionShape and PointLight2D require a very simple and repetitive setup, such as just adding a Box or a Capsule shape, or adding a Gradient2D resource.
This is often very tedious to do, especially with nodes like PointLight2D and might make simple things like shapes more difficult to discover for new users, especially those used to other engines where you can usually just look that specific shape up and add it straight away, which might make them assume the engine just doesn't have those built in and that the user needs to import their own (speaking from personal experience).
Describe the feature / enhancement and how it helps to overcome the problem or limitation
A simple Node Preset system, the engine would ship with some common presets built-in.
Presets can be selected in the Create New Node window as well as in the inspector.
The user also has an option to create custom presets for any node, this saves the node settings, used resources and their settings, and the attached script and its settings to a file.
The selecting a preset simply changes the settings of a node (does not override them, the user can still reset them to node default), as well as add resources, the settings of which can also be changed by the preset.
The Transform settings Control and Node2D and Node3D will most likely have to be ignored by the preset, as then selecting a custom preset from the inspector will reset the nodes transform.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
A few very rough UI-Mockups, only to get the basic idea across.
Selecting a preset from the Add Node dialog, I am not sure how to mark custom presets in this case.
Also works with searching.
Selecting a preset from the Inspector, custom ones are marked with a blue rectangle. There is also an option to save the current settings as a preset, which would prompt you to name it first.
The Big Red Box custom preset in this case sets the MeshInstance3Ds mesh resource to BoxMesh with non-default scale, and a material that makes it red (either adding it to the mesh resource material slot or the override slot in GeometryInstance3D.
Please note the icons, colors and names of resources are only used as a placeholder here, as the actual presets would likely have unique/customizable ones.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I am not exactly sure how possible it would be to extend the editor to be able to do this through an add-on.
Is there a reason why this should be core and not an add-on in the asset library?
This is mainly to help users save time not having to do repetitive tasks and help new users discover certain things more easily.
The text was updated successfully, but these errors were encountered:
ettiSurreal
changed the title
Add built-in and custom node preset system
Add a node preset system
Jan 7, 2023
This can practically be achieved through the use of class_name scripts, and setting the defaults you want in _init(). You don't get a fancy preset picker. But you do get the various classes populating the editor. Many of Godots Button classes are practically this, setting a few properties and doing nothing else.
I forgot to search proposals when opening a discussion, but consider the usability improvements and use cases mentioned here too #9557 in case this is going to be developed.
Describe the project you are working on
Mainly motivated after seeing a discussion in #5003, but this proposal can be applied to any project.
Describe the problem or limitation you are having in your project
Nodes like
MeshInstance
,CollisionShape
andPointLight2D
require a very simple and repetitive setup, such as just adding a Box or a Capsule shape, or adding a Gradient2D resource.This is often very tedious to do, especially with nodes like
PointLight2D
and might make simple things like shapes more difficult to discover for new users, especially those used to other engines where you can usually just look that specific shape up and add it straight away, which might make them assume the engine just doesn't have those built in and that the user needs to import their own (speaking from personal experience).Describe the feature / enhancement and how it helps to overcome the problem or limitation
A simple Node Preset system, the engine would ship with some common presets built-in.
Presets can be selected in the Create New Node window as well as in the inspector.
The user also has an option to create custom presets for any node, this saves the node settings, used resources and their settings, and the attached script and its settings to a file.
The selecting a preset simply changes the settings of a node (does not override them, the user can still reset them to node default), as well as add resources, the settings of which can also be changed by the preset.
The Transform settings
Control
andNode2D
andNode3D
will most likely have to be ignored by the preset, as then selecting a custom preset from the inspector will reset the nodes transform.Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
A few very rough UI-Mockups, only to get the basic idea across.
Selecting a preset from the Add Node dialog, I am not sure how to mark custom presets in this case.
Also works with searching.
Selecting a preset from the Inspector, custom ones are marked with a blue rectangle. There is also an option to save the current settings as a preset, which would prompt you to name it first.
The Big Red Box custom preset in this case sets the
MeshInstance3D
s mesh resource toBoxMesh
with non-default scale, and a material that makes it red (either adding it to the mesh resource material slot or the override slot inGeometryInstance3D
.Please note the icons, colors and names of resources are only used as a placeholder here, as the actual presets would likely have unique/customizable ones.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I am not exactly sure how possible it would be to extend the editor to be able to do this through an add-on.
Is there a reason why this should be core and not an add-on in the asset library?
This is mainly to help users save time not having to do repetitive tasks and help new users discover certain things more easily.
The text was updated successfully, but these errors were encountered: