• 3D
  • Godot 3.1.1 crashing when importing GLTF from Cinema 4D

Hi all, I'm new here. I tried exporting a GLTF file from Cinema 4D to Godot to see how well it works. Unfortunately, as the title suggests, the engine seems to crash while trying to import. I'm using the official GLTF exporter plugin of Maxon found here: https://labs.maxon.net/?p=3360

You can take a look at the GLTF file I tried to use here: https://www.dropbox.com/s/5y6i66a5fpx8vcx/Running.gltf?dl=0 I tried loading it in the Babylon.js sandbox and seems to work fine there.

Would be great to know what is the issue, if it's a problem of the exporter I could report the issue there.

I downloaded the file and tried to import it in to Godot 3.1.1 on Windows, and it also crashes on my end. I opened the Godot editor in Windows Powershell and found the following errors are printed:

! OpenGL ES 3.0 Renderer: GeForce GTX 660 Ti/PCIe/SSE2 ! ERROR: set_name: Condition ' name == "" ' is true. ! At: scene/main/node.cpp:930 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=0 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=1 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=2 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=3 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=4 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=5 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=6 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=7 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=8 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=9 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=10 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=11 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=12 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=13 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=14 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=15 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=16 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=17 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=18 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=19 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=20 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: add_bone: Condition ' p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1 ' is true. ! At: scene/3d/skeleton.cpp:354 ! ERROR: set_bone_rest: Index p_bone=21 out of size (bones.size()=0) ! At: scene/3d/skeleton.cpp:467 ! ERROR: get: FATAL: Index p_index=-1 out of size (size()=26) ! At: ./core/cowdata.h:151

Looking at the output, it seems to be something with the name of the bones in the GTLF file. Maybe try changing the bone names (and maybe the mesh name) and export again and see if that fixes it? If that doesn't do anything, then I'd open a GitHub issue, since other GTFL importers don't have an issue with the file, it is probably something Godot related.

(Side note: Welcome to the forums!)