Merge branch 'master' into xr-dev
This commit is contained in:
commit
0d3a8981f7
|
@ -4,7 +4,7 @@
|
|||
bl_info = {
|
||||
'name': 'glTF 2.0 format',
|
||||
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
|
||||
"version": (3, 2, 22),
|
||||
"version": (3, 2, 26),
|
||||
'blender': (3, 1, 0),
|
||||
'location': 'File > Import-Export',
|
||||
'description': 'Import-Export as glTF 2.0',
|
||||
|
@ -378,7 +378,7 @@ class ExportGLTF2_Base:
|
|||
"Reduce exported file-size by removing duplicate keyframes"
|
||||
"(can cause problems with stepped animation)"
|
||||
),
|
||||
default=True
|
||||
default=False
|
||||
)
|
||||
|
||||
export_current_frame: BoolProperty(
|
||||
|
|
|
@ -544,6 +544,7 @@ def __get_colors(blender_mesh, color_i):
|
|||
def __get_bone_data(blender_mesh, skin, blender_vertex_groups):
|
||||
|
||||
need_neutral_bone = False
|
||||
min_influence = 0.0001
|
||||
|
||||
joint_name_to_index = {joint.name: index for index, joint in enumerate(skin.joints)}
|
||||
group_to_joint = [joint_name_to_index.get(g.name) for g in blender_vertex_groups]
|
||||
|
@ -557,7 +558,7 @@ def __get_bone_data(blender_mesh, skin, blender_vertex_groups):
|
|||
if vertex.groups:
|
||||
for group_element in vertex.groups:
|
||||
weight = group_element.weight
|
||||
if weight <= 0.0:
|
||||
if weight <= min_influence:
|
||||
continue
|
||||
try:
|
||||
joint = group_to_joint[group_element.group]
|
||||
|
|
|
@ -170,8 +170,10 @@ class VExportTree:
|
|||
node.matrix_world @= correction.to_matrix().to_4x4()
|
||||
elif node.blender_type == VExportNode.BONE:
|
||||
node.matrix_world = self.nodes[node.armature].matrix_world @ blender_bone.matrix
|
||||
axis_basis_change = Matrix(
|
||||
((1.0, 0.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0), (0.0, -1.0, 0.0, 0.0), (0.0, 0.0, 0.0, 1.0)))
|
||||
axis_basis_change = Matrix.Identity(4)
|
||||
if self.export_settings[gltf2_blender_export_keys.YUP]:
|
||||
axis_basis_change = Matrix(
|
||||
((1.0, 0.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0), (0.0, -1.0, 0.0, 0.0), (0.0, 0.0, 0.0, 1.0)))
|
||||
node.matrix_world = node.matrix_world @ axis_basis_change
|
||||
|
||||
# Force empty ?
|
||||
|
|
|
@ -36,12 +36,18 @@ class BlenderScene():
|
|||
BlenderNode.create_vnode(gltf, 'root')
|
||||
|
||||
# User extensions before scene creation
|
||||
import_user_extensions('gather_import_scene_after_nodes_hook', gltf, gltf.data.scenes[gltf.data.scene], scene)
|
||||
gltf_scene = None
|
||||
if gltf.data.scene is not None:
|
||||
gltf_scene = gltf.data.scenes[gltf.data.scene]
|
||||
import_user_extensions('gather_import_scene_after_nodes_hook', gltf, gltf_scene, scene)
|
||||
|
||||
# User extensions after scene creation
|
||||
BlenderScene.create_animations(gltf)
|
||||
|
||||
import_user_extensions('gather_import_scene_after_animation_hook', gltf, gltf.data.scenes[gltf.data.scene], scene)
|
||||
# User extensions after scene creation
|
||||
gltf_scene = None
|
||||
if gltf.data.scene is not None:
|
||||
gltf_scene = gltf.data.scenes[gltf.data.scene]
|
||||
import_user_extensions('gather_import_scene_after_animation_hook', gltf, gltf_scene, scene)
|
||||
|
||||
if bpy.context.mode != 'OBJECT':
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
|
Loading…
Reference in New Issue