ayon-core/server_addon/maya/server/settings/publishers.py
Ondřej Samohel 5643cbb9ca
🐛 fix invalid enabled flag
unrelated to the original PR, sorry
2024-05-02 11:25:42 +02:00

1380 lines
43 KiB
Python

import json
from pydantic import validator
from ayon_server.settings import (
BaseSettingsModel,
SettingsField,
MultiplatformPathModel,
ensure_unique_names,
)
from ayon_server.exceptions import BadRequestException
from .publish_playblast import (
ExtractPlayblastSetting,
DEFAULT_PLAYBLAST_SETTING,
)
def linear_unit_enum():
"""Get linear units enumerator."""
return [
{"label": "mm", "value": "millimeter"},
{"label": "cm", "value": "centimeter"},
{"label": "m", "value": "meter"},
{"label": "km", "value": "kilometer"},
{"label": "in", "value": "inch"},
{"label": "ft", "value": "foot"},
{"label": "yd", "value": "yard"},
{"label": "mi", "value": "mile"}
]
def angular_unit_enum():
"""Get angular units enumerator."""
return [
{"label": "deg", "value": "degree"},
{"label": "rad", "value": "radian"},
]
class BasicValidateModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
class ValidateMeshUVSetMap1Model(BasicValidateModel):
"""Validate model's default uv set exists and is named 'map1'."""
pass
class ValidateNoAnimationModel(BasicValidateModel):
"""Ensure no keyframes on nodes in the Instance."""
pass
class ValidateRigOutSetNodeIdsModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateSkinclusterDeformerSet")
optional: bool = SettingsField(title="Optional")
allow_history_only: bool = SettingsField(title="Allow history only")
class ValidateModelNameModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
database: bool = SettingsField(
title="Use database shader name definitions"
)
material_file: MultiplatformPathModel = SettingsField(
default_factory=MultiplatformPathModel,
title="Material File",
description=(
"Path to material file defining list of material names to check."
)
)
regex: str = SettingsField(
"(.*)_(\\d)*_(?P<shader>.*)_(GEO)",
title="Validation regex",
description=(
"Regex for validating name of top level group name. You can use"
" named capturing groups:(?P<asset>.*) for Asset name"
)
)
top_level_regex: str = SettingsField(
".*_GRP",
title="Top level group name regex",
description=(
"To check for asset in name so *_some_asset_name_GRP"
" is valid, use:.*?_(?P<asset>.*)_GEO"
)
)
class ValidateModelContentModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
validate_top_group: bool = SettingsField(title="Validate one top group")
class ValidateTransformNamingSuffixModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
SUFFIX_NAMING_TABLE: str = SettingsField(
"{}",
title="Suffix Naming Tables",
widget="textarea",
description=(
"Validates transform suffix based on"
" the type of its children shapes."
)
)
@validator("SUFFIX_NAMING_TABLE")
def validate_json(cls, value):
if not value.strip():
return "{}"
try:
converted_value = json.loads(value)
success = isinstance(converted_value, dict)
except json.JSONDecodeError:
success = False
if not success:
raise BadRequestException(
"The text can't be parsed as json object"
)
return value
ALLOW_IF_NOT_IN_SUFFIX_TABLE: bool = SettingsField(
title="Allow if suffix not in table"
)
class CollectMayaRenderModel(BaseSettingsModel):
sync_workfile_version: bool = SettingsField(
title="Sync render version with workfile"
)
class CollectFbxAnimationModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Collect Fbx Animation")
class CollectFbxCameraModel(BaseSettingsModel):
enabled: bool = SettingsField(title="CollectFbxCamera")
class CollectGLTFModel(BaseSettingsModel):
enabled: bool = SettingsField(title="CollectGLTF")
class ValidateFrameRangeModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateFrameRange")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
exclude_product_types: list[str] = SettingsField(
default_factory=list,
title="Exclude product types"
)
class ValidateShaderNameModel(BaseSettingsModel):
"""
Shader name regex can use named capture group asset to validate against current asset name.
"""
enabled: bool = SettingsField(title="ValidateShaderName")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
regex: str = SettingsField(
"(?P<asset>.*)_(.*)_SHD",
title="Validation regex"
)
class ValidateAttributesModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateAttributes")
attributes: str = SettingsField(
"{}", title="Attributes", widget="textarea")
@validator("attributes")
def validate_json(cls, value):
if not value.strip():
return "{}"
try:
converted_value = json.loads(value)
success = isinstance(converted_value, dict)
except json.JSONDecodeError:
success = False
if not success:
raise BadRequestException(
"The attributes can't be parsed as json object"
)
return value
class ValidateLoadedPluginModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateLoadedPlugin")
optional: bool = SettingsField(title="Optional")
whitelist_native_plugins: bool = SettingsField(
title="Whitelist Maya Native Plugins"
)
authorized_plugins: list[str] = SettingsField(
default_factory=list, title="Authorized plugins"
)
class ValidateMayaUnitsModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateMayaUnits")
optional: bool = SettingsField(title="Optional")
validate_linear_units: bool = SettingsField(title="Validate linear units")
linear_units: str = SettingsField(
enum_resolver=linear_unit_enum, title="Linear Units"
)
validate_angular_units: bool = SettingsField(
title="Validate angular units"
)
angular_units: str = SettingsField(
enum_resolver=angular_unit_enum, title="Angular units"
)
validate_fps: bool = SettingsField(title="Validate fps")
class ValidateUnrealStaticMeshNameModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateUnrealStaticMeshName")
optional: bool = SettingsField(title="Optional")
validate_mesh: bool = SettingsField(title="Validate mesh names")
validate_collision: bool = SettingsField(title="Validate collision names")
class ValidateCycleErrorModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateCycleError")
optional: bool = SettingsField(title="Optional")
families: list[str] = SettingsField(
default_factory=list, title="Families"
)
class ValidatePluginPathAttributesAttrModel(BaseSettingsModel):
name: str = SettingsField(title="Node type")
value: str = SettingsField(title="Attribute")
class ValidatePluginPathAttributesModel(BaseSettingsModel):
"""Fill in the node types and attributes you want to validate.
<p>e.g. <b>AlembicNode.abc_file</b>, the node type is <b>AlembicNode</b>
and the node attribute is <b>abc_file</b>
"""
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
attribute: list[ValidatePluginPathAttributesAttrModel] = SettingsField(
default_factory=list,
title="File Attribute"
)
@validator("attribute")
def validate_unique_outputs(cls, value):
ensure_unique_names(value)
return value
# Validate Render Setting
class RendererAttributesModel(BaseSettingsModel):
_layout = "compact"
type: str = SettingsField(title="Type")
value: str = SettingsField(title="Value")
class ValidateRenderSettingsModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ValidateRenderSettings")
optional: bool = SettingsField(title="Optional")
arnold_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Arnold Render Attributes")
vray_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="VRay Render Attributes")
redshift_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Redshift Render Attributes")
renderman_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Renderman Render Attributes")
class BasicValidateModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
class ValidateCameraContentsModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
validate_shapes: bool = SettingsField(title="Validate presence of shapes")
class ExtractProxyAlembicModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
families: list[str] = SettingsField(
default_factory=list,
title="Families")
class ExtractAlembicModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
families: list[str] = SettingsField(
default_factory=list,
title="Families")
bake_attributes: list[str] = SettingsField(
default_factory=list, title="Bake Attributes",
description="List of attributes that will be included in the alembic "
"export.",
)
bake_attribute_prefixes: list[str] = SettingsField(
default_factory=list, title="Bake Attribute Prefixes",
description="List of attribute prefixes for attributes that will be "
"included in the alembic export.",
)
class ExtractObjModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
class ExtractModelModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
class ExtractMayaSceneRawModel(BaseSettingsModel):
"""Add loaded instances to those published families:"""
enabled: bool = SettingsField(title="ExtractMayaSceneRaw")
add_for_families: list[str] = SettingsField(
default_factory=list, title="Families"
)
class ExtractCameraAlembicModel(BaseSettingsModel):
enabled: bool = SettingsField(title="ExtractCameraAlembic")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
bake_attributes: str = SettingsField(
"[]", title="Bake Attributes", widget="textarea",
description="List of attributes that will be included in the alembic "
"camera export. Needs to be written as a JSON list.",
)
@validator("bake_attributes")
def validate_json_list(cls, value):
if not value.strip():
return "[]"
try:
converted_value = json.loads(value)
success = isinstance(converted_value, list)
except json.JSONDecodeError:
success = False
if not success:
raise BadRequestException(
"The text can't be parsed as json object"
)
return value
class ExtractGLBModel(BaseSettingsModel):
enabled: bool = True
active: bool = SettingsField(title="Active")
ogsfx_path: str = SettingsField(title="GLSL Shader Directory")
class ExtractLookArgsModel(BaseSettingsModel):
argument: str = SettingsField(title="Argument")
parameters: list[str] = SettingsField(
default_factory=list, title="Parameters"
)
class ExtractLookModel(BaseSettingsModel):
maketx_arguments: list[ExtractLookArgsModel] = SettingsField(
default_factory=list,
title="Extra arguments for maketx command line"
)
class ExtractGPUCacheModel(BaseSettingsModel):
enabled: bool = SettingsField(title="Enabled")
optional: bool = SettingsField(title="Optional")
active: bool = SettingsField(title="Active")
families: list[str] = SettingsField(default_factory=list, title="Families")
step: float = SettingsField(1.0, ge=1.0, title="Step")
stepSave: int = SettingsField(1, ge=1, title="Step Save")
optimize: bool = SettingsField(title="Optimize Hierarchy")
optimizationThreshold: int = SettingsField(
1, ge=1, title="Optimization Threshold"
)
optimizeAnimationsForMotionBlur: bool = SettingsField(
title="Optimize Animations For Motion Blur"
)
writeMaterials: bool = SettingsField(title="Write Materials")
useBaseTessellation: bool = SettingsField(title="User Based Tessellation")
class PublishersModel(BaseSettingsModel):
CollectMayaRender: CollectMayaRenderModel = SettingsField(
default_factory=CollectMayaRenderModel,
title="Collect Render Layers",
section="Collectors"
)
CollectFbxAnimation: CollectFbxAnimationModel = SettingsField(
default_factory=CollectFbxAnimationModel,
title="Collect FBX Animation",
)
CollectFbxCamera: CollectFbxCameraModel = SettingsField(
default_factory=CollectFbxCameraModel,
title="Collect Camera for FBX export",
)
CollectGLTF: CollectGLTFModel = SettingsField(
default_factory=CollectGLTFModel,
title="Collect Assets for GLB/GLTF export"
)
ValidateInstanceInContext: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Instance In Context",
section="Validators"
)
ValidateContainers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Containers"
)
ValidateFrameRange: ValidateFrameRangeModel = SettingsField(
default_factory=ValidateFrameRangeModel,
title="Validate Frame Range"
)
ValidateShaderName: ValidateShaderNameModel = SettingsField(
default_factory=ValidateShaderNameModel,
title="Validate Shader Name"
)
ValidateShadingEngine: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Look Shading Engine Naming"
)
ValidateMayaColorSpace: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Colorspace"
)
ValidateAttributes: ValidateAttributesModel = SettingsField(
default_factory=ValidateAttributesModel,
title="Validate Attributes"
)
ValidateLoadedPlugin: ValidateLoadedPluginModel = SettingsField(
default_factory=ValidateLoadedPluginModel,
title="Validate Loaded Plugin"
)
ValidateMayaUnits: ValidateMayaUnitsModel = SettingsField(
default_factory=ValidateMayaUnitsModel,
title="Validate Maya Units"
)
ValidateUnrealStaticMeshName: ValidateUnrealStaticMeshNameModel = (
SettingsField(
default_factory=ValidateUnrealStaticMeshNameModel,
title="Validate Unreal Static Mesh Name"
)
)
ValidateCycleError: ValidateCycleErrorModel = SettingsField(
default_factory=ValidateCycleErrorModel,
title="Validate Cycle Error"
)
ValidatePluginPathAttributes: ValidatePluginPathAttributesModel = (
SettingsField(
default_factory=ValidatePluginPathAttributesModel,
title="Plug-in Path Attributes"
)
)
ValidateRenderSettings: ValidateRenderSettingsModel = SettingsField(
default_factory=ValidateRenderSettingsModel,
title="Validate Render Settings"
)
ValidateResolution: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Resolution Setting"
)
ValidateCurrentRenderLayerIsRenderable: BasicValidateModel = (
SettingsField(
default_factory=BasicValidateModel,
title="Validate Current Render Layer Has Renderable Camera"
)
)
ValidateGLSLMaterial: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate GLSL Material"
)
ValidateGLSLPlugin: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate GLSL Plugin"
)
ValidateRenderImageRule: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Image Rule (Workspace)"
)
ValidateRenderNoDefaultCameras: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Default Cameras Renderable"
)
ValidateRenderSingleCamera: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Single Camera "
)
ValidateRenderLayerAOVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Passes/AOVs Are Registered"
)
ValidateStepSize: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Step Size"
)
ValidateVRayDistributedRendering: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Distributed Rendering"
)
ValidateVrayReferencedAOVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Referenced AOVs"
)
ValidateVRayTranslatorEnabled: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Translator Settings"
)
ValidateVrayProxy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Proxy Settings"
)
ValidateVrayProxyMembers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Proxy Members"
)
ValidateYetiRenderScriptCallbacks: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Render Script Callbacks"
)
ValidateYetiRigCacheState: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Cache State"
)
ValidateYetiRigInputShapesInInstance: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Input Shapes In Instance"
)
ValidateYetiRigSettings: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Settings"
)
# Model - START
ValidateModelName: ValidateModelNameModel = SettingsField(
default_factory=ValidateModelNameModel,
title="Validate Model Name",
section="Model",
)
ValidateModelContent: ValidateModelContentModel = SettingsField(
default_factory=ValidateModelContentModel,
title="Validate Model Content",
)
ValidateTransformNamingSuffix: ValidateTransformNamingSuffixModel = (
SettingsField(
default_factory=ValidateTransformNamingSuffixModel,
title="Validate Transform Naming Suffix",
)
)
ValidateColorSets: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Color Sets",
)
ValidateMeshHasOverlappingUVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Has Overlapping UVs",
)
ValidateMeshArnoldAttributes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Arnold Attributes",
)
ValidateMeshShaderConnections: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Shader Connections",
)
ValidateMeshSingleUVSet: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Single UV Set",
)
ValidateMeshHasUVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Has UVs",
)
ValidateMeshLaminaFaces: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Lamina Faces",
)
ValidateMeshNgons: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Ngons",
)
ValidateMeshNonManifold: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Non-Manifold",
)
ValidateMeshNoNegativeScale: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh No Negative Scale",
)
ValidateMeshNonZeroEdgeLength: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Edge Length Non Zero",
)
ValidateMeshNormalsUnlocked: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Normals Unlocked",
)
ValidateMeshUVSetMap1: ValidateMeshUVSetMap1Model = SettingsField(
default_factory=ValidateMeshUVSetMap1Model,
title="Validate Mesh UV Set Map 1",
)
ValidateMeshVerticesHaveEdges: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Vertices Have Edges",
)
ValidateNoAnimation: ValidateNoAnimationModel = SettingsField(
default_factory=ValidateNoAnimationModel,
title="Validate No Animation",
)
ValidateNoNamespace: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Namespace",
)
ValidateNoNullTransforms: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Null Transforms",
)
ValidateNoUnknownNodes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Unknown Nodes",
)
ValidateNodeNoGhosting: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Node No Ghosting",
)
ValidateShapeDefaultNames: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Default Names",
)
ValidateShapeRenderStats: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Render Stats",
)
ValidateShapeZero: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Zero",
)
ValidateTransformZero: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Transform Zero",
)
ValidateUniqueNames: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Unique Names",
)
ValidateNoVRayMesh: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No V-Ray Proxies (VRayMesh)",
)
ValidateUnrealMeshTriangulated: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate if Mesh is Triangulated",
)
ValidateAlembicVisibleOnly: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Alembic Visible Node",
)
ExtractProxyAlembic: ExtractProxyAlembicModel = SettingsField(
default_factory=ExtractProxyAlembicModel,
title="Extract Proxy Alembic",
section="Model Extractors",
)
ExtractAlembic: ExtractAlembicModel = SettingsField(
default_factory=ExtractAlembicModel,
title="Extract Alembic",
)
ExtractObj: ExtractObjModel = SettingsField(
default_factory=ExtractObjModel,
title="Extract OBJ"
)
# Model - END
# Rig - START
ValidateRigContents: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Contents",
section="Rig",
)
ValidateRigJointsHidden: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Joints Hidden",
)
ValidateRigControllers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Controllers",
)
ValidateAnimatedReferenceRig: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animated Reference Rig",
)
ValidateAnimationContent: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animation Content",
)
ValidateOutRelatedNodeIds: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animation Out Set Related Node Ids",
)
ValidateRigControllersArnoldAttributes: BasicValidateModel = (
SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Controllers (Arnold Attributes)",
)
)
ValidateSkeletalMeshHierarchy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeletal Mesh Top Node",
)
ValidateSkeletonRigContents: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Contents"
)
ValidateSkeletonRigControllers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Controllers"
)
ValidateSkinclusterDeformerSet: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skincluster Deformer Relationships",
)
ValidateSkeletonRigOutputIds: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Output Ids"
)
ValidateSkeletonTopGroupHierarchy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Top Group Hierarchy",
)
ValidateRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = SettingsField(
default_factory=ValidateRigOutSetNodeIdsModel,
title="Validate Rig Out Set Node Ids",
)
ValidateSkeletonRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = (
SettingsField(
default_factory=ValidateRigOutSetNodeIdsModel,
title="Validate Skeleton Rig Out Set Node Ids",
)
)
# Rig - END
ValidateCameraAttributes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Camera Attributes"
)
ValidateAssemblyName: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Name"
)
ValidateAssemblyNamespaces: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Namespaces"
)
ValidateAssemblyModelTransforms: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Model Transforms"
)
ValidateAssRelativePaths: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Ass Relative Paths"
)
ValidateNoDefaultCameras: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Default Cameras"
)
ValidateUnrealUpAxis: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Unreal Up-Axis Check"
)
ValidateCameraContents: ValidateCameraContentsModel = SettingsField(
default_factory=ValidateCameraContentsModel,
title="Validate Camera Content"
)
ExtractPlayblast: ExtractPlayblastSetting = SettingsField(
default_factory=ExtractPlayblastSetting,
title="Extract Playblast Settings",
section="Extractors"
)
ExtractMayaSceneRaw: ExtractMayaSceneRawModel = SettingsField(
default_factory=ExtractMayaSceneRawModel,
title="Maya Scene(Raw)"
)
ExtractCameraAlembic: ExtractCameraAlembicModel = SettingsField(
default_factory=ExtractCameraAlembicModel,
title="Extract Camera Alembic"
)
ExtractGLB: ExtractGLBModel = SettingsField(
default_factory=ExtractGLBModel,
title="Extract GLB"
)
ExtractLook: ExtractLookModel = SettingsField(
default_factory=ExtractLookModel,
title="Extract Look"
)
ExtractGPUCache: ExtractGPUCacheModel = SettingsField(
default_factory=ExtractGPUCacheModel,
title="Extract GPU Cache",
)
ExtractModel: ExtractModelModel = SettingsField(
default_factory=ExtractModelModel,
title="Extract Model (Maya Scene)"
)
DEFAULT_SUFFIX_NAMING = {
"mesh": ["_GEO", "_GES", "_GEP", "_OSD"],
"nurbsCurve": ["_CRV"],
"nurbsSurface": ["_NRB"],
"locator": ["_LOC"],
"group": ["_GRP"]
}
DEFAULT_PUBLISH_SETTINGS = {
"CollectMayaRender": {
"sync_workfile_version": False
},
"CollectFbxAnimation": {
"enabled": False
},
"CollectFbxCamera": {
"enabled": False
},
"CollectGLTF": {
"enabled": False
},
"ValidateInstanceInContext": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateContainers": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateFrameRange": {
"enabled": True,
"optional": True,
"active": True,
"exclude_product_types": [
"model",
"rig",
"staticMesh"
]
},
"ValidateShaderName": {
"enabled": False,
"optional": True,
"active": True,
"regex": "(?P<asset>.*)_(.*)_SHD"
},
"ValidateShadingEngine": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateMayaColorSpace": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateAttributes": {
"enabled": False,
"attributes": "{}"
},
"ValidateLoadedPlugin": {
"enabled": False,
"optional": True,
"whitelist_native_plugins": False,
"authorized_plugins": []
},
"ValidateMayaUnits": {
"enabled": True,
"optional": False,
"validate_linear_units": True,
"linear_units": "cm",
"validate_angular_units": True,
"angular_units": "deg",
"validate_fps": True
},
"ValidateUnrealStaticMeshName": {
"enabled": True,
"optional": True,
"validate_mesh": False,
"validate_collision": True
},
"ValidateCycleError": {
"enabled": True,
"optional": False,
"families": [
"rig"
]
},
"ValidatePluginPathAttributes": {
"enabled": False,
"optional": False,
"active": True,
"attribute": [
{"name": "AlembicNode", "value": "abc_File"},
{"name": "VRayProxy", "value": "fileName"},
{"name": "RenderManArchive", "value": "filename"},
{"name": "pgYetiMaya", "value": "cacheFileName"},
{"name": "aiStandIn", "value": "dso"},
{"name": "RedshiftSprite", "value": "tex0"},
{"name": "RedshiftBokeh", "value": "dofBokehImage"},
{"name": "RedshiftCameraMap", "value": "tex0"},
{"name": "RedshiftEnvironment", "value": "tex2"},
{"name": "RedshiftDomeLight", "value": "tex1"},
{"name": "RedshiftIESLight", "value": "profile"},
{"name": "RedshiftLightGobo", "value": "tex0"},
{"name": "RedshiftNormalMap", "value": "tex0"},
{"name": "RedshiftProxyMesh", "value": "fileName"},
{"name": "RedshiftVolumeShape", "value": "fileName"},
{"name": "VRayTexGLSL", "value": "fileName"},
{"name": "VRayMtlGLSL", "value": "fileName"},
{"name": "VRayVRmatMtl", "value": "fileName"},
{"name": "VRayPtex", "value": "ptexFile"},
{"name": "VRayLightIESShape", "value": "iesFile"},
{"name": "VRayMesh", "value": "materialAssignmentsFile"},
{"name": "VRayMtlOSL", "value": "fileName"},
{"name": "VRayTexOSL", "value": "fileName"},
{"name": "VRayTexOCIO", "value": "ocioConfigFile"},
{"name": "VRaySettingsNode", "value": "pmap_autoSaveFile2"},
{"name": "VRayScannedMtl", "value": "file"},
{"name": "VRayScene", "value": "parameterOverrideFilePath"},
{"name": "VRayMtlMDL", "value": "filename"},
{"name": "VRaySimbiont", "value": "file"},
{"name": "dlOpenVDBShape", "value": "filename"},
{"name": "pgYetiMayaShape", "value": "liveABCFilename"},
{"name": "gpuCache", "value": "cacheFileName"},
]
},
"ValidateRenderSettings": {
"enabled": True,
"optional": False,
"arnold_render_attributes": [],
"vray_render_attributes": [],
"redshift_render_attributes": [],
"renderman_render_attributes": []
},
"ValidateResolution": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateCurrentRenderLayerIsRenderable": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateGLSLMaterial": {
"enabled": False,
"optional": False,
"active": True
},
"ValidateGLSLPlugin": {
"enabled": False,
"optional": False,
"active": True
},
"ValidateRenderImageRule": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateRenderNoDefaultCameras": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateRenderSingleCamera": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateRenderLayerAOVs": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateStepSize": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateVRayDistributedRendering": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateVrayReferencedAOVs": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateVRayTranslatorEnabled": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateVrayProxy": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateVrayProxyMembers": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateYetiRenderScriptCallbacks": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateYetiRigCacheState": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateYetiRigInputShapesInInstance": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateYetiRigSettings": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateModelName": {
"enabled": False,
"database": True,
"material_file": {
"windows": "",
"darwin": "",
"linux": ""
},
"regex": "(.*)_(\\d)*_(?P<shader>.*)_(GEO)",
"top_level_regex": ".*_GRP"
},
"ValidateModelContent": {
"enabled": True,
"optional": False,
"validate_top_group": True
},
"ValidateTransformNamingSuffix": {
"enabled": True,
"optional": True,
"SUFFIX_NAMING_TABLE": json.dumps(DEFAULT_SUFFIX_NAMING, indent=4),
"ALLOW_IF_NOT_IN_SUFFIX_TABLE": True
},
"ValidateColorSets": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateMeshHasOverlappingUVs": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshArnoldAttributes": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshShaderConnections": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateMeshSingleUVSet": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshHasUVs": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateMeshLaminaFaces": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshNgons": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshNonManifold": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshNoNegativeScale": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateMeshNonZeroEdgeLength": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateMeshNormalsUnlocked": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshUVSetMap1": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateMeshVerticesHaveEdges": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateNoAnimation": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateNoNamespace": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateNoNullTransforms": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateNoUnknownNodes": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateNodeNoGhosting": {
"enabled": False,
"optional": False,
"active": True
},
"ValidateShapeDefaultNames": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateShapeRenderStats": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateShapeZero": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateTransformZero": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateUniqueNames": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateNoVRayMesh": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateUnrealMeshTriangulated": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateAlembicVisibleOnly": {
"enabled": True,
"optional": False,
"active": True
},
"ExtractProxyAlembic": {
"enabled": False,
"families": [
"proxyAbc"
]
},
"ExtractAlembic": {
"enabled": True,
"families": [
"pointcache",
"model",
"vrayproxy.alembic"
],
"bake_attributes": [],
"bake_attribute_prefixes": []
},
"ExtractObj": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateRigContents": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateRigJointsHidden": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateRigControllers": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateAnimatedReferenceRig": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateAnimationContent": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateOutRelatedNodeIds": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateRigControllersArnoldAttributes": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateSkeletalMeshHierarchy": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateSkeletonRigContents": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateSkeletonRigControllers": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateSkinclusterDeformerSet": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateRigOutSetNodeIds": {
"enabled": True,
"optional": False,
"allow_history_only": False
},
"ValidateSkeletonRigOutSetNodeIds": {
"enabled": False,
"optional": False,
"allow_history_only": False
},
"ValidateSkeletonRigOutputIds": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateSkeletonTopGroupHierarchy": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateCameraAttributes": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateAssemblyName": {
"enabled": True,
"optional": True,
"active": True
},
"ValidateAssemblyNamespaces": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateAssemblyModelTransforms": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateAssRelativePaths": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateNoDefaultCameras": {
"enabled": True,
"optional": False,
"active": True
},
"ValidateUnrealUpAxis": {
"enabled": False,
"optional": True,
"active": True
},
"ValidateCameraContents": {
"enabled": True,
"optional": False,
"validate_shapes": True
},
"ExtractPlayblast": DEFAULT_PLAYBLAST_SETTING,
"ExtractMayaSceneRaw": {
"enabled": True,
"add_for_families": [
"layout"
]
},
"ExtractCameraAlembic": {
"enabled": True,
"optional": True,
"active": True,
"bake_attributes": "[]"
},
"ExtractGLB": {
"enabled": False,
"active": True,
"ogsfx_path": "/maya2glTF/PBR/shaders/glTF_PBR.ogsfx"
},
"ExtractLook": {
"maketx_arguments": []
},
"ExtractGPUCache": {
"enabled": False,
"optional": False,
"active": True,
"families": [
"model",
"animation",
"pointcache"
],
"step": 1.0,
"stepSave": 1,
"optimize": True,
"optimizationThreshold": 40000,
"optimizeAnimationsForMotionBlur": True,
"writeMaterials": True,
"useBaseTessellation": True
},
"ExtractModel": {
"enabled": True,
"optional": True,
"active": True,
}
}