Ask Unreal Anything: VFX | August 1, 2023 at 2PM EST

We’ve brought on Shaun & Wyeth for this Ask Unreal Anything to answer your burning questions involving VFX! From the tools themselves to advice, resources or best practices, they’re here to offer their experience and perspective to get your projects rolling!

Do you have a question for us? Ask away in the replies below!

The team will join us at 2023-08-01T18:00:00Z.

MEET THE TEAM

Shaun Kime is the Lead Engineer for the Niagara team and has been at Epic for over 6 years. Shaun has been working in game technology development for over 22 years, focusing on tools for content development.

Wyeth Johnson has 23 years of game and technical development experience across vfx, technical art, art direction and leadership, and engine tools. He’s currently the Director of Technical Art on special projects at Epic Games, and helps shepherd the development of Unreal Engine’s programmable next generation effects tool, Niagara.

GUIDELINES

  • Ask one question at a time by replying to this topic, using the button at the bottom. Please read through the questions to see if your question has already been asked, before posting your own.
  • Start with one question to give others a chance to participate.
  • Please do not reply to anyone else’s post—the purpose of replies in this topic is to receive answers from our guests. If you’d like to discuss a related topic in more detail, create a new topic.
  • Keep in mind, this is NOT a support session. Questions that are specific to your project or troubleshooting will be removed.
  • And don’t forget to have fun :slight_smile:

Posts not following these guidelines may be removed by moderators to keep the AMA flowing smoothly. Thank you!

3 Likes

Do you have any recommended tutorial series for someone looking to start learning Niagara? (I see Begin Play: Niagara in the learning section, but the other tutorials seem more specific and less foundational.)

Are there any comprehensive resources to learn how to advect particles in the 3D grid inside Niagara using the liquids sim.

Python is the backbone of most VFX workflows. What’s the roadmap for Epic Games to (a) add Python in-game support (b) add as much API support to Python as possible, (c) to expand documentation to cover more of the Python API, in areas such as USD. Thanks!

1 Like

no questions, just hugs all around!

4 Likes

Is there any chance we’ll get a more performant way to generate a depth-only render of the scene in the future? This is really needed for any effect that needs a custom shadow implementation, and currently the only way I know of to do it is to use a SceneCapture which is very slow.

Topic is simulation stages in Niagara. Apparently it is now (in 5.2) possible to write arbitrarily data from particles to grid collections or render targets (I think this is called splatter). Somehow I can’t make it persistent and I switched back to a gather approach, where each grid cell iterates over every particle. Would it be possible to set this up in the stream and maybe point out where somebody could make a mistake? Race conditions, missing check boxes etc.?

I hope it’s not too specific, all the love! <3

Yes! Just got confirmation from Stu/Josie. In 5.3 there is an efficient fast path for depth only captures, which doesn’t render the whole scene, just depth and done. There is also a new scene capture Data Interface in Niagara which can do all this right inside the tool if desired.

1 Like

Ahhh this is wonderful news, thank you so much for the reply! :pray:

I’d take a look at the Niagara Fluids content example hallway and plugin. The main explosion gas template uses a scatter approach which is more efficient in that case. I’d have to ask Devon (who wrote those simulations), but the 2d fluids might still gather. There was a change to how grids were cleared in the previous version, check out an option called ClearBeforeNonIterationStage for persistence there.

What you’re describing should definitely be doable though and the Niagara Fluids plugin should provide some breadscrumbs.

Good idea for the next Niagara Fluids livestream, or a new template in the plugin.

I remember years ago the niagara team saying that there are still plenty of low hanging fruit to optimize sim costs on the CPU. Are those mostly accounted for at this point, or can we expect any more ‘free’ performance gains any time soon?

Maybe some clever new tools to help with that? (stuff like the upcoming data channels)

I always recommend that people head to the learn tab of the launcher and download the content examples project. In there are a few maps, starting with Niagara_Particles, and moving to Niagara_Advanced (and then fluids).

If you move effect through effect in Niagara_Particles and open them, most are heavily commented and annotated to start building some intuition around how Niagara functions and how the data flows around.

I find starting there is helpful as you are working and learning in situ and fiddling things until they break :slight_smile:

2 Likes

also: https://www.youtube.com/c/tharlevfx
really great getting started tutorials on his YT

2 Likes

Just some random questions to keep the ball rolling!

Will there be any upcoming changes that will make Niagara more beginner friendly?
New modules, changes to the interface, Niagara script library, or anything really that makes for a better experience for newcomers.

(and additionally, more user/artist-friendliness for the more advanced stuff)

What about workflow improvements?

Can you give the others on the team a high 5?

also, favorite foods? :stuck_out_tongue:

Hey! This question pertains moreso to pipeline - we don’t have the answer for that one here, however it’s still a great one! I’d suggest moving this over to a different thread or create a new one and we’ll follow up there!

1 Like

Bringing in a few questions from other platforms!

What’s most important to put into a portfolio when looking for a role in VFX? Any recommendations on what to include, length of videos, breakdowns etc?

1 Like

What is your favorite source of inspiration?

We’re investigating a few new ways to squeeze performance out. Data Channels was the first to go experimental in 5.3. This (we hope) is going to really change how people construct common systems in their game like impact effects. Note that taking advantage of this won’t be free, it will involve restructuring your system setup. We’ve seen some pretty solid numbers on both game and render thread for some recent Fortnite experiments. We have a long-running effort to optimize the VM that is coming up. Early results from testing it are also really positive. It’s a big code change so verifying it is ready is a big undertaking. A priority for us is reducing the per-emitter cost for performance so that people can work more flexibly.

2 Likes

There are a lot of areas of interest here. It’s an area of significant interest for us because our team is well aware that we started from a place of high technical capabilities but the “stay in the flow” artist friendly workflows still need work. Here are some of the things we’re either working on, simply discussed, or have dreamed about and aren’t necessarily on our roadmap:

Summary view improvements:
Summary view has gotten a big overhaul for 5.3. The summary view is basically a “collapsed view” of an emitter. Instead of being exposed to all the power of Niagara, with a summary view emitter the artist decides which “knobs” to expose to the end user, and interacting with those is both more limited but also efficient and freeing. We believe that many emitters can be created as a template, collapsed into a tidy summary, and then used more freely by someone who is not at all technical such as junior artists, designers, one-man-army devs, or seasoned pros who see the value of a limitation in exchange for fixed art direction on a specific effect, or simply speed.

Compile times and speed:
Staying in the flow is critical, so there are a bunch of initiatives to speed up compilation and make the overall tool more efficient.

We are also discussing “fast access to common actions” which potentially don’t require a recompile.
A good example wouild be a constant, a curve, or a random numer for a module input. Can we let users access those in a flash, with no recompiling? Absolutely. This is something under active brainstorming.

Hyper Efficiency
Lastly, we think there might be value in a truly blazingly fast but super limited GPU simulation emitter type inside Niagara. For simple effects, this emitter could be functionally “free”, do limited things, but have blazing iteration speed (no compiles) and potentially even avoid all component ticking. Big questions about how to integrate this and make it feel like “Niagara”, but for user generated content, or UEFN, or devs that only need simple emitters, this could be extremely valuable.

Alongside all this, we will continue to refine our modules to reduce complexity and combine like functionality in a tidy place for discoverability.

3 Likes

I honestly love surfing Twitter in the VFX community. Seeing all the work that people are doing both with our tool and other tools in the industry is really exciting. I really enjoy tagging the team on a twitter post with the “look at this!”

1 Like