diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-05-11 18:11:15 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-05-11 18:11:15 +0300 |
commit | 0d4c095e9a163987d664a36baa90937e4b93847a (patch) | |
tree | b6178019e0886810d884da0cc4baf4f097a02be9 /io_scene_fbx/import_fbx.py | |
parent | 9524a08a60cf570e9b0540a6ae195a269b403817 (diff) |
Revert "Fix (unreported) broken FBX import due to API change."
This reverts commit 9524a08a60cf570e9b0540a6ae195a269b403817.
Diffstat (limited to 'io_scene_fbx/import_fbx.py')
-rw-r--r-- | io_scene_fbx/import_fbx.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py index 92f9bef4..26e31363 100644 --- a/io_scene_fbx/import_fbx.py +++ b/io_scene_fbx/import_fbx.py @@ -1928,7 +1928,7 @@ class FbxImportHelperNode: child_connect_finalize(bone, connect_ctx) return bone - def build_node_obj(self, fbx_tmpl, settings, view_layer): + def build_node_obj(self, fbx_tmpl, settings): if self.bl_obj: return self.bl_obj @@ -1948,19 +1948,13 @@ class FbxImportHelperNode: # Misc Attributes obj.color[0:3] = elem_props_get_color_rgb(fbx_props, b'Color', (0.8, 0.8, 0.8)) + obj.hide_viewport = not bool(elem_props_get_visibility(fbx_props, b'Visibility', 1.0)) obj.matrix_basis = self.get_matrix() if settings.use_custom_props: blen_read_custom_properties(self.fbx_elem, obj, settings) - # Instance in scene. - view_layer.active_layer_collection.collection.objects.link(obj) - - # This has to be done after instancing in scene. - obj.hide_set(not bool(elem_props_get_visibility(fbx_props, b'Visibility', 1.0))) - obj.select_set(True) - return obj def build_skeleton_children(self, fbx_tmpl, settings, scene, view_layer): @@ -1972,7 +1966,7 @@ class FbxImportHelperNode: return None else: # child is not a bone - obj = self.build_node_obj(fbx_tmpl, settings, view_layer) + obj = self.build_node_obj(fbx_tmpl, settings) if obj is None: return None @@ -1982,6 +1976,10 @@ class FbxImportHelperNode: continue child.build_skeleton_children(fbx_tmpl, settings, scene, view_layer) + # instance in scene + view_layer.active_layer_collection.collection.objects.link(obj) + obj.select_set(True) + return obj def link_skeleton_children(self, fbx_tmpl, settings, scene): @@ -2114,8 +2112,8 @@ class FbxImportHelperNode: # Switch to Edit mode. view_layer.objects.active = arm - is_hidden = arm.hide_get() - arm.hide_set(False) # Can't switch to Edit mode hidden objects... + is_hidden = arm.hide_viewport + arm.hide_viewport = False # Can't switch to Edit mode hidden objects... bpy.ops.object.mode_set(mode='EDIT') for child in self.children: @@ -2126,7 +2124,7 @@ class FbxImportHelperNode: bpy.ops.object.mode_set(mode='OBJECT') - arm.hide_set(is_hidden) + arm.hide_viewport = is_hidden # Set pose matrix for child in self.children: @@ -2143,12 +2141,16 @@ class FbxImportHelperNode: return arm elif self.fbx_elem and not self.is_bone: - obj = self.build_node_obj(fbx_tmpl, settings, view_layer) + obj = self.build_node_obj(fbx_tmpl, settings) # walk through children for child in self.children: child.build_hierarchy(fbx_tmpl, settings, scene, view_layer) + # instance in scene + view_layer.active_layer_collection.collection.objects.link(obj) + obj.select_set(True) + return obj else: for child in self.children: |