[Bf-extensions-cvs] [db31b917] master: glTF importer: fix bug when no InverseBindMatrices is provided
Julien Duroure
noreply at git.blender.org
Thu Jan 24 18:59:09 CET 2019
Commit: db31b91754359e5d6225f553477eed73fe5b6df2
Author: Julien Duroure
Date: Thu Jan 24 18:58:30 2019 +0100
Branches: master
https://developer.blender.org/rBAdb31b91754359e5d6225f553477eed73fe5b6df2
glTF importer: fix bug when no InverseBindMatrices is provided
===================================================================
M io_scene_gltf2/blender/imp/gltf2_blender_skin.py
===================================================================
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_skin.py b/io_scene_gltf2/blender/imp/gltf2_blender_skin.py
index db0e50f9..bfe713a8 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_skin.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_skin.py
@@ -52,15 +52,19 @@ class BlenderSkin():
# Set bone bind_pose by inverting bindpose matrix
if node_id in pyskin.joints:
index_in_skel = pyskin.joints.index(node_id)
- inverse_bind_matrices = BinaryData.get_data_from_accessor(gltf, pyskin.inverse_bind_matrices)
- # Needed to keep scale in matrix, as bone.matrix seems to drop it
- if index_in_skel < len(inverse_bind_matrices):
- pynode.blender_bone_matrix = matrix_gltf_to_blender(
- inverse_bind_matrices[index_in_skel]
- ).inverted()
- bone.matrix = pynode.blender_bone_matrix
+ if pyskin.inverse_bind_matrices is not None:
+ inverse_bind_matrices = BinaryData.get_data_from_accessor(gltf, pyskin.inverse_bind_matrices)
+ # Needed to keep scale in matrix, as bone.matrix seems to drop it
+ if index_in_skel < len(inverse_bind_matrices):
+ pynode.blender_bone_matrix = matrix_gltf_to_blender(
+ inverse_bind_matrices[index_in_skel]
+ ).inverted()
+ bone.matrix = pynode.blender_bone_matrix
+ print(pynode.blender_bone_matrix)
+ else:
+ gltf.log.error("Error with inverseBindMatrix for skin " + pyskin)
else:
- gltf.log.error("Error with inverseBindMatrix for skin " + pyskin)
+ pynode.blender_bone_matrix = Matrix() # 4x4 identity matrix
else:
print('No invBindMatrix for bone ' + str(node_id))
pynode.blender_bone_matrix = Matrix()
More information about the Bf-extensions-cvs
mailing list