clean up code for review families

This commit is contained in:
Kayla Man 2023-10-20 16:29:42 +08:00
parent 5874b85146
commit 151881e1b3
5 changed files with 37 additions and 69 deletions

View file

@ -35,8 +35,8 @@ class CollectReview(pyblish.api.InstancePlugin,
"frameStart": instance.context.data["frameStart"],
"frameEnd": instance.context.data["frameEnd"],
"fps": instance.context.data["fps"],
"resolution": (creator_attrs["review_width"],
creator_attrs["review_height"])
"review_width": creator_attrs["review_width"],
"review_height": creator_attrs["review_height"],
}
if int(get_max_version()) >= 2024:
@ -67,9 +67,6 @@ class CollectReview(pyblish.api.InstancePlugin,
"dspFrameNums": attr_values.get("dspFrameNums")
}
else:
preview_data = {}
preview_data.update({
"percentSize": creator_attrs["percentSize"]})
general_viewport = {
"dspBkg": attr_values.get("dspBkg"),
"dspGrid": attr_values.get("dspGrid")
@ -79,10 +76,11 @@ class CollectReview(pyblish.api.InstancePlugin,
"ViewportPreset": creator_attrs["viewportPreset"],
"UseTextureEnabled": creator_attrs["vpTexture"]
}
preview_data["general_viewport"] = general_viewport
preview_data["nitrous_viewport"] = nitrous_viewport
preview_data["vp_btn_mgr"] = {
"EnableButtons": False
preview_data = {
"percentSize": creator_attrs["percentSize"],
"general_viewport": general_viewport,
"nitrous_viewport": nitrous_viewport,
"vp_btn_mgr": {"EnableButtons": False}
}
# Enable ftrack functionality

View file

@ -19,27 +19,22 @@ class ExtractReviewAnimation(publish.Extractor):
def process(self, instance):
staging_dir = self.staging_dir(instance)
ext = instance.data.get("imageFormat")
filename = "{0}..{1}".format(instance.name, ext)
start = int(instance.data["frameStart"])
end = int(instance.data["frameEnd"])
filepath = os.path.join(staging_dir, filename)
filepath = filepath.replace("\\", "/")
filepath = os.path.join(staging_dir, instance.name)
self.log.debug(
"Writing Review Animation to"
" '%s' to '%s'" % (filename, staging_dir))
"Writing Review Animation to '{}'".format(filepath))
review_camera = instance.data["review_camera"]
viewport_options = instance.data.get("viewport_options", {})
resolution = instance.data.get("resolution", ())
files = render_preview_animation(
os.path.join(staging_dir, instance.name),
filepath,
ext,
review_camera,
start,
end,
width=resolution[0],
height=resolution[1],
width=instance.data["review_width"],
height=instance.data["review_height"],
viewport_options=viewport_options)
filenames = [os.path.basename(path) for path in files]

View file

@ -1,20 +1,12 @@
import os
import tempfile
import pyblish.api
from pymxs import runtime as rt
from openpype.pipeline import publish
from openpype.hosts.max.api.lib import (
viewport_setup_updated,
viewport_setup,
get_max_version,
set_preview_arg
)
from openpype.hosts.max.api.preview_animation import render_preview_animation
class ExtractThumbnail(publish.Extractor):
"""
Extract Thumbnail for Review
"""Extract Thumbnail for Review
"""
order = pyblish.api.ExtractorOrder
@ -29,36 +21,26 @@ class ExtractThumbnail(publish.Extractor):
self.log.debug(
f"Create temp directory {tmp_staging} for thumbnail"
)
fps = float(instance.data["fps"])
ext = instance.data.get("imageFormat")
frame = int(instance.data["frameStart"])
instance.context.data["cleanupFullPaths"].append(tmp_staging)
filename = "{name}_thumbnail..png".format(**instance.data)
filepath = os.path.join(tmp_staging, filename)
filepath = filepath.replace("\\", "/")
thumbnail = self.get_filename(instance.name, frame)
filepath = os.path.join(tmp_staging, instance.name)
self.log.debug("Writing Thumbnail to '{}'".format(filepath))
self.log.debug(
"Writing Thumbnail to"
" '%s' to '%s'" % (filename, tmp_staging))
review_camera = instance.data["review_camera"]
if int(get_max_version()) >= 2024:
with viewport_setup_updated(review_camera):
preview_arg = set_preview_arg(
instance, filepath, frame, frame, fps)
rt.execute(preview_arg)
else:
visual_style_preset = instance.data.get("visualStyleMode")
nitrousGraphicMgr = rt.NitrousGraphicsManager
viewport_setting = nitrousGraphicMgr.GetActiveViewportSetting()
with viewport_setup(
viewport_setting,
visual_style_preset,
review_camera):
viewport_setting.VisualStyleMode = rt.Name(
visual_style_preset)
preview_arg = set_preview_arg(
instance, filepath, frame, frame, fps)
rt.execute(preview_arg)
viewport_options = instance.data.get("viewport_options", {})
files = render_preview_animation(
filepath,
ext,
review_camera,
frame,
frame,
width=instance.data["review_width"],
height=instance.data["review_height"],
viewport_options=viewport_options)
thumbnail = next(os.path.basename(path) for path in files)
representation = {
"name": "thumbnail",
@ -73,9 +55,3 @@ class ExtractThumbnail(publish.Extractor):
if "representations" not in instance.data:
instance.data["representations"] = []
instance.data["representations"].append(representation)
def get_filename(self, filename, target_frame):
thumbnail_name = "{}_thumbnail.{:04}.png".format(
filename, target_frame
)
return thumbnail_name

View file

@ -12,7 +12,7 @@ class ValidateResolutionSetting(pyblish.api.InstancePlugin,
"""Validate the resolution setting aligned with DB"""
order = pyblish.api.ValidatorOrder - 0.01
families = ["maxrender", "review"]
families = ["maxrender"]
hosts = ["max"]
label = "Validate Resolution Setting"
optional = True
@ -21,7 +21,7 @@ class ValidateResolutionSetting(pyblish.api.InstancePlugin,
if not self.is_active(instance.data):
return
width, height = self.get_db_resolution(instance)
current_width = rt.renderwidth
current_width = rt.renderWidth
current_height = rt.renderHeight
if current_width != width and current_height != height:
raise PublishValidationError("Resolution Setting "