Merge branch 'master' into xr-dev

This commit is contained in:
Peter Kim 2022-04-04 16:36:19 +09:00
commit 0d3a8981f7
4 changed files with 17 additions and 8 deletions

View File

@ -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(

View File

@ -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]

View File

@ -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 ?

View File

@ -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')