Course: Using Movie Render Graph

Learn about the new Movie Render Graph feature in Unreal Engine.

https://dev.epicgames.com/community/learning/courses/5JE/unreal-engine-using-movie-render-graph

1 Like

Thanks for the tutor, all is clear. but it is not working (
simple layout , but ignores collection settings. renders full scene

You need to add a Modifier to do something with the collections you have defined. I made a video to try help connect things all together.

Amazing course, such an in-depth explanation

  1. Is there a way to set default values for my custom user variables so we don’t need to type from an empty value?
  2. Is it possible to enable Reference Motion Blur through MRG? Couldn’t find a way to do it
1 Like
  1. Yeah just set the value on the variable node in MRG.
  2. Not atm but I’ll put in a request for that to see if we can get it into 5.5

I´m just dumping this here, having a devs ear…:slight_smile:

I´m currently trying to transition to movie render graph, as we´re mostly producing linear content and its got great potential.

Here are a couple of things I encountered:

  1. Randomly have one asset bug out on me and keep showing up in passes it wasn´t supposed to be showing up in.
    Only way to get rid of it was to remove and then add it back to the collection, or any change on the asset itsself and resaving also seemed to update it in the MRG.
    If it helps to narrow down the issue: Its part of a datasmith scene and it also reverts to its imported material when its bugged out in a pass.
  2. About the default variables: Its a bit confusing to have it in the parameters panel of the MRQ show up as 0, instead of the default value entered in the MRG.
  3. Another small UI issue: In a collection you can´t scroll properly through the actors list with a mousewheel and the scrollbar that is there gets occluded by the window sometimes.

Thats all for now, there were a few parameters that couldn´t be exposed to variables yet, but I don´t remember which one I was mussing.
And I had a few issues wrapping my head around the logic of the direction sometimes, when working with multiple modifiers and multiple collections, so maybe some more in depth examples in the course could clear that up.

Another question:

I have a massive blueprint actor which I actually mostly built to manage renderlayers of the skeletal meshes inside. I still struggle with it, because of the nature of the blueprint and not being able to override render states inside the sequencer for individual meshes, when they are part of a layer.
I´m already using actor tags inside it, so I´m wondering if you can use movie render graph to override render settings like “hidden in game” through the component tags for a blueprint?

Hey, thanks for the input!

  1. I have not seen what you are describing about your asset bugging out. If you have a small repro we’d be happy to check it out.
  2. All the variable stuff will get some love in the next few releases
  3. I will pass this note along.
  4. Custom variables or Hidden in Game are not exposed yet in MRG. Only the ones listed can be used. That said you can run custom python. And in 5.5 you can run console commands which will open up BP custom events.

Thanks for the reply. I don´t have time to figure out how to share a repro of the bug atm, but I fixed it for now as it seems. As the object in question was an instanced static mesh, I deleted it and replaced by applying its transforms to a duplicate of another instance in the level and now it doesn´t show up in renderpasses where its supposed to be hidden.

  1. Ok, so tagged components inside a blueprint actor can´t be filtered, as it seems. I can only hide the whole blueprint actor, if I add any component tags used on components inside the blueprint actor, they dont´seem to be filtered at all.

And yeah, I do think there is something buggy going on. I´ve worked on some more render graphs now and the objects that get stuck in a “visible” state aren´t even following any concernable logic for me and differ from graph to graph.
And either they are completeley visible, or visible in reflections/shadows, where they shouldn´t be and I´ve shuffled around the position of the modifiers in the chains.
I´ve tried adding inputs and more deferred render nodes, instead of using ONE deferred rendere node.
I´m putting all the collections before the modifier/render layer chains and I´ve tried multiple ways of selecting/deselecting objects in the collections (sublevel, actor name etc).

I´ve managed to get some problems “fixed”, like hiding the objects by clicking on the eye icon in the outliner, that are supposed to be hidden, before submitting the graph, but then they still show up in one of the passes with only the reflections in the windows etc.

I think I also did some tests with “screen traces” off or on for Lumen, thats one test I might have to repeat to check if it made any difference.

Here is a screenshot of the three passes Im trying to render:

The green object should only be visible in the beauty pass without the windows, but it shows up in bothe the other passes and it isn´t in any other collection than the one for the beauty pass, where it also renders correctly.

The little dots should ONLY appear in the last pass, but they also show up in the windows reflections, even though they are “hidden in game” and “affect indirect lighting” is unchecked.
Also it looks like the black override material thats supposed to only be in effect in the last pass for the floor, also gets applied in the reflections of the window pass.

Here is a screenshot of the graph, can´t see any details, so not sure if that helps, maybe it helps with checking if there is something completely wrong with the order of the nodes:

Last but not least, another annoying problem:
If you rename a collection in the graph, the modifiers referencing it do not update and can´t find the collection anymore.

I’m struggling with some issues:

  1. The spatial sample count in the deferred renderer node is not applied, while the temporal sample count is.
  2. Some view mode indices are not applied, particularly the detail lighting mode.

I’ve tested this on both my personal project and a Meerkat project. Any solutions?



We don’t put spatial sample counts in the HUD anymore. You couldn’t see the individual ones update anyways and it caused confusion. We only display Temporal Samples.

For the viewmode index you stumbled upon a bug. Thanks for reporting it! We’ll get it fixed up.

Where have the objects IDs gone in the MRG? I need to render cryptos but can’t seem to find where they are?

Coming in 5.5

2 Likes

Hi,

noticed two things with the “Command Line Encoder” node:

  1. it does not take the env variable PATH into account.
    On UE project startup (with init_unreal.py) I’m adding the path to our ffmpeg.exe to the PATH variable. In UE Project Settings → Movie Pipeline CLI Encoder → Executable Path is set to just “ffmpeg”.
    With the traditional MRQ this works fine.
    Looks like the Movie Render Graph now expects an absolute path. This error pops up “Invalid encoder executable path [C:/UEengines/UE_5.4/Engine/Binaries/Win64/ffmpeg]”
    Only when I set the absolute path to ffmpeg.exe in the Project Settings it works.
  2. The node only works on the first RenderLayer. I can’t get it to encode/convert all render layers I have setup. Tried using the [layer_name] token and others… Do I miss something here?

Cheers

1 Like

Hi,

suggestion:

with the MRG there is the option to expose and set user variables to the Movie Render Queue…
it would be awesome if the “Primary Graph Variables” section in the Movie Render Queue behaves like the Details Panel. Multi-selection of render jobs lets you set all variables which eg. have the same name (on selected jobs) .

1 Like

1 - The first one is a bug. We’ll get it fixed. Thanks for reporting!
2- The second one is by design normally people just want a movie file of the “beauty” not each individual layer. If you want all the layers in separate movie file per layer you can use the Avid/Prores plugins.

ok cool.
That makes sense.

I have two other questions:

  1. with the CLI Encoder… is there a way to specify the path where the “Input Text File” is written to? at the moment it looks like it uses the OutputDirectory path from the render settings. Just curious.
  2. How can I via python check if a node in a graph config is Disabled or Enabled? I can’t find anything in unreal.MovieGraphNode … there are nodes where I can check the state of an override… but not if the node itself is enabled or disabled.

Cheers

Nice course.
If anyone is interested, I have posted a question about “How to set the Output Directory path” in MRG job using python:

It may be a bug… or something I don’t understand…

Hey!
In the newest versions of engine (5.5, early 5.6) Show flags for Light Types don’t work. Is it known issue? In 5.4 they behave like expected