diff --git a/colorbleed/plugins/maya/load/load_yeti_cache.py b/colorbleed/plugins/maya/load/load_yeti_cache.py index aa9275e258..0544868340 100644 --- a/colorbleed/plugins/maya/load/load_yeti_cache.py +++ b/colorbleed/plugins/maya/load/load_yeti_cache.py @@ -46,7 +46,7 @@ class YetiCacheLoader(api.Loader): node_data = fursettings["nodes"] nodes = self.create_nodes(namespace, node_data) - group_name = "{}:{}".format(namespace, asset["name"]) + group_name = "{}:{}".format(namespace, name) group_node = cmds.group(nodes, name=group_name) nodes.append(group_node) @@ -84,15 +84,26 @@ class YetiCacheLoader(api.Loader): def update(self, container, representation): path = api.get_representation_path(representation) + namespace = "{}:".format(container["namespace"]) members = cmds.sets(container['objectName'], query=True) - yeti_node = cmds.ls(members, type="pgYetiMaya", long=True) + yeti_node = cmds.ls(members, type="pgYetiMaya") + + # TODO: Count the amount of nodes cached + # To ensure new nodes get created or old nodes get destroyed for node in yeti_node: - node_name = node.split(":")[-1] - tmp_cache = os.path.join(path, "{}.%04d.fur".format(node_name)) + # Remove local given namespace + node_name = node.split(namespace, 1)[-1] + file_name = node_name.replace(":", "_") + + # Check if the node has a cache + tmp_cache = os.path.join(path, "{}.%04d.fur".format(file_name)) fpath = self.validate_cache(os.path.normpath(tmp_cache)) + + # Update the attribute cmds.setAttr("{}.cacheFileName".format(node), fpath, type="string") + # Update the container cmds.setAttr("{}.representation".format(container["objectName"]), str(representation["_id"]), type="string") @@ -194,6 +205,9 @@ class YetiCacheLoader(api.Loader): # Enable the cache by setting the file mode cmds.setAttr("%s.fileMode" % yeti_node, 1) + # Connect to the time node + cmds.connectAttr("time1.outTime", "%s.currentTime" % yeti_node) + nodes.append(yeti_node) nodes.append(transform_node) diff --git a/colorbleed/plugins/maya/publish/collect_yeti_rig.py b/colorbleed/plugins/maya/publish/collect_yeti_rig.py index ed0d84907d..9d26e0b4b5 100644 --- a/colorbleed/plugins/maya/publish/collect_yeti_rig.py +++ b/colorbleed/plugins/maya/publish/collect_yeti_rig.py @@ -40,7 +40,6 @@ class CollectYetiRig(pyblish.api.InstancePlugin): input_shapes = cmds.ls(input_nodes, long=True, noIntermediate=True) # Store all connections - print "input shape:", input_shapes connections = cmds.listConnections(input_shapes, source=True, destination=False, diff --git a/colorbleed/plugins/maya/publish/extract_yeti_rig.py b/colorbleed/plugins/maya/publish/extract_yeti_rig.py index 6a13a0343b..a086accfe8 100644 --- a/colorbleed/plugins/maya/publish/extract_yeti_rig.py +++ b/colorbleed/plugins/maya/publish/extract_yeti_rig.py @@ -13,7 +13,7 @@ from cb.utils.maya import context def disconnected_attributes(settings, members): members = cmds.ls(members, long=True) - original_connection = [] + original_connections = [] try: for input in settings["inputs"]: @@ -40,14 +40,13 @@ def disconnected_attributes(settings, members): continue cmds.disconnectAttr(src_attribute, dst_attribute) - original_connection.append([src_attribute, dst_attribute]) + original_connections.append([src_attribute, dst_attribute]) yield finally: # restore connections - for connection in original_connection: - src, dest = connection + for connection in original_connections: try: - cmds.connectAttr(dest, src) + cmds.connectAttr(connection[0], connection[1]) except Exception as e: print e, continue @@ -102,9 +101,10 @@ class ExtractYetiRig(colorbleed.api.Extractor): # Get input_SET members input_set = [i for i in instance if i == "input_SET"] - members = cmds.sets(input_set[0], query=True) # Get all items - members = cmds.listRelatives(members, ad=True, fullPath=True) + set_members = cmds.sets(input_set[0], query=True) + members = cmds.listRelatives(set_members, ad=True, fullPath=True) or [] + members += cmds.ls(set_members, long=True) nodes = instance.data["setMembers"] with disconnected_attributes(settings, members): diff --git a/colorbleed/plugins/maya/publish/validate_model_content.py b/colorbleed/plugins/maya/publish/validate_model_content.py index 75959f66b0..06b29da68d 100644 --- a/colorbleed/plugins/maya/publish/validate_model_content.py +++ b/colorbleed/plugins/maya/publish/validate_model_content.py @@ -1,5 +1,3 @@ -import pprint - from maya import cmds import pyblish.api