From db60fab2be091f5d2cf30441ca81d0795ffebee8 Mon Sep 17 00:00:00 2001 From: lisa <lisa@blinkink.co.uk> Date: Tue, 14 Jun 2022 10:26:27 +0100 Subject: [PATCH 1/2] :adhesive_bandage: autorig to detect meshes group --- scripts/bip-toolbox/basic_auto_rig.py | 36 ++++++++++++++++++--------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/scripts/bip-toolbox/basic_auto_rig.py b/scripts/bip-toolbox/basic_auto_rig.py index c04c70d..7e58acd 100644 --- a/scripts/bip-toolbox/basic_auto_rig.py +++ b/scripts/bip-toolbox/basic_auto_rig.py @@ -1,5 +1,6 @@ import pymel.core as pm import re +import maya_utils as mu # Creates a basic autorig for prop assets @@ -8,6 +9,8 @@ class BasicAutoRig: print(shape.upper() + " Prop Rig Created") self.name = self.get_name() self.shape = shape + self.asset_group = None + self.meshes_group = None if self.name: print(self.name) self.run() @@ -19,7 +22,7 @@ class BasicAutoRig: if not asset_group: pm.confirmDialog(message="The asset group cannot be found in this scene") return False - asset_group.rename(self.name + "_Meshes_GRP") + self.asset_group, self.meshes_group = self.get_meshes_group(asset_group) world_name = self.name + "_World_01_CTL" local_name = self.name + "_Local_01_CTL" @@ -72,28 +75,37 @@ class BasicAutoRig: # Set Hierarchy controls = pm.group(world, local, name=self.name + "_Controls_GRP") - asset = pm.group(asset_group, controls, name=self.name + "_GRP") + controls.setParent(self.asset_group) pm.parent(local, world) - pm.parentConstraint(local, asset_group) - pm.scaleConstraint(local, asset_group) + pm.parentConstraint(local, self.meshes_group) + pm.scaleConstraint(local, self.meshes_group) pm.select(clear=True) def get_asset_group(self): try: - meshes = pm.PyNode(self.name + "_GRP") - except IndexError: + asset_group = pm.PyNode(self.name + "_GRP") + except pm.MayaNodeError: pass else: - if meshes.type() == "transform" and meshes.getShape() is None: - return meshes + if asset_group.type() == "transform" and asset_group.getShape() is None: + return asset_group return False + def get_meshes_group(self, asset_group): + try: + meshes = pm.PyNode(self.name + "_Meshes_GRP") + except pm.MayaNodeError: + meshes = asset_group.rename(self.name + "_Meshes_GRP") + asset_group = pm.group(meshes, name=self.name + "_GRP") + return asset_group, meshes + else: + return asset_group, meshes + def get_name(self): - if "ASSETS" in pm.sceneName(): - path = pm.sceneName() - asset_name = path.split("/")[-1].split("_")[0] - return asset_name + if mu.get_from_scene("context") == "asset": + name = mu.get_from_scene("asset") + return name else: if bool(re.fullmatch("\D+_GRP", pm.ls(selection=True)[0].name())): return pm.ls(selection=True)[0].name().split("_")[0] -- GitLab From cd2cb675d8c88d38dc08ad443a558a7897c337d8 Mon Sep 17 00:00:00 2001 From: lisa <lisa@blinkink.co.uk> Date: Tue, 14 Jun 2022 12:39:43 +0100 Subject: [PATCH 2/2] :ambulance: ensure arnold render options exist --- scripts/bip-toolbox/asset_scene_set_up.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/bip-toolbox/asset_scene_set_up.py b/scripts/bip-toolbox/asset_scene_set_up.py index 3d95c46..bb7a468 100644 --- a/scripts/bip-toolbox/asset_scene_set_up.py +++ b/scripts/bip-toolbox/asset_scene_set_up.py @@ -3,15 +3,12 @@ from dataclasses import dataclass, fields import re import pymel.core as pm import mtoa.aovs as aa +from mtoa.core import createOptions import maya.app.renderSetup.model.renderSetup as renderSetup import maya_utils as mu from constants import * from create_scene_folders import parent_scene_items, organise_hierarchy -#Todo -missing -# ValueError: file C:\Program Files\Autodesk\Arnold\maya2022\scripts\mtoa\aovs.py line 348: No object matches name: defaultArnoldRenderOptions.aovs -# intermittent, why does this occur sometimes and not others? - @dataclass class AOVData: Asset: list @@ -89,8 +86,12 @@ class AssetSetUp: pm.setAttr("defaultResolution.height", 1080) pm.setAttr("defaultResolution.width", 1920) - pm.setAttr("defaultArnoldRenderOptions.AASamples", 4) # Sampling + try: + pm.PyNode("defaultArnoldRenderOptions") + except pm.MayaNodeError: + createOptions() + pm.setAttr("defaultArnoldRenderOptions.AASamples", 4) pm.setAttr("defaultArnoldRenderOptions.GIDiffuseSamples", 3) pm.setAttr("defaultArnoldRenderOptions.GISpecularSamples", 2) -- GitLab