add validator to make sure all nodes are refernce nodes in skeleton_Anim_SET

This commit is contained in:
Kayla 2023-09-25 23:00:25 +08:00
parent a0d459eb69
commit 6a4ab981ad
4 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,31 @@
import pyblish.api
import openpype.hosts.maya.api.action
from openpype.pipeline.publish import (
PublishValidationError,
ValidateContentsOrder
)
from maya import cmds
class ValidateAnimatedReferenceRig(pyblish.api.InstancePlugin):
"""
Validate all the nodes underneath skeleton_Anim_SET
should be reference nodes
"""
order = ValidateContentsOrder
hosts = ["maya"]
families = ["animation.fbx"]
label = "Animated Reference Rig"
actions = [openpype.hosts.maya.api.action.SelectInvalidAction]
def process(self, instance):
animated_sets = instance.data["animated_skeleton"]
for animated_reference in animated_sets:
is_referenced = cmds.referenceQuery(
animated_reference, isNodeReferenced=True)
if not bool(is_referenced):
raise PublishValidationError(
"All the content in skeleton_Anim_SET"
" should be reference nodes"
)

View file

@ -1123,6 +1123,11 @@
"optional": true,
"active": true
},
"ValidateAnimatedReferenceRig": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateAnimationContent": {
"enabled": true,
"optional": false,

View file

@ -807,6 +807,10 @@
"key": "ValidateRigControllers",
"label": "Validate Rig Controllers"
},
{
"key": "ValidateAnimatedReferenceRig",
"label": "Validate Animated Reference Rig"
},
{
"key": "ValidateAnimationContent",
"label": "Validate Animation Content"

View file

@ -652,6 +652,10 @@ class PublishersModel(BaseSettingsModel):
default_factory=BasicValidateModel,
title="Validate Rig Controllers",
)
ValidateAnimatedReferenceRig: BasicValidateModel = Field(
default_factory=BasicValidateModel,
title="Validate Animated Reference Rig",
)
ValidateAnimationContent: BasicValidateModel = Field(
default_factory=BasicValidateModel,
title="Validate Animation Content",
@ -1174,6 +1178,11 @@ DEFAULT_PUBLISH_SETTINGS = {
"optional": True,
"active": True
},
"ValidateAnimatedReferenceRig": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateAnimationContent": {
"enabled": True,
"optional": False,