godot-proposals icon indicating copy to clipboard operation
godot-proposals copied to clipboard

Add more modularity to scene inheritance

Open ChildLearningClub opened this issue 8 months ago • 3 comments

Describe the project you are working on

An editor plugin that does as I describe in this proposal. But I want to propose that it be considered as a workflow within the engine itself.

Describe the problem or limitation you are having in your project

Imported 3D scenes are not made modular by default in Godot. Assets between different studios may have different scene structures, additional unwanted nodes, or origin points and offsets.

Godot should be able to manage these without requiring additional tools like Blender. Additionally the current implementation of inherited scenes leaves the user without the ability to edit any nodes that come from that original scene. Users are left with the option to create a new scene and add the original as a child of it to maintain a connection to the source, or "make local" breaking the connection and creating additional unlinked resources within the scene.

I know efforts are being made to make the extracting of objects into resources better, so this proposal is not focused on that, rather on the implementation of this more "Bottom up" workflow in creating scenes and the use of those resources after they are imported.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Scenes can be built from the ground up when placed. Starting from a base Mesh and built on to based on user defined options such as body type, collision, texture etc. rather then inheriting from entire ridged scenes, individual nodes will inherit from resources. This will allow for a link to be maintained while giving flexibility to the scene structure. This "Soft link" between the original scene file that gets updated externally and the time before it is parsed to overwrite the resources that are being referenced by scenes created within Godot, can be enabled or disabled as desired by the user.

Changes to referenced textures, animations, mesh etc. could also be optionally pushed back to the original scene file through this link.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

https://github.com/user-attachments/assets/0d327ca8-cad6-402f-a3ef-dca2d79a2c22

https://github.com/user-attachments/assets/58c72206-e9b7-45be-8e11-ef58657ee5a8

Image

*With a Texture, LOD and Animation Buttons. WIP

If this enhancement will not be used often, can it be worked around with a few lines of script?

A plugin can do all of this, but implementing it into the engine would be better. :) plus I still need to learn C++.

Is there a reason why this should be core and not an add-on in the asset library?

I think this approach has many advantages and would be a powerful workflow to implement within the engine itself.

ChildLearningClub avatar Mar 10 '25 20:03 ChildLearningClub

I really can't come up with a more descriptive title for what I'm trying to convey. Everything that I am doing is already built into the engine, so it doesn't need to be added, so maybe, "Streamline the use of functions that are already built into the engine"?

ChildLearningClub avatar Mar 11 '25 21:03 ChildLearningClub

This reminds me a lot of blender collections.

  1. blender collections is a view on the data-oriented scene
  2. does not replace the original scene
  3. groups meshes and such for easier access

fire avatar Mar 22 '25 11:03 fire

Hi @fire, thanks for your comment. I will have to take a look at that, I’m not aware of it in blender. I guess simply all what this proposal aims to do is more easily expose the options that are already available and make it so that the user can quickly swap between the options that are. Just wanted to make that more clear for anyone if it wasn’t already. I just see a lot of comments online about people struggling to swap out textures and a panel like this would I think help solve that issue, along with the ability to swap out collision shapes body inheritance etc.

ChildLearningClub avatar Mar 22 '25 14:03 ChildLearningClub