diff --git a/pype/settings/entities/schemas/projects_schema/schema_project_global.json b/pype/settings/entities/schemas/projects_schema/schema_project_global.json
index fa5db9af88..e6a1a6ff96 100644
--- a/pype/settings/entities/schemas/projects_schema/schema_project_global.json
+++ b/pype/settings/entities/schemas/projects_schema/schema_project_global.json
@@ -14,9 +14,15 @@
"name": "schema_global_tools"
},
{
- "type": "raw-json",
+ "type": "collapsible-wrap",
"label": "Project Folder Structure",
- "key": "project_folder_structure"
+ "children": [
+ {
+ "type": "raw-json",
+ "label": " ",
+ "key": "project_folder_structure"
+ }
+ ]
},
{
"type": "schema",
diff --git a/pype/settings/entities/schemas/projects_schema/schema_project_nuke.json b/pype/settings/entities/schemas/projects_schema/schema_project_nuke.json
index 2793157c4e..0548bd3544 100644
--- a/pype/settings/entities/schemas/projects_schema/schema_project_nuke.json
+++ b/pype/settings/entities/schemas/projects_schema/schema_project_nuke.json
@@ -9,7 +9,7 @@
"type": "dict",
"collapsible": true,
"key": "create",
- "label": "Create plugins",
+ "label": "Creator plugins",
"children": [
{
"type": "dict",
@@ -43,7 +43,7 @@
},
{
"type": "schema",
- "name": "schema_nuke_plugins",
+ "name": "schema_nuke_publish",
"template_data": []
},
{
diff --git a/pype/settings/entities/schemas/projects_schema/schema_project_standalonepublisher.json b/pype/settings/entities/schemas/projects_schema/schema_project_standalonepublisher.json
index 735b9611d2..47eea3441c 100644
--- a/pype/settings/entities/schemas/projects_schema/schema_project_standalonepublisher.json
+++ b/pype/settings/entities/schemas/projects_schema/schema_project_standalonepublisher.json
@@ -5,44 +5,6 @@
"label": "Standalone Publisher",
"is_file": true,
"children": [
- {
- "type": "dict",
- "collapsible": true,
- "key": "publish",
- "label": "Publish plugins",
- "is_file": true,
- "children": [
- {
- "type": "dict",
- "collapsible": true,
- "key": "ExtractThumbnailSP",
- "label": "ExtractThumbnailSP",
- "is_group": true,
- "children": [
- {
- "type": "dict",
- "collapsible": false,
- "key": "ffmpeg_args",
- "label": "ffmpeg_args",
- "children": [
- {
- "type": "list",
- "object_type": "text",
- "key": "input",
- "label": "input"
- },
- {
- "type": "list",
- "object_type": "text",
- "key": "output",
- "label": "output"
- }
- ]
- }
- ]
- }
- ]
- },
{
"type": "dict-modifiable",
"collapsible": true,
@@ -88,6 +50,44 @@
}
]
}
+ },
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "publish",
+ "label": "Publish plugins",
+ "is_file": true,
+ "children": [
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "ExtractThumbnailSP",
+ "label": "ExtractThumbnailSP",
+ "is_group": true,
+ "children": [
+ {
+ "type": "dict",
+ "collapsible": false,
+ "key": "ffmpeg_args",
+ "label": "ffmpeg_args",
+ "children": [
+ {
+ "type": "list",
+ "object_type": "text",
+ "key": "input",
+ "label": "input"
+ },
+ {
+ "type": "list",
+ "object_type": "text",
+ "key": "output",
+ "label": "output"
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
]
}
diff --git a/pype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json b/pype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
index 1d643b6273..58a21c185a 100644
--- a/pype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
+++ b/pype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
@@ -21,16 +21,66 @@
}
]
},
+ {
+ "type": "splitter"
+ },
+ {
+ "type": "label",
+ "label": "Validators"
+ },
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "ValidateShaderName",
+ "label": "ValidateShaderName",
+ "checkbox_key": "enabled",
+ "children": [
+ {
+ "type": "boolean",
+ "key": "enabled",
+ "label": "Enabled"
+ },
+ {
+ "type": "label",
+ "label": "Shader name regex can use named capture group asset to validate against current asset name.
Example:
^.*(?P=<asset>.+)_SHD
"
+ },
+ {
+ "type": "text",
+ "key": "regex",
+ "label": "Validation regex"
+ }
+ ]
+ },
+
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "ValidateAttributes",
+ "label": "ValidateAttributes",
+ "checkbox_key": "enabled",
+ "children": [
+ {
+ "type": "boolean",
+ "key": "enabled",
+ "label": "Enabled"
+ },
+ {
+ "type": "raw-json",
+ "key": "attributes",
+ "label": "Attributes"
+ }
+ ]
+ },
{
"type": "collapsible-wrap",
- "label": "Validators",
+ "label": "Model",
"children": [
{
"type": "dict",
"collapsible": true,
- "key": "ValidateShaderName",
- "label": "ValidateShaderName",
+ "key": "ValidateModelName",
+ "label": "Validate Model Name",
"checkbox_key": "enabled",
"children": [
{
@@ -40,7 +90,14 @@
},
{
"type": "label",
- "label": "Shader name regex can use named capture group asset to validate against current asset name.Example:
^.*(?P=<asset>.+)_SHD
"
+ "label": "Path to material file defining list of material names to check. This is material name per line simple text file.
It will be checked against named group shader in your Validation regex.For example:
^.*(?P=<shader>.+)_GEO
"
+ },
+ {
+ "type": "path-widget",
+ "key": "material_file",
+ "label": "Material File",
+ "multiplatform": true,
+ "multipath": false
},
{
"type": "text",
@@ -49,12 +106,11 @@
}
]
},
-
{
"type": "dict",
"collapsible": true,
- "key": "ValidateAttributes",
- "label": "ValidateAttributes",
+ "key": "ValidateTransformNamingSuffix",
+ "label": "ValidateTransformNamingSuffix",
"checkbox_key": "enabled",
"children": [
{
@@ -62,154 +118,19 @@
"key": "enabled",
"label": "Enabled"
},
+ {
+ "type": "label",
+ "label": "Validates transform suffix based on the type of its children shapes."
+ },
{
"type": "raw-json",
- "key": "attributes",
- "label": "Attributes"
- }
- ]
- },
- {
- "type": "collapsible-wrap",
- "label": "Model",
- "children": [
- {
- "type": "dict",
- "collapsible": true,
- "key": "ValidateModelName",
- "label": "Validate Model Name",
- "checkbox_key": "enabled",
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "label",
- "label": "Path to material file defining list of material names to check. This is material name per line simple text file.
It will be checked against named group shader in your Validation regex.For example:
^.*(?P=<shader>.+)_GEO
"
- },
- {
- "type": "path-widget",
- "key": "material_file",
- "label": "Material File",
- "multiplatform": true,
- "multipath": false
- },
- {
- "type": "text",
- "key": "regex",
- "label": "Validation regex"
- }
- ]
+ "key": "SUFFIX_NAMING_TABLE",
+ "label": "Suffix Naming Table"
},
{
- "type": "dict",
- "collapsible": true,
- "key": "ValidateTransformNamingSuffix",
- "label": "ValidateTransformNamingSuffix",
- "checkbox_key": "enabled",
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "label",
- "label": "Validates transform suffix based on the type of its children shapes."
- },
- {
- "type": "raw-json",
- "key": "SUFFIX_NAMING_TABLE",
- "label": "Suffix Naming Table"
- },
- {
- "type": "boolean",
- "key": "ALLOW_IF_NOT_IN_SUFFIX_TABLE",
- "label": "Allow if suffix not in table"
- }
- ]
- },
- {
- "type": "schema_template",
- "name": "template_publish_plugin",
- "template_data": [
- {
- "key": "ValidateColorSets",
- "label": "ValidateColorSets"
- },
- {
- "key": "ValidateMeshHasOverlappingUVs",
- "label": "ValidateMeshHasOverlappingUVs"
- },
- {
- "key": "ValidateMeshArnoldAttributes",
- "label": "ValidateMeshArnoldAttributes"
- },
- {
- "key": "ValidateMeshShaderConnections",
- "label": "ValidateMeshShaderConnections"
- },
- {
- "key": "ValidateMeshSingleUVSet",
- "label": "ValidateMeshSingleUVSet"
- },
- {
- "key": "ValidateMeshHasUVs",
- "label": "ValidateMeshHasUVs"
- },
- {
- "key": "ValidateMeshLaminaFaces",
- "label": "ValidateMeshLaminaFaces"
- },
- {
- "key": "ValidateMeshNonManifold",
- "label": "ValidateMeshNonManifold"
- },
- {
- "key": "ValidateMeshUVSetMap1",
- "label": "ValidateMeshUVSetMap1",
- "docstring": "Validate model's default uv set exists and is named 'map1'.
In Maya meshes by default have a uv set named 'map1' that cannot be deleted. It can be renamed, however,
introducing some issues with some renderers. As such we ensure the first (default) UV set index is named 'map1'."
- },
- {
- "key": "ValidateMeshVerticesHaveEdges",
- "label": "ValidateMeshVerticesHaveEdges"
- },
- {
- "key": "ValidateNoAnimation",
- "label": "ValidateNoAnimation",
- "docstring": "Ensure no keyframes on nodes in the Instance.
Even though a Model would extract without animCurves correctly this avoids getting different
output from a model when extracted from a different frame than the first frame. (Might be overly restrictive though)."
- },
- {
- "key": "ValidateNoNamespace",
- "label": "ValidateNoNamespace"
- },
- {
- "key": "ValidateNoNullTransforms",
- "label": "ValidateNoNullTransforms"
- },
- {
- "key": "ValidateNoUnknownNodes",
- "label": "ValidateNoUnknownNodes"
- },
- {
- "key": "ValidateNodeNoGhosting",
- "label": "ValidateNodeNoGhosting"
- },
- {
- "key": "ValidateShapeDefaultNames",
- "label": "ValidateShapeDefaultNames"
- },
- {
- "key": "ValidateShapeRenderStats",
- "label": "ValidateShapeRenderStats"
- },
- {
- "key": "ValidateTransformZero",
- "label": "ValidateTransformZero"
- }
- ]
+ "type": "boolean",
+ "key": "ALLOW_IF_NOT_IN_SUFFIX_TABLE",
+ "label": "Allow if suffix not in table"
}
]
},
@@ -218,22 +139,105 @@
"name": "template_publish_plugin",
"template_data": [
{
- "key": "ValidateCameraAttributes",
- "label": "Validate Camera Attributes",
- "docstring": ""
+ "key": "ValidateColorSets",
+ "label": "ValidateColorSets"
},
{
- "key": "ValidateAssemblyName",
- "label": "Validate Assembly Name"
+ "key": "ValidateMeshHasOverlappingUVs",
+ "label": "ValidateMeshHasOverlappingUVs"
},
{
- "key": "ValidateAssRelativePaths",
- "label": "ValidateAssRelativePaths"
+ "key": "ValidateMeshArnoldAttributes",
+ "label": "ValidateMeshArnoldAttributes"
+ },
+ {
+ "key": "ValidateMeshShaderConnections",
+ "label": "ValidateMeshShaderConnections"
+ },
+ {
+ "key": "ValidateMeshSingleUVSet",
+ "label": "ValidateMeshSingleUVSet"
+ },
+ {
+ "key": "ValidateMeshHasUVs",
+ "label": "ValidateMeshHasUVs"
+ },
+ {
+ "key": "ValidateMeshLaminaFaces",
+ "label": "ValidateMeshLaminaFaces"
+ },
+ {
+ "key": "ValidateMeshNonManifold",
+ "label": "ValidateMeshNonManifold"
+ },
+ {
+ "key": "ValidateMeshUVSetMap1",
+ "label": "ValidateMeshUVSetMap1",
+ "docstring": "Validate model's default uv set exists and is named 'map1'.
In Maya meshes by default have a uv set named 'map1' that cannot be deleted. It can be renamed, however,
introducing some issues with some renderers. As such we ensure the first (default) UV set index is named 'map1'."
+ },
+ {
+ "key": "ValidateMeshVerticesHaveEdges",
+ "label": "ValidateMeshVerticesHaveEdges"
+ },
+ {
+ "key": "ValidateNoAnimation",
+ "label": "ValidateNoAnimation",
+ "docstring": "Ensure no keyframes on nodes in the Instance.
Even though a Model would extract without animCurves correctly this avoids getting different
output from a model when extracted from a different frame than the first frame. (Might be overly restrictive though)."
+ },
+ {
+ "key": "ValidateNoNamespace",
+ "label": "ValidateNoNamespace"
+ },
+ {
+ "key": "ValidateNoNullTransforms",
+ "label": "ValidateNoNullTransforms"
+ },
+ {
+ "key": "ValidateNoUnknownNodes",
+ "label": "ValidateNoUnknownNodes"
+ },
+ {
+ "key": "ValidateNodeNoGhosting",
+ "label": "ValidateNodeNoGhosting"
+ },
+ {
+ "key": "ValidateShapeDefaultNames",
+ "label": "ValidateShapeDefaultNames"
+ },
+ {
+ "key": "ValidateShapeRenderStats",
+ "label": "ValidateShapeRenderStats"
+ },
+ {
+ "key": "ValidateTransformZero",
+ "label": "ValidateTransformZero"
}
]
}
]
},
+ {
+ "type": "schema_template",
+ "name": "template_publish_plugin",
+ "template_data": [
+ {
+ "key": "ValidateCameraAttributes",
+ "label": "Validate Camera Attributes",
+ "docstring": ""
+ },
+ {
+ "key": "ValidateAssemblyName",
+ "label": "Validate Assembly Name"
+ },
+ {
+ "key": "ValidateAssRelativePaths",
+ "label": "ValidateAssRelativePaths"
+ }
+ ]
+ },
+ {
+ "type": "splitter"
+ },
{
"type": "label",
"label": "Extractors"
diff --git a/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_plugins.json b/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_plugins.json
deleted file mode 100644
index aa767144e5..0000000000
--- a/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_plugins.json
+++ /dev/null
@@ -1,162 +0,0 @@
-{
- "type": "dict",
- "collapsible": true,
- "key": "publish",
- "label": "Publish plugins",
- "children": [
- {
- "type": "dict",
- "collapsible": true,
- "key": "PreCollectNukeInstances",
- "label": "PreCollectNukeInstances",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "sync_workfile_version",
- "label": "Sync Version from workfile"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "checkbox_key": "enabled",
- "key": "ExtractThumbnail",
- "label": "ExtractThumbnail",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "raw-json",
- "key": "nodes",
- "label": "Nodes"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "checkbox_key": "enabled",
- "key": "ValidateKnobs",
- "label": "ValidateKnobs",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "raw-json",
- "key": "knobs",
- "label": "Knobs"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "checkbox_key": "enabled",
- "key": "ExtractReviewDataLut",
- "label": "ExtractReviewDataLut",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "checkbox_key": "enabled",
- "key": "ExtractReviewDataMov",
- "label": "ExtractReviewDataMov",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "boolean",
- "key": "viewer_lut_raw",
- "label": "Viewer LUT raw"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "key": "ExtractSlateFrame",
- "label": "ExtractSlateFrame",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "viewer_lut_raw",
- "label": "Viewer LUT raw"
- }
- ]
- },
- {
- "type": "dict",
- "collapsible": true,
- "key": "NukeSubmitDeadline",
- "label": "NukeSubmitDeadline",
- "is_group": true,
- "children": [
- {
- "type": "number",
- "key": "deadline_priority",
- "label": "deadline_priority"
- },
- {
- "type": "text",
- "key": "deadline_pool",
- "label": "deadline_pool"
- },
- {
- "type": "text",
- "key": "deadline_pool_secondary",
- "label": "deadline_pool_secondary"
- },
- {
- "type": "number",
- "key": "deadline_chunk_size",
- "label": "deadline_chunk_size"
- }
- ]
- },
- {
- "type": "schema_template",
- "name": "template_publish_plugin",
- "template_data": [
- {
- "key": "ValidateOutputResolution",
- "label": "Validate Output Resolution"
- },
- {
- "key": "ValidateGizmo",
- "label": "Validate Gizmo (Group)"
- },
- {
- "key": "ValidateScript",
- "label": "Validate script settings"
- },
- {
- "key": "ValidateNukeWriteBoundingBox",
- "label": "Validate and Write Bounding Box"
- }
- ]
- }
- ]
-}
diff --git a/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_publish.json b/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_publish.json
index e9b3e1c36e..0e3770ac78 100644
--- a/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_publish.json
+++ b/pype/settings/entities/schemas/projects_schema/schemas/schema_nuke_publish.json
@@ -4,6 +4,10 @@
"key": "publish",
"label": "Publish plugins",
"children": [
+ {
+ "type": "label",
+ "label": "Collectors"
+ },
{
"type": "dict",
"collapsible": true,
@@ -17,26 +21,13 @@
"label": "Sync Version from workfile"
}
]
+ },
+ {
+ "type": "splitter"
},
{
- "type": "dict",
- "collapsible": true,
- "checkbox_key": "enabled",
- "key": "ExtractThumbnail",
- "label": "ExtractThumbnail",
- "is_group": true,
- "children": [
- {
- "type": "boolean",
- "key": "enabled",
- "label": "Enabled"
- },
- {
- "type": "raw-json",
- "key": "nodes",
- "label": "Nodes"
- }
- ]
+ "type": "label",
+ "label": "Validators"
},
{
"type": "dict",
@@ -58,6 +49,55 @@
}
]
},
+ {
+ "type": "schema_template",
+ "name": "template_publish_plugin",
+ "template_data": [
+ {
+ "key": "ValidateOutputResolution",
+ "label": "Validate Output Resolution"
+ },
+ {
+ "key": "ValidateGizmo",
+ "label": "Validate Gizmo (Group)"
+ },
+ {
+ "key": "ValidateScript",
+ "label": "Validate script settings"
+ },
+ {
+ "key": "ValidateNukeWriteBoundingBox",
+ "label": "Validate and Write Bounding Box"
+ }
+ ]
+ },
+ {
+ "type": "splitter"
+ },
+ {
+ "type": "label",
+ "label": "Extractors"
+ },
+ {
+ "type": "dict",
+ "collapsible": true,
+ "checkbox_key": "enabled",
+ "key": "ExtractThumbnail",
+ "label": "ExtractThumbnail",
+ "is_group": true,
+ "children": [
+ {
+ "type": "boolean",
+ "key": "enabled",
+ "label": "Enabled"
+ },
+ {
+ "type": "raw-json",
+ "key": "nodes",
+ "label": "Nodes"
+ }
+ ]
+ },
{
"type": "dict",
"collapsible": true,
@@ -108,24 +148,31 @@
]
},
{
- "type": "schema_template",
- "name": "template_publish_plugin",
- "template_data": [
+ "type": "dict",
+ "collapsible": true,
+ "key": "NukeSubmitDeadline",
+ "label": "NukeSubmitDeadline",
+ "is_group": true,
+ "children": [
{
- "key": "ValidateOutputResolution",
- "label": "Validate Output Resolution"
+ "type": "number",
+ "key": "deadline_priority",
+ "label": "deadline_priority"
},
{
- "key": "ValidateGizmo",
- "label": "Validate Gizmo (Group)"
+ "type": "text",
+ "key": "deadline_pool",
+ "label": "deadline_pool"
},
{
- "key": "ValidateScript",
- "label": "Validate script settings"
+ "type": "text",
+ "key": "deadline_pool_secondary",
+ "label": "deadline_pool_secondary"
},
{
- "key": "ValidateNukeWriteBoundingBox",
- "label": "Validate and Write Bounding Box"
+ "type": "number",
+ "key": "deadline_chunk_size",
+ "label": "deadline_chunk_size"
}
]
}