mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 13:52:15 +01:00
clean up the codes in thummbnail and preview animation extractor
This commit is contained in:
parent
835a256cc2
commit
7035e1e014
3 changed files with 59 additions and 31 deletions
|
|
@ -322,7 +322,7 @@ def is_headless():
|
|||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def viewport_camera(camera):
|
||||
def viewport_setup_updated(camera):
|
||||
original = rt.viewport.getCamera()
|
||||
has_autoplay = rt.preferences.playPreviewWhenDone
|
||||
if not original:
|
||||
|
|
@ -339,6 +339,36 @@ def viewport_camera(camera):
|
|||
rt.preferences.playPreviewWhenDone = has_autoplay
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def viewport_setup(viewport_setting, visual_style, camera):
|
||||
"""Function to set visual style options
|
||||
|
||||
Args:
|
||||
visual_style (str): visual style for active viewport
|
||||
|
||||
Returns:
|
||||
list: the argument which can set visual style
|
||||
"""
|
||||
original = rt.viewport.getCamera()
|
||||
has_autoplay = rt.preferences.playPreviewWhenDone
|
||||
if not original:
|
||||
# if there is no original camera
|
||||
# use the current camera as original
|
||||
original = rt.getNodeByName(camera)
|
||||
review_camera = rt.getNodeByName(camera)
|
||||
current_setting = viewport_setting.VisualStyleMode
|
||||
try:
|
||||
rt.viewport.setCamera(review_camera)
|
||||
viewport_setting.VisualStyleMode = rt.Name(
|
||||
visual_style)
|
||||
rt.preferences.playPreviewWhenDone = False
|
||||
yield
|
||||
finally:
|
||||
rt.viewport.setCamera(original)
|
||||
viewport_setting.VisualStyleMode = current_setting
|
||||
rt.preferences.playPreviewWhenDone = has_autoplay
|
||||
|
||||
|
||||
def set_timeline(frameStart, frameEnd):
|
||||
"""Set frame range for timeline editor in Max
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ import pyblish.api
|
|||
from pymxs import runtime as rt
|
||||
from openpype.pipeline import publish
|
||||
from openpype.hosts.max.api.lib import (
|
||||
viewport_camera,
|
||||
viewport_setup_updated,
|
||||
viewport_setup,
|
||||
get_max_version,
|
||||
set_preview_arg
|
||||
)
|
||||
|
|
@ -38,7 +39,7 @@ class ExtractReviewAnimation(publish.Extractor):
|
|||
|
||||
review_camera = instance.data["review_camera"]
|
||||
if get_max_version() >= 2024:
|
||||
with viewport_camera(review_camera):
|
||||
with viewport_setup_updated(review_camera):
|
||||
preview_arg = set_preview_arg(
|
||||
instance, filepath, start, end, fps)
|
||||
rt.execute(preview_arg)
|
||||
|
|
@ -46,10 +47,10 @@ class ExtractReviewAnimation(publish.Extractor):
|
|||
visual_style_preset = instance.data.get("visualStyleMode")
|
||||
nitrousGraphicMgr = rt.NitrousGraphicsManager
|
||||
viewport_setting = nitrousGraphicMgr.GetActiveViewportSetting()
|
||||
with viewport_camera(review_camera) and (
|
||||
self._visual_style_option(
|
||||
viewport_setting, visual_style_preset)
|
||||
):
|
||||
with viewport_setup(
|
||||
viewport_setting,
|
||||
visual_style_preset,
|
||||
review_camera):
|
||||
viewport_setting.VisualStyleMode = rt.Name(
|
||||
visual_style_preset)
|
||||
preview_arg = set_preview_arg(
|
||||
|
|
@ -87,22 +88,3 @@ class ExtractReviewAnimation(publish.Extractor):
|
|||
file_list.append(actual_name)
|
||||
|
||||
return file_list
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _visual_style_option(self, viewport_setting, visual_style):
|
||||
"""Function to set visual style options
|
||||
|
||||
Args:
|
||||
visual_style (str): visual style for active viewport
|
||||
|
||||
Returns:
|
||||
list: the argument which can set visual style
|
||||
"""
|
||||
current_setting = viewport_setting.VisualStyleMode
|
||||
if visual_style != current_setting:
|
||||
try:
|
||||
viewport_setting.VisualStyleMode = rt.Name(
|
||||
visual_style)
|
||||
yield
|
||||
finally:
|
||||
viewport_setting.VisualStyleMode = current_setting
|
||||
|
|
|
|||
|
|
@ -4,12 +4,14 @@ import pyblish.api
|
|||
from pymxs import runtime as rt
|
||||
from openpype.pipeline import publish
|
||||
from openpype.hosts.max.api.lib import (
|
||||
viewport_camera,
|
||||
viewport_setup_updated,
|
||||
viewport_setup,
|
||||
get_max_version,
|
||||
set_preview_arg
|
||||
)
|
||||
|
||||
|
||||
|
||||
class ExtractThumbnail(publish.Extractor):
|
||||
"""
|
||||
Extract Thumbnail for Review
|
||||
|
|
@ -39,10 +41,24 @@ class ExtractThumbnail(publish.Extractor):
|
|||
"Writing Thumbnail to"
|
||||
" '%s' to '%s'" % (filename, tmp_staging))
|
||||
review_camera = instance.data["review_camera"]
|
||||
with viewport_camera(review_camera):
|
||||
preview_arg = set_preview_arg(
|
||||
instance, filepath, fps, frame)
|
||||
rt.execute(preview_arg)
|
||||
if 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)
|
||||
|
||||
representation = {
|
||||
"name": "thumbnail",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue