diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2022-08-24 18:11:08 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2022-08-24 18:11:08 +0300 |
commit | 25bbb109edc3ee3df8981968409fa3ef290d9601 (patch) | |
tree | e858e0d8299a59920f473c3170e9da08303cbe16 | |
parent | 296383210971045cb0b4704847d1e427bfa6817d (diff) | |
parent | e0d33461ceafa3734eabbc216fdc1914536ea725 (diff) |
Merge branch 'blender-v3.3-release'
-rwxr-xr-x | io_scene_gltf2/__init__.py | 2 | ||||
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py | 29 |
2 files changed, 17 insertions, 14 deletions
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py index ecc5a499..459a8795 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, 4, 9), + "version": (3, 4, 10), 'blender': (3, 3, 0), 'location': 'File > Import-Export', 'description': 'Import-Export as glTF 2.0', diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py index 2d579d5b..bdb2ee00 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py @@ -66,19 +66,22 @@ def gather_animations( obj_uuid: int, # (Only when force sampling is ON) # If force sampling is OFF, can lead to inconsistent export anyway if export_settings['gltf_selected'] is True and blender_object.type != "ARMATURE" and export_settings['gltf_force_sampling'] is True: - channels = __gather_channels_baked(obj_uuid, export_settings) - if channels is not None: - animation = gltf2_io.Animation( - channels=channels, - extensions=None, # as other animations - extras=None, # Because there is no animation to get extras from - name=blender_object.name, # Use object name as animation name - samplers=[] - ) - - __link_samplers(animation, export_settings) - if animation is not None: - animations.append(animation) + # We also have to check if this is a skinned mesh, because we don't have to force animation baking on this case + # (skinned meshes TRS must be ignored, says glTF specification) + if export_settings['vtree'].nodes[obj_uuid].skin is None: + channels = __gather_channels_baked(obj_uuid, export_settings) + if channels is not None: + animation = gltf2_io.Animation( + channels=channels, + extensions=None, # as other animations + extras=None, # Because there is no animation to get extras from + name=blender_object.name, # Use object name as animation name + samplers=[] + ) + + __link_samplers(animation, export_settings) + if animation is not None: + animations.append(animation) elif export_settings['gltf_selected'] is True and blender_object.type == "ARMATURE": # We need to bake all bones. Because some bone can have some constraints linking to # some other armature bones, for example |