diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py index 948810194e94525c3544bff79e016747be6ebc8f..9910ed97827c6f5927f3a4a962eac861b95e7680 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, 41), + "version": (3, 4, 42), '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 cf067e531045d23162b9e4e89d5cf0fe0fc6e829..318c0bcb52cc44d0426269313edd0812b1f82816 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animations.py @@ -62,8 +62,14 @@ def gather_animations( obj_uuid: int, current_action = None + current_world_matrix = None if blender_object.animation_data and blender_object.animation_data.action: + # There is an active action. Storing it, to be able to restore after switching all actions during export current_action = blender_object.animation_data.action + elif len(blender_actions) != 0 and blender_object.animation_data is not None and blender_object.animation_data.action is None: + # No current action set, storing world matrix of object + current_world_matrix = blender_object.matrix_world.copy() + # Remove any solo (starred) NLA track. Restored after export solo_track = None if blender_object.animation_data: @@ -134,6 +140,9 @@ def gather_animations( obj_uuid: int, blender_object.animation_data.use_tweak_mode = restore_tweak_mode blender_object.animation_data.use_nla = current_use_nla + if current_world_matrix is not None: + blender_object.matrix_world = current_world_matrix + export_user_extensions('animation_switch_loop_hook', export_settings, blender_object, True) return animations, tracks