diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py index dc8abae327b002a1e83ff9a49af06f2347085208..d720d8525b9829642b49a056fbf8b23491fe9d9e 100755 --- a/io_scene_gltf2/__init__.py +++ b/io_scene_gltf2/__init__.py @@ -15,7 +15,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, 1), + "version": (3, 2, 2), 'blender': (3, 1, 0), 'location': 'File > Import-Export', 'description': 'Import-Export as glTF 2.0', diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py index 6f68c19eec3e5b4c3757e24754e51856f2697247..3a33c074f8e56d33f07a9c675ed1045e8c879fde 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py @@ -51,9 +51,8 @@ def __gather_scene(blender_scene, export_settings): nodes=[] ) - for _blender_object in [obj for obj in blender_scene.objects if obj.proxy is None]: - if _blender_object.parent is None: - blender_object = _blender_object.proxy if _blender_object.proxy else _blender_object + for blender_object in blender_scene.objects: + if blender_object.parent is None: node = gltf2_blender_gather_nodes.gather_node( blender_object, blender_object.library.name if blender_object.library else None, @@ -70,17 +69,14 @@ def __gather_animations(blender_scene, export_settings): animations = [] merged_tracks = {} - for _blender_object in blender_scene.objects: - - blender_object = _blender_object.proxy if _blender_object.proxy else _blender_object + for blender_object in blender_scene.objects: # First check if this object is exported or not. Do not export animation of not exported object obj_node = gltf2_blender_gather_nodes.gather_node(blender_object, blender_object.library.name if blender_object.library else None, blender_scene, None, export_settings) if obj_node is not None: - # Check was done on armature, but use here the _proxy object, because this is where the animation is - animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(_blender_object, merged_tracks, len(animations), export_settings) + animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(blender_object, merged_tracks, len(animations), export_settings) animations += animations_ if export_settings['gltf_nla_strips'] is False: diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py index 890ce0aba9c8149c40b4423ab8ff38addf57aee7..ed9c5f8ce364aff7d38fff2827568e5d2388a210 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py @@ -86,13 +86,11 @@ def __gather_node(channels: typing.Tuple[bpy.types.FCurve], if isinstance(blender_bone, bpy.types.PoseBone): if export_settings["gltf_def_bones"] is False: - obj = blender_object.proxy if blender_object.proxy else blender_object - return gltf2_blender_gather_joints.gather_joint(obj, blender_bone, export_settings) + return gltf2_blender_gather_joints.gather_joint(blender_object, blender_bone, export_settings) else: bones, _, _ = gltf2_blender_gather_skins.get_bone_tree(None, blender_object) if blender_bone.name in [b.name for b in bones]: - obj = blender_object.proxy if blender_object.proxy else blender_object - return gltf2_blender_gather_joints.gather_joint(obj, blender_bone, export_settings) + return gltf2_blender_gather_joints.gather_joint(blender_object, blender_bone, export_settings) return gltf2_blender_gather_nodes.gather_node(blender_object, blender_object.library.name if blender_object.library else None, diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py index 726104f4dcd3c0bda8365e456fbdcac09b47427b..004e8d64671dd3fac6a7a037ad64c48dd07c7619 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py @@ -112,8 +112,7 @@ def gather_animation_channels(blender_action: bpy.types.Action, # Retrieve channels for drivers, if needed - obj_driver = blender_object.proxy if blender_object.proxy else blender_object - drivers_to_manage = gltf2_blender_gather_drivers.get_sk_drivers(obj_driver) + drivers_to_manage = gltf2_blender_gather_drivers.get_sk_drivers(blender_object) for obj, fcurves in drivers_to_manage: channel = __gather_animation_channel( fcurves, diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py index caf142174106980d25ae6b474279e47a6d5f6dbb..bd0ce30591c62ecc861298c18d0d5d4c0fd7e661 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py @@ -174,8 +174,7 @@ def get_bone_matrix(blender_object_if_armature: typing.Optional[bpy.types.Object # If some drivers must be evaluated, do it here, to avoid to have to change frame by frame later - obj_driver = blender_object_if_armature.proxy if blender_object_if_armature.proxy else blender_object_if_armature - drivers_to_manage = get_sk_drivers(obj_driver) + drivers_to_manage = get_sk_drivers(blender_object_if_armature) for dr_obj, dr_fcurves in drivers_to_manage: vals = get_sk_driver_values(dr_obj, frame, dr_fcurves) diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py index 13c347dc6a4f02b62ffe793f67f9451476c1c18d..d94b8c079b40475400ba2f03a1391f63964798c5 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py @@ -166,15 +166,13 @@ def __gather_children(blender_object, blender_scene, export_settings): children = [] only_bone_children = True # True by default, will be set to False if needed # standard children - for _child_object in blender_object.children: - if _child_object.parent_bone: + for child_object in blender_object.children: + if child_object.parent_bone: # this is handled further down, # as the object should be a child of the specific bone, # not the Armature object continue - child_object = _child_object.proxy if _child_object.proxy else _child_object - node = gather_node(child_object, child_object.library.name if child_object.library else None, blender_scene, None, export_settings) @@ -187,7 +185,7 @@ def __gather_children(blender_object, blender_scene, export_settings): if dupli_object.parent is not None: continue if dupli_object.type == "ARMATURE": - continue # There is probably a proxy + continue # There is probably a proxy (no more existing) node = gather_node(dupli_object, dupli_object.library.name if dupli_object.library else None, blender_scene, blender_object.name, export_settings)