Fix extractor

This commit is contained in:
Toke Stuart Jepsen 2023-03-17 09:03:35 +00:00
parent 0e8f251c5c
commit 7cd7b2daf9

View file

@ -120,6 +120,10 @@ class ExtractArnoldSceneSource(publish.Extractor):
with lib.delete_after() as delete_bin:
duplicate_nodes = []
for node in nodes:
# Only interested in transforms:
if cmds.nodeType(node) != "transform":
continue
parent = cmds.listRelatives(
node, parent=True, fullPath=True
)[0]
@ -128,13 +132,6 @@ class ExtractArnoldSceneSource(publish.Extractor):
parent, duplicate_transform
)
# Discard the children.
shapes = cmds.listRelatives(duplicate_transform, shapes=True)
children = cmds.listRelatives(
duplicate_transform, children=True
)
cmds.delete(set(children) - set(shapes))
duplicate_transform = cmds.parent(
duplicate_transform, world=True
)[0]
@ -144,12 +141,22 @@ class ExtractArnoldSceneSource(publish.Extractor):
duplicate_transform, basename
)
# Discard the children.
shapes = cmds.listRelatives(
duplicate_transform, shapes=True, fullPath=True
)
children = cmds.listRelatives(
duplicate_transform, children=True, fullPath=True
)
cmds.delete(set(children) - set(shapes))
duplicate_nodes.append(duplicate_transform)
duplicate_nodes.extend(shapes)
delete_bin.append(duplicate_transform)
# Copy cbId to mtoa_constant.
for node in duplicate_nodes:
lib.set_attribute("mtoa_constant_cbId", lib.get_id(node))
lib.set_attribute("mtoa_constant_cbId", lib.get_id(node), node)
with lib.attribute_values(attribute_data):
with lib.maintained_selection():