Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Kim <pk15950@gmail.com>2022-04-04 10:36:19 +0300
committerPeter Kim <pk15950@gmail.com>2022-04-04 10:36:19 +0300
commit0d3a8981f7e6bb3d9bd2e6483607421c663463c4 (patch)
tree625127c66e989b3cd4aa66448f2db4344489ee91
parente9ef610716dd0958e88cb5e73ed78d24e175f19b (diff)
parent22c1eb5c3d505d85e953c3921317856af103a2eb (diff)
Merge branch 'master' into xr-dev
-rwxr-xr-xio_scene_gltf2/__init__.py4
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_extract.py3
-rw-r--r--io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py6
-rwxr-xr-xio_scene_gltf2/blender/imp/gltf2_blender_scene.py12
4 files changed, 17 insertions, 8 deletions
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index c844838b..dc80a1e1 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -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(
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
index 98e2ac19..cbb98cc0 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
@@ -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]
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py
index cf4983e1..e629a963 100644
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py
@@ -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 ?
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
index 2092a6be..672b68c8 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
@@ -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')