diff --git a/pype/hosts/harmony/plugins/publish/collect_farm_render.py b/pype/hosts/harmony/plugins/publish/collect_farm_render.py index 8aee9f3c9c..c3e706c626 100644 --- a/pype/hosts/harmony/plugins/publish/collect_farm_render.py +++ b/pype/hosts/harmony/plugins/publish/collect_farm_render.py @@ -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(), diff --git a/pype/hosts/harmony/plugins/publish/collect_scene.py b/pype/hosts/harmony/plugins/publish/collect_scene.py index 16d9ef0aae..9cfd49b0fe 100644 --- a/pype/hosts/harmony/plugins/publish/collect_scene.py +++ b/pype/hosts/harmony/plugins/publish/collect_scene.py @@ -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"] diff --git a/pype/hosts/harmony/plugins/publish/validate_scene_settings.py b/pype/hosts/harmony/plugins/publish/validate_scene_settings.py index 7936059de4..1bc7e5c934 100644 --- a/pype/hosts/harmony/plugins/publish/validate_scene_settings.py +++ b/pype/hosts/harmony/plugins/publish/validate_scene_settings.py @@ -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