mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge be50dd78c6 into f9bbab9944
This commit is contained in:
commit
385867670d
1 changed files with 41 additions and 0 deletions
41
client/ayon_core/plugins/publish/collect_udim.py
Normal file
41
client/ayon_core/plugins/publish/collect_udim.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
"""Publish UDIM tiles."""
|
||||
import re
|
||||
|
||||
import pyblish.api
|
||||
from ayon_core.lib import BoolDef
|
||||
from ayon_core.pipeline import publish
|
||||
|
||||
UDIM_REGEX = re.compile(r"(.*)\.(?P<udim>\d{4})\.(.*)")
|
||||
|
||||
|
||||
class CollectUDIMs(
|
||||
pyblish.api.InstancePlugin, publish.AYONPyblishPluginMixin):
|
||||
"""Collect UDIMs tiles."""
|
||||
|
||||
label = "Collect UDIMs"
|
||||
order = pyblish.api.CollectorOrder + 0.499
|
||||
families = ["image"]
|
||||
|
||||
def process(self, instance):
|
||||
# type: (pyblish.api.Instance) -> None
|
||||
instance_settings = self.get_attr_values_from_data(instance.data)
|
||||
is_udim = instance_settings.get("isUDIM", False)
|
||||
if not is_udim:
|
||||
return
|
||||
|
||||
for representation in instance.data["representations"]:
|
||||
if isinstance(representation["files"], (list, tuple)):
|
||||
continue
|
||||
|
||||
# sourcery skip: use-named-expression
|
||||
match = re.search(UDIM_REGEX, representation["files"])
|
||||
if match:
|
||||
representation["udim"] = [match.group("udim")]
|
||||
|
||||
@classmethod
|
||||
def get_attribute_defs(cls):
|
||||
return [
|
||||
BoolDef("isUDIM",
|
||||
label="Is UDIM",
|
||||
default=False)
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue