I’ve been using the Deadline Unreal plugin for the last few weeks, it’s been great for triggering jobs directly from the Editor.
One problem I’ve had is when adding a Settings Config preset to the Sequence, the Deadline Plugin’s Output Directory and Filename Format overrides don’t take effect. The render files are still output to {project_dir}/Saved/MovieRenders/.
I have also attempted to set overrides via a Pre Render script, but no effect.
Taking a look at how the submitter does it, in DeadlineRepository10\plugins\UnrealEngine5\UnrealEnginePlugins\MoviePipelineDeadline\Content\Python\remote_executor.py it looks like the overrides are stored as JobExtraInfo<some number from 0-9> instead of the key/value pair.
If you set that, and double click the job in the Monitor what do you see in the ‘submission params’ section? It could be that the job isn’t getting created properly, or the plugin isn’t respecting the settings on the job.
Thanks for your response. I did not fix the issue but I had some interesting results. Apologies for what’s about to be a long post, but I’m going to describe the results below, I’ve also attached the Submission Params logs for each scenario.
I’m currently encountering an error when uploading files (png, zip or otherwise). Error message is “Sorry, there was an error uploading that file. Please try again.”
I’ve upload the logs to google drive if that works for you. Let me know if any issues, thanks for taking a look.
Wondering if you have any updates on this output folder override issue.
I have also tried manually setting it in remote_executor.py and on the job object itself in deadline_service.py, but once the rendering begins the Output Directory value in the MoviePipelineSetting takes precedence.
This is the workaround that I have arrived at for the time being, I have directly edited the plugin file.
In Plugins/MoviePipelineDeadline/Content/Python/remote_executor.py in the for loop that iterates over the jobs in the queue I have added
for original_job in self.pipeline_queue.get_jobs():
settings = original_job.get_configuration()
job = self.pipeline_queue.duplicate_job(original_job)
job.on_duplicated()
job.set_configuration(settings)
# existing loop code ...
self.pipeline_queue.delete_job(job)
This duplicates the current job’s settings and the job. The reason it needs to be duplicated is because when editing the settings on the original it will change the actual config file in the Editor. By duplicating I leave the original job and its settings intact. When the duplicated job is submitted the overrides in my Pre Render script are successful. I am not sure why overriding the original config doesn’t work, overriding the duplicate does work.
At the end I delete the duplicate job to remove it from the Editor UI.
And the application plugin sees the change as well:
2024-02-13 17:48:01: 0: WARNING: Warning: Overriding output directory! New output directory is `C:/Render/{level_name}/{date}_{time}`.
I’m not sure why you’ve got to duplicate the job though. The override prints do happen in _on_individual_shot_finished_callback, but that gets fired after a shot has been rendered, and would run with your original job as well.
I’ve made a bug report, but I can’t say anything about where it is in the roadmap.