mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #3678 from pypeclub/enhancement/OP-3713_Change-Create-flatten-image-into-tri-state
Webpublisher:change create flatten image into tri state
This commit is contained in:
commit
37ebb16ba6
3 changed files with 32 additions and 12 deletions
|
|
@ -9,14 +9,22 @@ from openpype.settings import get_project_settings
|
|||
|
||||
|
||||
class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
||||
"""Creates instances for configured color code of a layer.
|
||||
"""Creates instances for layers marked by configurable color.
|
||||
|
||||
Used in remote publishing when artists marks publishable layers by color-
|
||||
coding.
|
||||
coding. Top level layers (group) must be marked by specific color to be
|
||||
published as an instance of 'image' family.
|
||||
|
||||
Can add group for all publishable layers to allow creation of flattened
|
||||
image. (Cannot contain special background layer as it cannot be grouped!)
|
||||
|
||||
Based on value `create_flatten_image` from Settings:
|
||||
- "yes": create flattened 'image' subset of all publishable layers + create
|
||||
'image' subset per publishable layer
|
||||
- "only": create ONLY flattened 'image' subset of all publishable layers
|
||||
- "no": do not create flattened 'image' subset at all,
|
||||
only separate subsets per marked layer.
|
||||
|
||||
Identifier:
|
||||
id (str): "pyblish.avalon.instance"
|
||||
"""
|
||||
|
|
@ -32,8 +40,7 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
# TODO check if could be set globally, probably doesn't make sense when
|
||||
# flattened template cannot
|
||||
subset_template_name = ""
|
||||
create_flatten_image = False
|
||||
# probably not possible to configure this globally
|
||||
create_flatten_image = "no"
|
||||
flatten_subset_template = ""
|
||||
|
||||
def process(self, context):
|
||||
|
|
@ -62,6 +69,7 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
|
||||
publishable_layers = []
|
||||
created_instances = []
|
||||
family_from_settings = None
|
||||
for layer in layers:
|
||||
self.log.debug("Layer:: {}".format(layer))
|
||||
if layer.parents:
|
||||
|
|
@ -80,6 +88,9 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
self.log.debug("!!! Not found family or template, skip")
|
||||
continue
|
||||
|
||||
if not family_from_settings:
|
||||
family_from_settings = resolved_family
|
||||
|
||||
fill_pairs = {
|
||||
"variant": variant,
|
||||
"family": resolved_family,
|
||||
|
|
@ -98,13 +109,16 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
"Subset {} already created, skipping.".format(subset))
|
||||
continue
|
||||
|
||||
instance = self._create_instance(context, layer, resolved_family,
|
||||
asset_name, subset, task_name)
|
||||
if self.create_flatten_image != "flatten_only":
|
||||
instance = self._create_instance(context, layer,
|
||||
resolved_family,
|
||||
asset_name, subset, task_name)
|
||||
created_instances.append(instance)
|
||||
|
||||
existing_subset_names.append(subset)
|
||||
publishable_layers.append(layer)
|
||||
created_instances.append(instance)
|
||||
|
||||
if self.create_flatten_image and publishable_layers:
|
||||
if self.create_flatten_image != "no" and publishable_layers:
|
||||
self.log.debug("create_flatten_image")
|
||||
if not self.flatten_subset_template:
|
||||
self.log.warning("No template for flatten image")
|
||||
|
|
@ -116,7 +130,7 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
|
||||
first_layer = publishable_layers[0] # dummy layer
|
||||
first_layer.name = subset
|
||||
family = created_instances[0].data["family"] # inherit family
|
||||
family = family_from_settings # inherit family
|
||||
instance = self._create_instance(context, first_layer,
|
||||
family,
|
||||
asset_name, subset, task_name)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
},
|
||||
"publish": {
|
||||
"CollectColorCodedInstances": {
|
||||
"create_flatten_image": false,
|
||||
"create_flatten_image": "no",
|
||||
"flatten_subset_template": "",
|
||||
"color_code_mapping": []
|
||||
},
|
||||
|
|
|
|||
|
|
@ -45,9 +45,15 @@
|
|||
"label": "Set color for publishable layers, set its resulting family and template for subset name. \nCan create flatten image from published instances.(Applicable only for remote publishing!)"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "create_flatten_image",
|
||||
"label": "Create flatten image"
|
||||
"label": "Create flatten image",
|
||||
"type": "enum",
|
||||
"multiselection": false,
|
||||
"enum_items": [
|
||||
{ "flatten_with_images": "Flatten with images" },
|
||||
{ "flatten_only": "Flatten only" },
|
||||
{ "no": "No" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue