def on_open(_): sticker.reveal() # Show custom icon cmds.evalDeferred("from reveries.maya import callbacks;" "callbacks._outliner_hide_set_member()") # (Medicine) # maya_utils.drop_interface() # Only fix containerized file nodes nodes = set() for container in maya.ls(): nodes.update( cmds.ls(cmds.sets(container["objectName"], query=True), type="file")) maya_utils.fix_texture_file_nodes(list(nodes)) if cmds.about(batch=True): # For log reading and debug print("Maya API version: %s" % cmds.about(api=True)) if cmds.pluginInfo("mtoa", q=True, loaded=True): version = cmds.pluginInfo("mtoa", q=True, version=True) print("MtoA version: %s" % version) else: if lib.any_outdated(): _pop_sceneinventory()
def test_update(): """Updating works""" transform, generator = cmds.polyCube(name="body_PLY") group = cmds.group(transform, name="ROOT") cmds.select(group, replace=True) maya.create(name="modelDefault", asset=ASSET_NAME, family="mindbender.model", options={"useSelection": True}) # Comply with save validator cmds.file(save=True) publish() publish() publish() # Version 3 cmds.file(new=True, force=True) asset = io.find_one({"type": "asset", "name": ASSET_NAME}) subset = io.find_one({ "parent": asset["_id"], "type": "subset", "name": "modelDefault" }) version = io.find_one({ "parent": subset["_id"], "type": "version", "name": 2 }) assert version representation = io.find_one({ "parent": version["_id"], "type": "representation", "name": "ma" }) maya.load(representation["_id"]) container = next(maya.ls()) maya.update(container, 3)
def process(self, instance): # Find containers containers = avalon.ls() # Get all content from the instance instance_lookup = set(cmds.ls(instance, type="transform", long=True)) data = defaultdict(list) self.log.info(instance_lookup) hierarchy_nodes = [] for container in containers: self.log.info(container) root = lib.get_container_transforms(container, root=True) self.log.info(root) if not root or root not in instance_lookup: continue # Retrieve the hierarchy parent = cmds.listRelatives(root, parent=True, fullPath=True)[0] hierarchy_nodes.append(parent) # Temporary warning for GPU cache which are not supported yet loader = container["loader"] if loader == "GpuCacheLoader": self.log.warning("GPU Cache Loader is currently not supported" "in the pipeline, we will export it tho") # Gather info for new data entry representation_id = container["representation"] instance_data = { "loader": loader, "parent": parent, "namespace": container["namespace"] } # Check if matrix differs from default and store changes matrix_data = self.get_matrix_data(root) if matrix_data: instance_data["matrix"] = matrix_data data[representation_id].append(instance_data) instance.data["scenedata"] = dict(data) instance.data["hierarchy"] = list(set(hierarchy_nodes))