Blender import hints - An extremely useful feature for 3D games - eviltoast

(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!

  • MJBrune@beehaw.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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.

    • Rodeo@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Godot has built in CSG that you might use instead of importing primitives from blender.

      • MJBrune@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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.

  • flaeky pancako@prsm.space
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    @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.

    • Julian@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      For me -noimp works for the collection but I need to test more to see if all hints work for collections.