From 1c92e96b31dffb4fb645ca3fae59ec3f108b2b27 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Tue, 16 Jul 2019 15:07:31 +0200 Subject: [PATCH] (hotfix) alembic loading was breaking transforms in hierarchy due to makeIdentity code. this instead parents top root to newly created group untill we find a better solution --- pype/plugins/maya/load/load_alembic.py | 17 +++++++++++++---- pype/plugins/maya/load/load_model.py | 22 ++++++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/pype/plugins/maya/load/load_alembic.py b/pype/plugins/maya/load/load_alembic.py index d3d85249c5..bdec9e6b06 100644 --- a/pype/plugins/maya/load/load_alembic.py +++ b/pype/plugins/maya/load/load_alembic.py @@ -28,13 +28,22 @@ class AbcLoader(pype.maya.plugin.ReferenceLoader): nodes = cmds.file(self.fname, namespace=namespace, sharedReferenceFile=False, - groupReference=True, - groupName="{}:{}".format(namespace, name), reference=True, returnNewNodes=True) - cmds.makeIdentity(groupName, apply=False, rotate=True, - translate=True, scale=True) + group = cmds.createNode("transform", name=groupName) + + roots = set() + for node in nodes: + try: + roots.add(cmds.ls(node, long=True)[0].split('|')[1]) + except: + pass + + cmds.parent(roots, group) + + # cmds.makeIdentity(groupName, apply=False, rotate=True, + # translate=True, scale=True) presets = config.get_presets(project=os.environ['AVALON_PROJECT']) colors = presets['plugins']['maya']['load']['colors'] diff --git a/pype/plugins/maya/load/load_model.py b/pype/plugins/maya/load/load_model.py index 913d4d9e79..e7152cf633 100644 --- a/pype/plugins/maya/load/load_model.py +++ b/pype/plugins/maya/load/load_model.py @@ -28,9 +28,7 @@ class ModelLoader(pype.maya.plugin.ReferenceLoader): nodes = cmds.file(self.fname, namespace=namespace, reference=True, - returnNewNodes=True, - groupReference=True, - groupName=groupName) + returnNewNodes=True) cmds.makeIdentity(groupName, apply=False, rotate=True, translate=True, scale=True) @@ -171,16 +169,24 @@ class AbcModelLoader(pype.maya.plugin.ReferenceLoader): nodes = cmds.file(self.fname, namespace=namespace, sharedReferenceFile=False, - groupReference=True, - groupName=groupName, reference=True, returnNewNodes=True) namespace = cmds.referenceQuery(nodes[0], namespace=True) - groupName = "{}:{}".format(namespace, name) - cmds.makeIdentity(groupName, apply=False, rotate=True, - translate=True, scale=True) + group = cmds.createNode("transform", name=groupName) + + roots = set() + for node in nodes: + try: + roots.add(cmds.ls(node, long=True)[0].split('|')[1]) + except: + pass + + cmds.parent(roots, group) + + # cmds.makeIdentity(groupName, apply=False, rotate=True, + # translate=True, scale=True) presets = config.get_presets(project=os.environ['AVALON_PROJECT']) colors = presets['plugins']['maya']['load']['colors']