mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
hotfix: ignore shapes when referencing and preserve references when importing
This commit is contained in:
parent
160d285d9e
commit
ff44a00354
3 changed files with 20 additions and 7 deletions
|
|
@ -116,6 +116,7 @@ class ImportMayaLoader(api.Loader):
|
||||||
with maya.maintained_selection():
|
with maya.maintained_selection():
|
||||||
cmds.file(self.fname,
|
cmds.file(self.fname,
|
||||||
i=True,
|
i=True,
|
||||||
|
preserveReferences=True,
|
||||||
namespace=namespace,
|
namespace=namespace,
|
||||||
returnNewNodes=True,
|
returnNewNodes=True,
|
||||||
groupReference=True,
|
groupReference=True,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ import os
|
||||||
from pypeapp import config
|
from pypeapp import config
|
||||||
import pymel.core as pm
|
import pymel.core as pm
|
||||||
reload(config)
|
reload(config)
|
||||||
|
import pype.maya.plugin
|
||||||
|
reload(pype.maya.plugin)
|
||||||
|
|
||||||
class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
"""Load the model"""
|
"""Load the model"""
|
||||||
|
|
@ -42,11 +43,17 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
|
|
||||||
namespace = cmds.referenceQuery(nodes[0], namespace=True)
|
namespace = cmds.referenceQuery(nodes[0], namespace=True)
|
||||||
|
|
||||||
|
shapes = cmds.ls(nodes, shapes=True, long=True)
|
||||||
|
print(shapes)
|
||||||
|
|
||||||
|
newNodes = (list(set(nodes) - set(shapes)))
|
||||||
|
print(newNodes)
|
||||||
|
|
||||||
groupNode = pm.PyNode(groupName)
|
groupNode = pm.PyNode(groupName)
|
||||||
roots = set()
|
roots = set()
|
||||||
print(nodes)
|
print(nodes)
|
||||||
|
|
||||||
for node in nodes:
|
for node in newNodes:
|
||||||
try:
|
try:
|
||||||
roots.add(pm.PyNode(node).getAllParents()[-2])
|
roots.add(pm.PyNode(node).getAllParents()[-2])
|
||||||
except:
|
except:
|
||||||
|
|
@ -59,7 +66,6 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
root.setParent(groupNode)
|
root.setParent(groupNode)
|
||||||
|
|
||||||
cmds.setAttr(groupName + ".displayHandle", 1)
|
cmds.setAttr(groupName + ".displayHandle", 1)
|
||||||
groupNode
|
|
||||||
|
|
||||||
presets = config.get_presets(project=os.environ['AVALON_PROJECT'])
|
presets = config.get_presets(project=os.environ['AVALON_PROJECT'])
|
||||||
colors = presets['plugins']['maya']['load']['colors']
|
colors = presets['plugins']['maya']['load']['colors']
|
||||||
|
|
@ -68,7 +74,7 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
groupNode.useOutlinerColor.set(1)
|
groupNode.useOutlinerColor.set(1)
|
||||||
groupNode.outlinerColor.set(c[0], c[1], c[2])
|
groupNode.outlinerColor.set(c[0], c[1], c[2])
|
||||||
|
|
||||||
self[:] = nodes
|
self[:] = newNodes
|
||||||
|
|
||||||
cmds.setAttr(groupName + ".displayHandle", 1)
|
cmds.setAttr(groupName + ".displayHandle", 1)
|
||||||
# get bounding box
|
# get bounding box
|
||||||
|
|
@ -88,7 +94,7 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
cmds.setAttr(groupName + ".selectHandleY", cy)
|
cmds.setAttr(groupName + ".selectHandleY", cy)
|
||||||
cmds.setAttr(groupName + ".selectHandleZ", cz)
|
cmds.setAttr(groupName + ".selectHandleZ", cz)
|
||||||
|
|
||||||
return nodes
|
return newNodes
|
||||||
|
|
||||||
def switch(self, container, representation):
|
def switch(self, container, representation):
|
||||||
self.update(container, representation)
|
self.update(container, representation)
|
||||||
|
|
|
||||||
|
|
@ -47,12 +47,18 @@ class RigLoader(pype.maya.plugin.ReferenceLoader):
|
||||||
cmds.setAttr(groupName + ".outlinerColor",
|
cmds.setAttr(groupName + ".outlinerColor",
|
||||||
c[0], c[1], c[2])
|
c[0], c[1], c[2])
|
||||||
|
|
||||||
|
shapes = cmds.ls(nodes, shapes=True, long=True)
|
||||||
|
print(shapes)
|
||||||
|
|
||||||
|
newNodes = (list(set(nodes) - set(shapes)))
|
||||||
|
print(newNodes)
|
||||||
|
|
||||||
# Store for post-process
|
# Store for post-process
|
||||||
self[:] = nodes
|
self[:] = newNodes
|
||||||
if data.get("post_process", True):
|
if data.get("post_process", True):
|
||||||
self._post_process(name, namespace, context, data)
|
self._post_process(name, namespace, context, data)
|
||||||
|
|
||||||
return nodes
|
return newNodes
|
||||||
|
|
||||||
def _post_process(self, name, namespace, context, data):
|
def _post_process(self, name, namespace, context, data):
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue