diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2020-03-20 00:44:06 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2020-03-20 00:44:06 +0300 |
commit | 191bcee579b30af4098fb2af701470f8b05b6065 (patch) | |
tree | 3fe837f79b4c40b79eb9e4381390f6974b3859a4 /io_scene_gltf2/blender/exp/gltf2_blender_gather.py | |
parent | dc4c83cffc6b6db19f757db5012050a234f00424 (diff) |
glTF export: manage collection instances / linked collection / armature proxy
Diffstat (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_gather.py')
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_gather.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py index f08a379b..c6fd2c38 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py @@ -51,9 +51,13 @@ def __gather_scene(blender_scene, export_settings): nodes=[] ) - for blender_object in blender_scene.objects: - if blender_object.parent is None: - node = gltf2_blender_gather_nodes.gather_node(blender_object, blender_scene, export_settings) + 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 + 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 node is not None: scene.nodes.append(node) @@ -66,11 +70,17 @@ def __gather_animations(blender_scene, export_settings): animations = [] merged_tracks = {} - for blender_object in blender_scene.objects: + for _blender_object in blender_scene.objects: + + blender_object = _blender_object.proxy if _blender_object.proxy else _blender_object + # 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_scene, export_settings) + 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: - animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(blender_object, merged_tracks, len(animations), export_settings) + # 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 += animations_ if export_settings['gltf_nla_strips'] is False: |