diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-17 09:17:35 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-17 09:17:35 +0200 |
commit | e72a70de8e7fc64fae7859fe30fffa9732da5602 (patch) | |
tree | 96dba1d697bca625d804b073e2d21dba582ecec0 /modules/gltf/skin_tool.cpp | |
parent | 13064c4ac848d7d8207a8a8b0d1eb02db91f9e62 (diff) | |
parent | 0468bea899fe4806d8358c1cab078f700ab84d22 (diff) | |
download | redot-engine-e72a70de8e7fc64fae7859fe30fffa9732da5602.tar.gz |
Merge pull request #87150 from demolke/bones
Add per-bone meta to Skeleton3D
Diffstat (limited to 'modules/gltf/skin_tool.cpp')
-rw-r--r-- | modules/gltf/skin_tool.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/modules/gltf/skin_tool.cpp b/modules/gltf/skin_tool.cpp index a344334d93..1522c0e324 100644 --- a/modules/gltf/skin_tool.cpp +++ b/modules/gltf/skin_tool.cpp @@ -602,6 +602,11 @@ Error SkinTool::_create_skeletons( skeleton->set_bone_pose_rotation(bone_index, node->transform.basis.get_rotation_quaternion()); skeleton->set_bone_pose_scale(bone_index, node->transform.basis.get_scale()); + // Store bone-level GLTF extras in skeleton per bone meta. + if (node->has_meta("extras")) { + skeleton->set_bone_meta(bone_index, "extras", node->get_meta("extras")); + } + if (node->parent >= 0 && nodes[node->parent]->skeleton == skel_i) { const int bone_parent = skeleton->find_bone(nodes[node->parent]->get_name()); ERR_FAIL_COND_V(bone_parent < 0, FAILED); |