Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2018-09-21 17:44:55 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-09-21 17:44:55 +0300
commita2aaa2e0a83c368c17dc9fb8464a87cfb1297f60 (patch)
treeb4875622e4b1f2a679f22161361eddcfa53bf058 /io_scene_fbx/fbx_utils.py
parent2bfab056d2655bddf3612dbe7644bce9ad1b581b (diff)
blender2.8 FBX IO: Fix basic dupli and anim.
Now exporting duplis and animation shall work, at least in basic cases (still have to check more complex ones).
Diffstat (limited to 'io_scene_fbx/fbx_utils.py')
-rw-r--r--io_scene_fbx/fbx_utils.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/io_scene_fbx/fbx_utils.py b/io_scene_fbx/fbx_utils.py
index 8de8e8f8..8142f000 100644
--- a/io_scene_fbx/fbx_utils.py
+++ b/io_scene_fbx/fbx_utils.py
@@ -872,7 +872,7 @@ class MetaObjectWrapper(type):
key = get_blenderID_key(bdata)
elif isinstance(bdata, DepsgraphObjectInstance):
if bdata.is_instance:
- key = "|".join((get_blenderID_key((bdata.parent, bdata.object_instance)), cls._get_dup_num_id(bdata)))
+ key = "|".join((get_blenderID_key((bdata.parent, bdata.instance_object)), cls._get_dup_num_id(bdata)))
dup_mat = bdata.matrix_world.copy()
else:
key = get_blenderID_key(bdata.object)
@@ -948,14 +948,14 @@ class ObjectWrapper(metaclass=MetaObjectWrapper):
if bdata.is_instance:
# Note that dupli instance matrix is set by meta-class initialization.
self._tag = 'DP'
- self.name = "|".join((get_blenderID_name((bdata.parent, bdata.object)),
+ self.name = "|".join((get_blenderID_name((bdata.parent, bdata.instance_object)),
"Dupli", self._get_dup_num_id(bdata)))
- self.bdata = bdata.object
+ self.bdata = bdata.instance_object
self._ref = bdata.parent
else:
self._tag = 'OB'
self.name = get_blenderID_name(bdata)
- self.bdata = bdata
+ self.bdata = bdata.object
self._ref = None
else: # isinstance(bdata, (Bone, PoseBone)):
if isinstance(bdata, PoseBone):
@@ -972,6 +972,9 @@ class ObjectWrapper(metaclass=MetaObjectWrapper):
def __hash__(self):
return hash(self.key)
+ def __repr__(self):
+ return self.key
+
# #### Common to all _tag values.
def get_fbx_uuid(self):
return get_fbx_uuid_from_key(self.key)
@@ -1188,7 +1191,7 @@ class ObjectWrapper(metaclass=MetaObjectWrapper):
# #### Duplis...
def dupli_list_gen(self, depsgraph):
if self._tag == 'OB' and self.bdata.is_duplicator:
- return (ObjectWrapper(dup) for dup in depsgraph.object_instances if dup.parent == self.bdata)
+ return (ObjectWrapper(dup) for dup in depsgraph.object_instances if dup.parent and ObjectWrapper(dup.parent) == self)
return ()