Yesterday, I tried to open my project no signal on another Arch Linux computer. The most recent work I had done was to upgrade from Godot 4.3 to 4.4, and everything seemed to be fine. However, opening the project on this computer didn't work. Instead, I got the following import errors:
Godot Engine v4.4.1.stable.arch_linux (c) 2007-present Juan Linietsky, Ariel Manzur & Godot Contributors.
--- Debug adapter server started on port 6006 ---
--- GDScript language server started on port 6005 ---
ERROR: Failed loading resource: res://src/auto/auto.svg. Make sure resources have been imported by opening the project in the editor at least once.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_keycard.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_fusebox_a.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_fuse_a.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_games_dartboard.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_games_darts.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_plate_cakestand.fbx'.
ERROR: Failed loading resource: res://models/non-interactables/sm_props_games_dartboard.fbx. Make sure resources have been imported by opening the project in the editor at least once.
ERROR: Failed loading resource: res://models/non-interactables/sm_props_games_darts.fbx. Make sure resources have been imported by opening the project in the editor at least once.
I wasn't sure what this was about, and it
seemed a bit strange. I remembered that one of
the recent changes in Godot was to use a new FBX
importer called ufbx
which was
included in the build of Godot instead of the
command line tool FBX2glTF
which
needed to be installed separately, and so I
suspected that might be one of the issues. When
I looked at the code for
editor_scene_importer_fbx2gltf.cpp
,
I saw that all it was doing was running a
command:
Godot 4.4 editor_scene_importer_fbx2gltf.cpp
::get_singleton()->execute(fbx2gltf_path, args, &standard_out, &ret, true); OS
Which was strange, because I was expecting it
to call ufbx
instead. Looking up
the error code online reveals that error code
127 is returned on linux when the program cannot
be found, and this made sense to me because I
had uninstalled godot-fbx2gltf-bin
in anticipation of not needing it anymore.
Checking the import settings, I found out
that FBX assets actually have a property
fbx/importer
which can be changed
between FBX2glTF
and
ufbx
. For the files that failed to
import, it was currently set to
FBX2glTF
. Changing it to
ufbx
resolved the issue.