Skip to content

Allow importing scenes (glTF etc) as MeshLibraries #5375

Description

@jtnicholl

Describe the project you are working on

Porting the official demos to 4.0 (see godotengine/godot-demo-projects#770)

Describe the problem or limitation you are having in your project

Currently, the typical process for creating a MeshLibrary involves exporting a .gltf or .glb to your project, setting up collision shapes and navmeshes for the scene in the import options, then opening the file as a new inherited scene and exporting it as a MeshLibrary.
This MeshLibrary resource contains screenshots, as well as copies of the mesh, collision shape, and navmesh data, all bundled into one file. And because it has to be created manually, you will probably want to include it in version control, even though the only data it has is either auto-generated or duplicated from the glTF file.

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

It would be much simpler if the scene importer allowed importing scenes directly as MeshLibrary resources.

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

In the import tab, add an option for MeshLibrary in the "Import As" dropdown alongside Scene and AnimationLibrary.
The advanced import window will still be available and used for setting collision shapes, use external materials, etc.
This will make it faster and easier to create MeshLibraries, as you won't have to manually open a new inherited scene and export every time, and also reduce the amount of binary data in version control.

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

It might be possible to do this with an import script, but I don't think that should be necessary. This is about improving the default workflow for MeshLibrary and by extension GridMap, which are core features.

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

I'm sure it's possible to do this with an import plugin as well, but I believe it's basic enough that it should be in core. Plugins shouldn't be necessary for usability of core features.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions