diff --git a/.gitmodules b/.gitmodules index 2c4816801c..67b820a247 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/pypeclub/avalon-core.git [submodule "repos/avalon-unreal-integration"] path = repos/avalon-unreal-integration - url = https://github.com/pypeclub/avalon-unreal-integration.git + url = https://github.com/pypeclub/avalon-unreal-integration.git \ No newline at end of file diff --git a/openpype/modules/base.py b/openpype/modules/base.py index 6c86557337..213a7681f5 100644 --- a/openpype/modules/base.py +++ b/openpype/modules/base.py @@ -35,7 +35,7 @@ DEFAULT_OPENPYPE_MODULES = ( "log_viewer", "deadline", "muster", - "royal_render", + "royalrender", "python_console_interpreter", "ftrack", "slack", diff --git a/openpype/modules/royal_render/__init__.py b/openpype/modules/royalrender/__init__.py similarity index 100% rename from openpype/modules/royal_render/__init__.py rename to openpype/modules/royalrender/__init__.py diff --git a/openpype/modules/royal_render/api.py b/openpype/modules/royalrender/api.py similarity index 100% rename from openpype/modules/royal_render/api.py rename to openpype/modules/royalrender/api.py diff --git a/openpype/modules/royal_render/plugins/publish/collect_default_rr_path.py b/openpype/modules/royalrender/plugins/publish/collect_default_rr_path.py similarity index 100% rename from openpype/modules/royal_render/plugins/publish/collect_default_rr_path.py rename to openpype/modules/royalrender/plugins/publish/collect_default_rr_path.py diff --git a/openpype/modules/royal_render/plugins/publish/collect_rr_path_from_instance.py b/openpype/modules/royalrender/plugins/publish/collect_rr_path_from_instance.py similarity index 100% rename from openpype/modules/royal_render/plugins/publish/collect_rr_path_from_instance.py rename to openpype/modules/royalrender/plugins/publish/collect_rr_path_from_instance.py diff --git a/openpype/modules/royal_render/plugins/publish/collect_sequences_from_job.py b/openpype/modules/royalrender/plugins/publish/collect_sequences_from_job.py similarity index 95% rename from openpype/modules/royal_render/plugins/publish/collect_sequences_from_job.py rename to openpype/modules/royalrender/plugins/publish/collect_sequences_from_job.py index b389b022cf..4d216c1c0a 100644 --- a/openpype/modules/royal_render/plugins/publish/collect_sequences_from_job.py +++ b/openpype/modules/royalrender/plugins/publish/collect_sequences_from_job.py @@ -77,8 +77,19 @@ class CollectSequencesFromJob(pyblish.api.ContextPlugin): order = pyblish.api.CollectorOrder targets = ["rr_control"] label = "Collect Rendered Frames" + review = True def process(self, context): + + self.review = ( + context.data + ["project_settings"] + ["royalrender"] + ["publish"] + ["CollectSequencesFromJob"] + ["review"] + ) + if os.environ.get("OPENPYPE_PUBLISH_DATA"): self.log.debug(os.environ.get("OPENPYPE_PUBLISH_DATA")) paths = os.environ["OPENPYPE_PUBLISH_DATA"].split(os.pathsep) @@ -150,7 +161,8 @@ class CollectSequencesFromJob(pyblish.api.ContextPlugin): families.append("render") if "ftrack" not in families: families.append("ftrack") - if "review" not in families: + if "review" not in families and self.review: + self.log.info("attaching review") families.append("review") for collection in collections: diff --git a/openpype/modules/royal_render/royal_render_module.py b/openpype/modules/royalrender/royal_render_module.py similarity index 100% rename from openpype/modules/royal_render/royal_render_module.py rename to openpype/modules/royalrender/royal_render_module.py diff --git a/openpype/modules/royal_render/rr_job.py b/openpype/modules/royalrender/rr_job.py similarity index 100% rename from openpype/modules/royal_render/rr_job.py rename to openpype/modules/royalrender/rr_job.py diff --git a/openpype/modules/royal_render/rr_root/README.md b/openpype/modules/royalrender/rr_root/README.md similarity index 100% rename from openpype/modules/royal_render/rr_root/README.md rename to openpype/modules/royalrender/rr_root/README.md diff --git a/openpype/modules/royal_render/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py b/openpype/modules/royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py similarity index 91% rename from openpype/modules/royal_render/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py rename to openpype/modules/royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py index 7fedb51410..82a79daf3b 100644 --- a/openpype/modules/royal_render/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py +++ b/openpype/modules/royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py @@ -20,7 +20,7 @@ class OpenPypeContextSelector: def __init__(self): self.job = rr.getJob() - self.context = None + self.context = {} self.openpype_executable = "openpype_gui" if platform.system().lower() == "windows": @@ -136,7 +136,7 @@ class OpenPypeContextSelector: def run_publish(self): """Run publish process.""" - env = {'AVALON_PROJECT': str(self.context.get("project")), + env = {"AVALON_PROJECT": str(self.context.get("project")), "AVALON_ASSET": str(self.context.get("asset")), "AVALON_TASK": str(self.context.get("task")), "AVALON_APP_NAME": str(self.context.get("app_name"))} @@ -179,4 +179,18 @@ class OpenPypeContextSelector: print("running selector") selector = OpenPypeContextSelector() + +# try to set context from environment +selector.context["project"] = os.getenv("AVALON_PROJECT") +selector.context["asset"] = os.getenv("AVALON_ASSET") +selector.context["task"] = os.getenv("AVALON_TASK") +selector.context["app_name"] = os.getenv("AVALON_APP_NAME") + +# if anything inside is None, scratch the whole thing and +# ask user for context. +for _, v in selector.context.items(): + if not v: + selector.context = {} + break + selector.process_job() diff --git a/openpype/settings/defaults/project_settings/royalrender.json b/openpype/settings/defaults/project_settings/royalrender.json new file mode 100644 index 0000000000..be267b11d8 --- /dev/null +++ b/openpype/settings/defaults/project_settings/royalrender.json @@ -0,0 +1,7 @@ +{ + "publish": { + "CollectSequencesFromJob": { + "review": true + } + } +} \ No newline at end of file diff --git a/openpype/settings/entities/schemas/projects_schema/schema_main.json b/openpype/settings/entities/schemas/projects_schema/schema_main.json index 8a2ad451ee..8e4eba86ef 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_main.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_main.json @@ -66,6 +66,10 @@ "type": "schema", "name": "schema_project_deadline" }, + { + "type": "schema", + "name": "schema_project_royalrender" + }, { "type": "schema", "name": "schema_project_slack" diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_royalrender.json b/openpype/settings/entities/schemas/projects_schema/schema_project_royalrender.json new file mode 100644 index 0000000000..cabb4747d5 --- /dev/null +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_royalrender.json @@ -0,0 +1,34 @@ +{ + "type": "dict", + "key": "royalrender", + "label": "Royal Render", + "collapsible": true, + "is_file": true, + "children": [ + { + "type": "dict", + "collapsible": true, + "key": "publish", + "label": "Publish plugins", + "children": [ + { + "type": "label", + "label": "Collectors" + }, + { + "type": "dict", + "collapsible": true, + "key": "CollectSequencesFromJob", + "label": "Collect Sequences from the Job", + "children": [ + { + "type": "boolean", + "key": "review", + "label": "Generate reviews from sequences" + } + ] + } + ] + } + ] +} \ No newline at end of file