mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
add sync workfile version into substance painter
This commit is contained in:
parent
72e06a09f6
commit
66df4fcf0d
4 changed files with 24 additions and 5 deletions
|
|
@ -313,8 +313,9 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin):
|
||||||
|
|
||||||
# Define version
|
# Define version
|
||||||
version_number = None
|
version_number = None
|
||||||
if self.follow_workfile_version:
|
if self.follow_workfile_version or instance.data.get(
|
||||||
version_number = context.data("version")
|
"follow_workfile_version", self.follow_workfile_version):
|
||||||
|
version_number = context.data("version")
|
||||||
|
|
||||||
# Even if 'follow_workfile_version' is enabled, it may not be set
|
# Even if 'follow_workfile_version' is enabled, it may not be set
|
||||||
# because workfile version was not collected to 'context.data'
|
# because workfile version was not collected to 'context.data'
|
||||||
|
|
|
||||||
|
|
@ -890,6 +890,7 @@ DEFAULT_PUBLISH_VALUES = {
|
||||||
"maya",
|
"maya",
|
||||||
"nuke",
|
"nuke",
|
||||||
"photoshop",
|
"photoshop",
|
||||||
|
"substancepainter"
|
||||||
],
|
],
|
||||||
"enabled": True,
|
"enabled": True,
|
||||||
"optional": False,
|
"optional": False,
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,18 @@ class CreateTextures(Creator):
|
||||||
default_variant = "Main"
|
default_variant = "Main"
|
||||||
settings_category = "substancepainter"
|
settings_category = "substancepainter"
|
||||||
channel_mapping = []
|
channel_mapping = []
|
||||||
|
follow_workfile_version = False
|
||||||
|
|
||||||
def apply_settings(self, project_settings):
|
def apply_settings(self, project_settings):
|
||||||
settings = project_settings["substancepainter"].get("create", []) # noqa
|
settings = project_settings["substancepainter"].get("create", []) # noqa
|
||||||
if settings:
|
if settings:
|
||||||
self.channel_mapping = settings["CreateTextures"].get(
|
self.channel_mapping = settings["CreateTextures"].get(
|
||||||
"channel_mapping", [])
|
"channel_mapping", [])
|
||||||
|
core_setting = project_settings["core"]["publish"].get(
|
||||||
|
"CollectAnatomyInstanceData", [])
|
||||||
|
if core_setting:
|
||||||
|
self.follow_workfile_version = core_setting.get(
|
||||||
|
"follow_workfile_version", False)
|
||||||
|
|
||||||
|
|
||||||
def create(self, product_name, instance_data, pre_create_data):
|
def create(self, product_name, instance_data, pre_create_data):
|
||||||
|
|
@ -57,6 +63,10 @@ class CreateTextures(Creator):
|
||||||
if key in pre_create_data:
|
if key in pre_create_data:
|
||||||
creator_attributes[key] = pre_create_data[key]
|
creator_attributes[key] = pre_create_data[key]
|
||||||
|
|
||||||
|
if pre_create_data.get("follow_workfile_version"):
|
||||||
|
instance_data["follow_workfile_version"] = pre_create_data.get(
|
||||||
|
"follow_workfile_version")
|
||||||
|
|
||||||
if pre_create_data.get("use_selection"):
|
if pre_create_data.get("use_selection"):
|
||||||
stack = substance_painter.textureset.get_active_stack()
|
stack = substance_painter.textureset.get_active_stack()
|
||||||
|
|
||||||
|
|
@ -143,6 +153,9 @@ class CreateTextures(Creator):
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
BoolDef("follow_workfile_version",
|
||||||
|
label="Follow Workfile Version",
|
||||||
|
default=self.follow_workfile_version),
|
||||||
EnumDef("exportChannel",
|
EnumDef("exportChannel",
|
||||||
items=export_channel_enum,
|
items=export_channel_enum,
|
||||||
multiselection=True,
|
multiselection=True,
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
from ayon_core.pipeline import registered_host
|
from ayon_core.pipeline import registered_host
|
||||||
|
from ayon_core.lib import get_version_from_path
|
||||||
|
|
||||||
|
|
||||||
class CollectCurrentFile(pyblish.api.ContextPlugin):
|
class CollectContextData(pyblish.api.ContextPlugin):
|
||||||
"""Inject the current working file into context"""
|
"""Collect current context publish"""
|
||||||
|
|
||||||
order = pyblish.api.CollectorOrder - 0.49
|
order = pyblish.api.CollectorOrder - 0.49
|
||||||
label = "Current Workfile"
|
label = "Collect Context Data"
|
||||||
hosts = ["substancepainter"]
|
hosts = ["substancepainter"]
|
||||||
|
|
||||||
def process(self, context):
|
def process(self, context):
|
||||||
|
|
@ -15,3 +16,6 @@ class CollectCurrentFile(pyblish.api.ContextPlugin):
|
||||||
path = host.get_current_workfile()
|
path = host.get_current_workfile()
|
||||||
context.data["currentFile"] = path
|
context.data["currentFile"] = path
|
||||||
self.log.debug(f"Current workfile: {path}")
|
self.log.debug(f"Current workfile: {path}")
|
||||||
|
version = int(get_version_from_path(path))
|
||||||
|
context.data["version"] = version
|
||||||
|
self.log.debug(f"Current Version: {version}")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue