1) Can you clarify on what you mean by Runtime Mode? There’s “launching from the command line with -game”, “render (remote)”, and “I have a shipping build that I’m going to directly create instances of UMoviePipeline and initialize it for rendering.” - in general things that accept a Queue should automatically pick the correct pipeline type based on the job type in the queue itself, since we support mixed queues (ie: you can have both MRQ and MRG jobs within a single queue)
2) Shipping in 5.6 are new utility functions for looking up nodes by class name or scripting tags, ie:
`import unreal
@unreal.uclass()
class ScriptFindNodesTest(unreal.MovieGraphScriptBase):
@unreal.ufunction(override=True)
def on_job_start(self, in_job_copy):
super().on_job_start(in_job_copy)
Get the duplicated graph
graph_config = in_job_copy.get_graph_preset()
unreal.log(“===== FIND NODES TEST (Get Settings For Branch) =====”)
unreal.log(“Finding a node on the Globals branch by Class Type”)
warm_up_node = graph_config.get_setting_for_branch(unreal.MovieGraphWarmUpSettingNode, “Globals”)
unreal.log_warning("Found: " + str(warm_up_node))
unreal.log(“Finding a node on the middle branch by Class Type”)
deferred_renderer_node = graph_config.get_setting_for_branch(unreal.MovieGraphDeferredRenderPassNode, “DefaultLayer”)
unreal.log_warning(“Found: " + str(deferred_renderer_node) + " SS Count: " + str(deferred_renderer_node.spatial_sample_count) + " (should be 5)”)
unreal.log(“Finding a node on the last branch by Class Type”)
deferred_renderer_node2 = graph_config.get_setting_for_branch(unreal.MovieGraphDeferredRenderPassNode, “LastLayer”)
unreal.log_warning(“Found: " + str(deferred_renderer_node2) + " SS Count: " + str(deferred_renderer_node2.spatial_sample_count) + " (should be 3)”)
unreal.log(“Finding multiple settings on Globals by Class Type”)
node_results = graph_config.get_settings_for_branch(unreal.MovieGraphImageSequenceOutputNode_JPG, “Globals”)
unreal.log_warning(“Found: " + str(len(node_results)) + " (should be 2)”)
unreal.log(“Finding multiple settings on middle by Class Type”)
node_results2 = graph_config.get_settings_for_branch(unreal.MovieGraphImageSequenceOutputNode_JPG, “DefaultLayer”)
unreal.log_warning(“Found: " + str(len(node_results2)) + " (should be 1)”)
unreal.log(“Finding multiple settings on last branch by Class Type”)
node_results3 = graph_config.get_settings_for_branch(unreal.MovieGraphImageSequenceOutputNode_JPG, “Globals”)
unreal.log_warning(“Found: " + str(len(node_results3)) + " (should be 2)”)
unreal.log(“===== FIND NODES TEST (Get Settings By Tag) =====”)
unreal.log(“Finding a node on the Globals branch by Tag (No Filter)”)
jpg_node_by_tag = graph_config.get_setting_for_tag(“jpgTag”, None)
unreal.log_warning(“Found: " + str(jpg_node_by_tag) + " (should be anything but None)”)
unreal.log(“Finding a node on the Globals branch by Tag (With Filter)”)
jpg_node_by_tag2 = graph_config.get_setting_for_tag(“jpgTag”, unreal.MovieGraphImageSequenceOutputNode_JPG)
unreal.log_warning(“Found: " + str(jpg_node_by_tag2) + " (should be anything but None)”)
unreal.log(“Finding a node on the Globals branch by Tag (With mismatched Filter)”)
none_tag = graph_config.get_setting_for_tag(“jpgTag”, unreal.MovieGraphWarmUpSettingNode)
unreal.log_warning(“Found: " + str(none_tag) + " (should be None)”)
unreal.log(“Finding all nodes with Tag (No Class Filter, No Branch Filter)”)
all_jpg_tagged_nodes = graph_config.get_settings_for_tag(“jpgTag”, None)
unreal.log_warning(“Found: " + str(len(all_jpg_tagged_nodes)) + " (Should be 4)”)
unreal.log(“Finding all nodes with Tag (With Class Filter, No Branch Filter)”)
all_jpg_tagged_nodes2 = graph_config.get_settings_for_tag(“jpgTag”, unreal.MovieGraphImageSequenceOutputNode_JPG)
unreal.log_warning(“Found: " + str(len(all_jpg_tagged_nodes2)) + " (Should be 3)”)
unreal.log(“Finding all nodes with Tag (No Class Filter, Branch Filter)”)
all_jpg_tagged_nodes3 = graph_config.get_settings_for_tag(“jpgTag”, None, “LastLayer”)
unreal.log_warning(“Found: " + str(len(all_jpg_tagged_nodes3)) + " (Should be 2)”)
unreal.log(“Finding all nodes with Tag (With Class Filter), Branch Filter”)
all_jpg_tagged_nodes4 = graph_config.get_settings_for_tag(“jpgTag”, unreal.MovieGraphImageSequenceOutputNode_JPG, “LastLayer”)
unreal.log_warning(“Found: " + str(len(all_jpg_tagged_nodes4)) + " (Should be 1)”)
unreal.log(“===== TESTS COMPLETE =====”)`
You do still need to be somewhat aware of the graph nature (ie: you have to choose which layer to look on) when looking up settings, but you can also get the array of branches from the config to easily loop through all of them.