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