summaryrefslogtreecommitdiffstats
path: root/modules/gltf/skin_tool.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-09-17 09:17:35 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-17 09:17:35 +0200
commite72a70de8e7fc64fae7859fe30fffa9732da5602 (patch)
tree96dba1d697bca625d804b073e2d21dba582ecec0 /modules/gltf/skin_tool.cpp
parent13064c4ac848d7d8207a8a8b0d1eb02db91f9e62 (diff)
parent0468bea899fe4806d8358c1cab078f700ab84d22 (diff)
downloadredot-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.cpp5
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);