Allow to define department layers scoped only to a particular department layer type, e.g. "shot" versus "asset". This way, you can scope same layer names for both shot and asset at different orders if they have differing target scopes

This commit is contained in:
Roy Nieterau 2025-12-10 16:55:44 +01:00
parent 31e6b5a139
commit 4eece5e6e9
2 changed files with 57 additions and 31 deletions

View file

@ -74,9 +74,19 @@ class CollectFramesFixDefModel(BaseSettingsModel):
)
def usd_contribution_layer_types():
return [
{"value": "asset", "label": "Asset"},
{"value": "shot", "label": "Shot"},
]
class ContributionLayersModel(BaseSettingsModel):
_layout = "compact"
name: str = SettingsField(title="Name")
scope: list[str] = SettingsField(
title="Scope",
enum_resolver=usd_contribution_layer_types)
order: str = SettingsField(
title="Order",
description="Higher order means a higher strength and stacks the "
@ -1345,17 +1355,17 @@ DEFAULT_PUBLISH_VALUES = {
"enabled": True,
"contribution_layers": [
# Asset layers
{"name": "model", "order": 100},
{"name": "assembly", "order": 150},
{"name": "groom", "order": 175},
{"name": "look", "order": 200},
{"name": "rig", "order": 300},
{"name": "model", "order": 100, "scope": ["asset"]},
{"name": "assembly", "order": 150, "scope": ["asset"]},
{"name": "groom", "order": 175, "scope": ["asset"]},
{"name": "look", "order": 200, "scope": ["asset"]},
{"name": "rig", "order": 300, "scope": ["asset"]},
# Shot layers
{"name": "layout", "order": 200},
{"name": "animation", "order": 300},
{"name": "simulation", "order": 400},
{"name": "fx", "order": 500},
{"name": "lighting", "order": 600},
{"name": "layout", "order": 200, "scope": ["shot"]},
{"name": "animation", "order": 300, "scope": ["shot"]},
{"name": "simulation", "order": 400, "scope": ["shot"]},
{"name": "fx", "order": 500, "scope": ["shot"]},
{"name": "lighting", "order": 600, "scope": ["shot"]},
],
"profiles": [
{