mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Implemented deadline file dependencies for Blender
This commit is contained in:
parent
0e4e845407
commit
2f98c006b2
4 changed files with 51 additions and 2 deletions
|
|
@ -0,0 +1,36 @@
|
|||
from pathlib import Path
|
||||
|
||||
import pyblish.api
|
||||
|
||||
import bpy
|
||||
|
||||
|
||||
class CollectFileDependencies(pyblish.api.ContextPlugin):
|
||||
"""Gather all files referenced in this scene."""
|
||||
|
||||
label = "Collect File Dependencies"
|
||||
order = pyblish.api.CollectorOrder - 0.49
|
||||
hosts = ["blender"]
|
||||
families = ["render"]
|
||||
|
||||
@classmethod
|
||||
def apply_settings(cls, project_settings):
|
||||
# Disable plug-in if not used for deadline submission anyway
|
||||
settings = project_settings["deadline"]["publish"]["BlenderSubmitDeadline"] # noqa
|
||||
cls.enabled = settings.get("asset_dependencies", True)
|
||||
|
||||
def process(self, context):
|
||||
dependencies = set()
|
||||
|
||||
# Add alembic files as dependencies
|
||||
for cache in bpy.data.cache_files:
|
||||
dependencies.add(
|
||||
Path(bpy.path.abspath(cache.filepath)).resolve().as_posix())
|
||||
|
||||
# Add image files as dependencies
|
||||
for image in bpy.data.images:
|
||||
if image.filepath:
|
||||
dependencies.add(Path(
|
||||
bpy.path.abspath(image.filepath)).resolve().as_posix())
|
||||
|
||||
context.data["fileDependencies"] = list(dependencies)
|
||||
|
|
@ -40,6 +40,17 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline,
|
|||
group = None
|
||||
job_delay = "00:00:00:00"
|
||||
|
||||
@classmethod
|
||||
def apply_settings(cls, project_settings):
|
||||
settings = project_settings["deadline"]["publish"]["BlenderSubmitDeadline"] # noqa
|
||||
|
||||
# Take some defaults from settings
|
||||
cls.asset_dependencies = settings.get("asset_dependencies",
|
||||
cls.asset_dependencies)
|
||||
cls.use_published = settings.get("use_published", cls.use_published)
|
||||
cls.priority = settings.get("priority", cls.priority)
|
||||
cls.group = settings.get("group", cls.group)
|
||||
|
||||
def get_job_info(self):
|
||||
job_info = DeadlineJobInfo(Plugin="Blender")
|
||||
|
||||
|
|
@ -161,7 +172,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline,
|
|||
|
||||
return plugin_payload
|
||||
|
||||
def process_submission(self):
|
||||
def process_submission(self, auth=None):
|
||||
instance = self._instance
|
||||
|
||||
expected_files = instance.data["expectedFiles"]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
name = "deadline"
|
||||
title = "Deadline"
|
||||
version = "0.1.11"
|
||||
version = "0.1.12"
|
||||
|
|
|
|||
|
|
@ -270,6 +270,7 @@ class BlenderSubmitDeadlineModel(BaseSettingsModel):
|
|||
optional: bool = SettingsField(title="Optional")
|
||||
active: bool = SettingsField(title="Active")
|
||||
use_published: bool = SettingsField(title="Use Published scene")
|
||||
asset_dependencies: bool = SettingsField(title="Use Asset dependencies")
|
||||
priority: int = SettingsField(title="Priority")
|
||||
chunk_size: int = SettingsField(title="Frame per Task")
|
||||
group: str = SettingsField("", title="Group Name")
|
||||
|
|
@ -413,6 +414,7 @@ DEFAULT_DEADLINE_PLUGINS_SETTINGS = {
|
|||
"optional": False,
|
||||
"active": True,
|
||||
"use_published": True,
|
||||
"asset_dependencies": True,
|
||||
"priority": 50,
|
||||
"chunk_size": 10,
|
||||
"group": "none",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue