[Bf-extensions-cvs] [6da09c30] master: glTF exporter: remove proxy management

Julien Duroure noreply at git.blender.org
Sun Feb 6 16:51:22 CET 2022


Commit: 6da09c309d756cecac66ac27257414c36f9b51b7
Author: Julien Duroure
Date:   Sun Feb 6 16:51:03 2022 +0100
Branches: master
https://developer.blender.org/rBA6da09c309d756cecac66ac27257414c36f9b51b7

glTF exporter: remove proxy management

===================================================================

M	io_scene_gltf2/__init__.py
M	io_scene_gltf2/blender/exp/gltf2_blender_gather.py
M	io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py
M	io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py
M	io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py
M	io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py

===================================================================

diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index dc8abae3..d720d852 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 6f68c19e..3a33c074 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 890ce0ab..ed9c5f8c 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 726104f4..004e8d64 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 caf14217..bd0ce305 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 13c347dc..d94b8c07 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)



More information about the Bf-extensions-cvs mailing list