def transform_bone_matrix(bone):
if not bone.parent:
return Matrix()
i1 = Vector((1.0, 0.0, 0.0))
i2 = Vector((0.0, 1.0, 0.0))
i3 = Vector((0.0, 0.0, 1.0))
x_axis = bone.y_axis
y_axis = bone.x_axis
z_axis = -bone.z_axis
row_x = Vector((x_axis * i1, x_axis * i2, x_axis * i3))
row_y = Vector((y_axis * i1, y_axis * i2, y_axis * i3))
row_z = Vector((z_axis * i1, z_axis * i2, z_axis * i3))
trans_matrix = Matrix((row_x, row_y, row_z))
location = trans_matrix * bone.matrix.translation
bone_matrix = trans_matrix.to_4x4()
bone_matrix.translation = -location
return bone_matrix
评论列表
文章目录