Bases: MayaInstancePlugin
, OptionalPyblishPluginMixin
Validates that nodes has common root.
Source code in client/ayon_maya/plugins/publish/validate_skeletalmesh_hierarchy.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | class ValidateSkeletalMeshHierarchy(plugin.MayaInstancePlugin,
OptionalPyblishPluginMixin):
"""Validates that nodes has common root."""
order = ValidateContentsOrder
families = ["skeletalMesh"]
label = "Skeletal Mesh Top Node"
optional = False
def process(self, instance):
if not self.is_active(instance.data):
return
geo = instance.data.get("geometry")
joints = instance.data.get("joints")
joints_parents = cmds.ls(joints, long=True)
geo_parents = cmds.ls(geo, long=True)
parents_set = {
parent.split("|")[1] for parent in (joints_parents + geo_parents)
}
self.log.debug(parents_set)
if len(set(parents_set)) > 2:
raise PublishXmlValidationError(
self,
"Multiple roots on geometry or joints."
)
|