Skip to content

Commit

Permalink
Merge pull request #80831 from aaronfranke/gltf-skel-gen-multi-scene
Browse files Browse the repository at this point in the history
Fix skeletons when generating multiple Godot scenes from one GLTF
  • Loading branch information
akien-mga committed Sep 29, 2023
2 parents 94377f5 + 7bd894b commit 7f179e4
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions modules/gltf/gltf_document.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 7f179e4

Please sign in to comment.