diff options
author | Aaron Franke <arnfranke@yahoo.com> | 2023-08-20 15:21:12 -0500 |
---|---|---|
committer | Aaron Franke <arnfranke@yahoo.com> | 2023-09-28 17:48:33 -0500 |
commit | 7bd894ba7a9d68df8dcaebccb40187db963598c2 (patch) | |
tree | 0d301d2dfd12855db908465bb4e2dec492dec4c5 | |
parent | fbe611e45eebe48e2fdf4065fc70acad1cca2e0e (diff) | |
download | redot-engine-7bd894ba7a9d68df8dcaebccb40187db963598c2.tar.gz |
Fix skeletons when generating multiple Godot scenes from one GLTF
-rw-r--r-- | modules/gltf/gltf_document.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index cee65d70c9..bac988630d 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -7347,6 +7347,12 @@ Error GLTFDocument::write_to_filesystem(Ref<GLTFState> p_state, const String &p_ } Node *GLTFDocument::_generate_scene_node_tree(Ref<GLTFState> p_state) { + // Generate the skeletons and skins (if any). + Error err = _create_skeletons(p_state); + ERR_FAIL_COND_V_MSG(err != OK, nullptr, "GLTF: Failed to create skeletons."); + err = _create_skins(p_state); + ERR_FAIL_COND_V_MSG(err != OK, nullptr, "GLTF: Failed to create skins."); + // Generate the node tree. Node *single_root; if (p_state->extensions_used.has("GODOT_single_root")) { _generate_scene_node(p_state, 0, nullptr, nullptr); @@ -7539,14 +7545,6 @@ Error GLTFDocument::_parse_gltf_state(Ref<GLTFState> p_state, const String &p_se err = _determine_skeletons(p_state); ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - /* CREATE SKELETONS */ - err = _create_skeletons(p_state); - ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - - /* CREATE SKINS */ - err = _create_skins(p_state); - ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - /* PARSE MESHES (we have enough info now) */ err = _parse_meshes(p_state); ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); |