GLTF Level Importer Addon for Godot
A downloadable addon
Tools that enable you to build entire functional levels in Blender for Godot. It extends the GLTF import functionality to provide allow seamless importing of Godot Nodes and Scenes from Blender.
Features:
- Replace placeholder objects with PackedScenes and set properties to customize their behaviour.
- Automatically replace GLTF materials with any Godot one of the same name.
- Create optimized Box and Sphere CollisionShape3D's directly in Blender, also create FogVolume, OccluderInstance3D, and ReflectionProbe.
- Convert Bezier curves to Path3D, including aligned and free handles, tilt, and the option to loop curves by connecting the first and last points.
- Create MultiMeshInstance3D from Blender Geometry Node Instances
Why?
Switching between software breaks your flow, being able to build out your level geometry and the functional parts of your level in one program maximises your productivity.
You can leverage the power of a dedicated level editor like Hammer without having to reinvent the wheel, customize Blender layouts and shortcuts to optimize your workflow.
Take advantage of an existing Blender ecosystem to power your level design. Build level geometry and texturing with addons like DreamUV, Geometry Nodes to build custom tools like MultiMesh scatterers with more flexibility and real-time feedback compared to Godot's existing toolset, and use Asset Libraries to organize and search your scenes and materials.
How to use the addon:
- Install the addon by dropping the folder in your Addons directory and enabling it.
- Create a new GLTFLevelImporterDefault Resource where you can define which folders the addon will use to find meshes and scenes, and what files the importer will be used for.
- In the addon folder you will find the gltf_register_scene.tscn scene, this scene contains a node with the "Extensions to Register" array property, add your previously created Resource to this array and save the scene.
- Restart the editor to take effect.
Note that the addon is only used for files in the Level folder defined in the Resource, see the readme for details.
How to set up in Blender:
You will need to enable some export settings to work, as the features rely on Custom Properties to define their functionality. You will also need to enable "Attributes" and "Loose Points" for curve exporting. See the readme for full details.
Supported versions:
Godot 4.2.x, 4.3.x
Blender 3.x, 4.x
Updated | 8 days ago |
Status | In development |
Category | Tool |
Author | burning_barb |
Tags | 3D, addon, Blender, gltf, Godot, level-design, Level Editor, plugin |
Purchase
In order to download this addon you must purchase it at or above the minimum price of $5 USD. You will get access to the following files:
Download demo
Development log
- Version 0.2 ReleasedApr 08, 2024
Comments
Log in with itch.io to leave a comment.
Hey there Barb!
Would you be able to say which license the plugin is under once purchased?
Sorry that I missed this! Just a regular commercial license, perpetual, use on as many projects as you want, no redistribution. If you have any more specific questions I'd be happy to answer them.
Hi Barb,
Thank you, it works!
Notes:
I've encountered 2 problems which seem to be on the Godot's side.
1: After exporting and opening the Godot editor, the addon doesn't have the option to choose the "level" folder.
At this moment, just restart the editor, and the option will appear.
2: After that, the exported glb file that contains the Beizer curve object from Blender, needs to be re-imported. Otherwise, it will still appear as a mesh when it is opened in the scene.
(even if it shows as a Path3D object when one is viewing the glb file)
(I'm using Godot_v4.2.1-stable_win64, Blender 3.6.5)
Also, note the spelling:
Glad you got it working! I'm updating the instructions so I'll be sure to add the restart step, since Godot needs to actually register the classes in the addon.
Hi Barb,
Could you elaborate on how to export the Beizer curve in Blender to the Path3D in Godot?
I've added the custom properties as specified in the description, but in Godot, it just shows it as mesh.
Thank you!
Can you check if you have done the following?
- Enabled the plugin, and added an "Extensions to Register" Resource that defines your "level" folder. This tells Godot when to use the addon
- Added the Bezier Curves Export geometry node modifier provided, note that the modifier must be applied when exporting. This packs the data into a useable format.
- Enabled "Custom Properties" in the Blender GLTF export under Include - Data. This tells the addon what meshes to operate on.
- Enabled "Loose Points" and "Attributes" in the Blender GLTF export under Data - Mesh. This lets us export the points which contain our information from Blender.
Apologies if it wasn't clear that "Loose Points" and "Attributes" are needed for curves, I'll update the page to reflect that.
Hi Barb,
I've tried the above steps, but still got a mesh instead of a curve.
Could you kindly share a video about the steps? (or an even simpler example that can export a Beizer curve from the Blender to the Godot as a Curve3D object)
Also, how is "Extensions to Register" used?
Thank you!
Hi, it appears as if bezier has been typo'd as "beizer", can you try correcting the spelling and seeing if the problem persists?
To address how the Godot addon functions, the gltf_level_register.tscn is run on startup, and iterates over all the Resources defined in the "Extensions to Register" Array. This tells Godot that it should use that Resource, and the Resource itself which provides the functionality and is used to define which folders to look in for(this avoids iterating over all of the files in the project and applying the addon's importer only to the files we want).
Note that the curve importing will only apply to gltf files in the Resource's Level folder, which in the demo is res://data/levels
Looks amazing! Must buy it later when I transfer to godot 4.x