mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +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
|
||||
version_number = None
|
||||
if self.follow_workfile_version:
|
||||
version_number = context.data("version")
|
||||
if self.follow_workfile_version or instance.data.get(
|
||||
"follow_workfile_version", self.follow_workfile_version):
|
||||
version_number = context.data("version")
|
||||
|
||||
# Even if 'follow_workfile_version' is enabled, it may not be set
|
||||
# because workfile version was not collected to 'context.data'
|
||||
|
|
|
|||
|
|
@ -890,6 +890,7 @@ DEFAULT_PUBLISH_VALUES = {
|
|||
"maya",
|
||||
"nuke",
|
||||
"photoshop",
|
||||
"substancepainter"
|
||||
],
|
||||
"enabled": True,
|
||||
"optional": False,
|
||||
|
|
|
|||
|
|
@ -30,12 +30,18 @@ class CreateTextures(Creator):
|
|||
default_variant = "Main"
|
||||
settings_category = "substancepainter"
|
||||
channel_mapping = []
|
||||
follow_workfile_version = False
|
||||
|
||||
def apply_settings(self, project_settings):
|
||||
settings = project_settings["substancepainter"].get("create", []) # noqa
|
||||
if settings:
|
||||
self.channel_mapping = settings["CreateTextures"].get(
|
||||
"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):
|
||||
|
|
@ -57,6 +63,10 @@ class CreateTextures(Creator):
|
|||
if key in pre_create_data:
|
||||
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"):
|
||||
stack = substance_painter.textureset.get_active_stack()
|
||||
|
||||
|
|
@ -143,6 +153,9 @@ class CreateTextures(Creator):
|
|||
}
|
||||
|
||||
return [
|
||||
BoolDef("follow_workfile_version",
|
||||
label="Follow Workfile Version",
|
||||
default=self.follow_workfile_version),
|
||||
EnumDef("exportChannel",
|
||||
items=export_channel_enum,
|
||||
multiselection=True,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import pyblish.api
|
||||
|
||||
from ayon_core.pipeline import registered_host
|
||||
from ayon_core.lib import get_version_from_path
|
||||
|
||||
|
||||
class CollectCurrentFile(pyblish.api.ContextPlugin):
|
||||
"""Inject the current working file into context"""
|
||||
class CollectContextData(pyblish.api.ContextPlugin):
|
||||
"""Collect current context publish"""
|
||||
|
||||
order = pyblish.api.CollectorOrder - 0.49
|
||||
label = "Current Workfile"
|
||||
label = "Collect Context Data"
|
||||
hosts = ["substancepainter"]
|
||||
|
||||
def process(self, context):
|
||||
|
|
@ -15,3 +16,6 @@ class CollectCurrentFile(pyblish.api.ContextPlugin):
|
|||
path = host.get_current_workfile()
|
||||
context.data["currentFile"] = 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