(For TL:DR just read the docs)
So you might know Godot has the ability to import blender files directly. (If not, well now you know!) This is nice, but I was trying to make some large levels and I found the workflow less than ideal. The import dialogue is a bit clunky, so it’s hard to specify what objects have collision if there’s a lot of objects.
Import hints help a lot. Basically, in blender, for each object you want to have collision, you can append -col or -convcol to the end of the object name and Godot will add it automatically!
You can use -colonly or -convcolonly to make the geometry only import as collision. This isn’t even limited to geometry - you can add it to empty objects and it will create primitive collision shapes.
-noimp can also be used to simply skip importing an object. I actually found a really cool workflow tip with this: Lets say you have a large level file, and maybe you want to split it up into multiple .blend files for organization or convenience. (For me, it was due to lightmaps. I wanted to separate far detail so I could lower the lightmap resolution.) In Blender, for each file, you can go to File->Link, select the other blend file, and add its main collection containing everything else. Then, add -noimp to that linked collection. Now, you can view the entire level in blender but Godot will keep them all separate on import!
There’s a few other hints and I recommend you check out the documentation for all the details.
Hopefully some of you found this useful!
This is very interesting. Are there similar options for Unity?
Not that I’m aware of, unfortunately.
I’ve constantly been finding -col and -loop really useful.
I’ll be working on level generation for a rogue-like in 3D and I am wondering if I should try to create the entire room in blender or simply create pieces like 3m by 3m walls that snap together to create the rooms in godot… I feel like I could generate more things by keeping it pieces in godot but performance is a concern.
Godot has built in CSG that you might use instead of importing primitives from blender.
Eh csg isn’t for production. It’s for level blockout. It’s high cost in a few ways and is rather just model it. I might in fact model out an example level first entirely in blender so I know what my generation should aim for.
@julianh i am confused , when they mention adding in a linked collection and appending -noimp to the collection , are they saying that all the objects in that collection will be ignored? i was under the impression that import hints only work for object names, but if they also work for collection names for all children in a collection that would be a huge time saver.
For me -noimp works for the collection but I need to test more to see if all hints work for collections.