Merge branch 'hotfix/extract_render_harmony' into develop

This commit is contained in:
Milan Kolar 2020-08-04 21:38:52 +02:00
commit a47cbf7b86
3 changed files with 36 additions and 13 deletions

View file

@ -151,27 +151,31 @@ def application_launch():
def export_template(backdrops, nodes, filepath): def export_template(backdrops, nodes, filepath):
func = """function func(args) func = """function func(args)
{ {
// Add an extra node just so a new group can be created.
var temp_node = node.add("Top", "temp_note", "NOTE", 0, 0, 0); var temp_node = node.add("Top", "temp_note", "NOTE", 0, 0, 0);
var template_group = node.createGroup(temp_node, "temp_group"); var template_group = node.createGroup(temp_node, "temp_group");
node.deleteNode( template_group + "/temp_note" ); node.deleteNode( template_group + "/temp_note" );
// This will make Node View to focus on the new group. selection.clearSelection();
for (var f = 0; f < args[1].length; f++)
{
selection.addNodeToSelection(args[1][f]);
}
Action.perform("copy()", "Node View");
selection.clearSelection(); selection.clearSelection();
selection.addNodeToSelection(template_group); selection.addNodeToSelection(template_group);
Action.perform("onActionEnterGroup()", "Node View"); Action.perform("onActionEnterGroup()", "Node View");
Action.perform("paste()", "Node View");
// Recreate backdrops in group. // Recreate backdrops in group.
for (var i = 0 ; i < args[0].length; i++) for (var i = 0 ; i < args[0].length; i++)
{ {
MessageLog.trace(args[0][i]);
Backdrop.addBackdrop(template_group, args[0][i]); Backdrop.addBackdrop(template_group, args[0][i]);
}; };
// Copy-paste the selected nodes into the new group.
var drag_object = copyPaste.copy(args[1], 1, frame.numberOf, "");
copyPaste.pasteNewNodes(drag_object, template_group, "");
// Select all nodes within group and export as template.
Action.perform( "selectAll()", "Node View" ); Action.perform( "selectAll()", "Node View" );
copyPaste.createTemplateFromSelection(args[2], args[3]); copyPaste.createTemplateFromSelection(args[2], args[3]);

View file

@ -72,19 +72,27 @@ class ExtractRender(pyblish.api.InstancePlugin):
self.log.info(output.decode("utf-8")) self.log.info(output.decode("utf-8"))
# Collect rendered files. # Collect rendered files.
self.log.debug(path)
files = os.listdir(path) files = os.listdir(path)
self.log.debug(files)
collections, remainder = clique.assemble(files, minimum_items=1) collections, remainder = clique.assemble(files, minimum_items=1)
assert not remainder, ( assert not remainder, (
"There should not be a remainder for {0}: {1}".format( "There should not be a remainder for {0}: {1}".format(
instance[0], remainder instance[0], remainder
) )
) )
assert len(collections) == 1, ( self.log.debug(collections)
"There should only be one image sequence in {}. Found: {}".format( if len(collections) > 1:
path, len(collections) for col in collections:
) if len(list(col)) > 1:
) collection = col
collection = collections[0] else:
# assert len(collections) == 1, (
# "There should only be one image sequence in {}. Found: {}".format(
# path, len(collections)
# )
# )
collection = collections[0]
# Generate thumbnail. # Generate thumbnail.
thumbnail_path = os.path.join(path, "thumbnail.png") thumbnail_path = os.path.join(path, "thumbnail.png")

View file

@ -28,8 +28,11 @@ class ValidateSceneSettings(pyblish.api.InstancePlugin):
hosts = ["harmony"] hosts = ["harmony"]
actions = [ValidateSceneSettingsRepair] actions = [ValidateSceneSettingsRepair]
frame_check_filter = ["_ch_", "_pr_", "_intd_", "_extd_"]
def process(self, instance): def process(self, instance):
expected_settings = pype.hosts.harmony.get_asset_settings() expected_settings = pype.hosts.harmony.get_asset_settings()
self.log.info(expected_settings)
# Harmony is expected to start at 1. # Harmony is expected to start at 1.
frame_start = expected_settings["frameStart"] frame_start = expected_settings["frameStart"]
@ -37,6 +40,14 @@ class ValidateSceneSettings(pyblish.api.InstancePlugin):
expected_settings["frameEnd"] = frame_end - frame_start + 1 expected_settings["frameEnd"] = frame_end - frame_start + 1
expected_settings["frameStart"] = 1 expected_settings["frameStart"] = 1
self.log.info(instance.context.data['anatomyData']['asset'])
if any(string in instance.context.data['anatomyData']['asset']
for string in frame_check_filter):
expected_settings.pop("frameEnd")
func = """function func() func = """function func()
{ {
return { return {