Harmony - fix - use same frames validation for local and farm

collect_scene is triggered for both
This commit is contained in:
Petr Kalis 2021-02-02 14:37:04 +01:00
parent bab3730396
commit 7d5fc29bc6
3 changed files with 20 additions and 18 deletions

View file

@ -132,20 +132,6 @@ class CollectFarmRender(pype.lib.abstract_collect_render.
subset_name = node.split("/")[1].replace(
'Farm',
context.data["anatomyData"]["task"].capitalize())
# harmony always starts from 1. frame
# 1001 - 10010 >> 1 - 10
offset = context.data["frameStart"] - 1
frame_start = context.data["frameStart"] - offset
frame_end = context.data["frameEnd"] - \
context.data["frameStart"] + 1
# increase by handleStart - real frame range
# frameStart != frameStartHandle with handle presence
context.data["frameStart"] = int(frame_start) + \
context.data["handleStart"]
context.data["frameEnd"] = int(frame_end) + \
context.data["handleStart"]
render_instance = HarmonyRenderInstance(
version=version,
time=api.time(),

View file

@ -32,6 +32,21 @@ class CollectScene(pyblish.api.ContextPlugin):
context.data["resolutionHeight"] = result[8]
context.data["FOV"] = result[9]
# harmony always starts from 1. frame
# 1001 - 10010 >> 1 - 10
# frameStart, frameEnd already collected by global plugin
offset = context.data["frameStart"] - 1
frame_start = context.data["frameStart"] - offset
frames_count = context.data["frameEnd"] - \
context.data["frameStart"] + 1
# increase by handleStart - real frame range
# frameStart != frameStartHandle with handle presence
context.data["frameStart"] = int(frame_start) + \
context.data["handleStart"]
context.data["frameEnd"] = int(frames_count) + \
context.data["frameStart"] - 1
all_nodes = harmony.send(
{"function": "node.subNodes", "args": ["Top"]}
)["result"]

View file

@ -20,8 +20,9 @@ class ValidateSceneSettingsRepair(pyblish.api.Action):
"""Repair action entry point."""
expected = pype.hosts.harmony.get_asset_settings()
asset_settings = _update_frames(dict.copy(expected))
asset_settings["frameStart"] = 1
asset_settings["frameEnd"] = asset_settings["frameEnd"] + \
asset_settings["handleEnd"]
asset_settings["handleEnd"]
pype.hosts.harmony.set_scene_settings(asset_settings)
if not os.path.exists(context.data["scenePath"]):
self.log.info("correcting scene name")
@ -122,10 +123,10 @@ def _update_frames(expected_settings):
Returns:
modified expected_setting (dict)
"""
frame_end = expected_settings["frameEnd"] - \
expected_settings["frameStart"]
frames_count = expected_settings["frameEnd"] - \
expected_settings["frameStart"] + 1
expected_settings["frameStart"] = 1.0 + expected_settings["handleStart"]
expected_settings["frameEnd"] = \
frame_end + 1 + expected_settings["handleStart"]
expected_settings["frameStart"] + frames_count - 1
return expected_settings