They can better translate from “card world” to “real world” now (see tutorial)
More sparkles are pushed out when dragon lands in the “card world”
First Dragon Breath Tests
Instead of using NormalizedAge I’m calculating the distance to the ground and use the DistancedTraveled property from the particles to calculate DistancedTraveledNormalized to scale and colorize the particles. I also kill the particles if they reached the currently max distance to the ground to avoid that they are visible too long.
The particles have a little “delay” as it takes a bit to travel from mouth to ground…I need to find a solution how I can sync this with the impact particle system which is placed by blueprint based on mouth orientation.
The Renderer Visibility Tag is a really handy attribute especially when you want 2 particles to move the exact same way. This reminds me that back in Unity, I would write a script to generate a random int value and assign the variable to the emitter seed of different particle systems for the similar effect. However in UE Niagara, the emitter random seed is not scriptable, so it’s kinda like a constant parameter? Perhaps it’s just that they have different design philosophies.
I answered in the youtube video, but I had more issues with this since a coworker needed to tweak a material I was modifying from sequencer so I tried another half-baked solution.
What I did was to create a Blueprint where I set the material instances to the meshes and each time I wanted to modify the materials I would pause the sequencer and hit the “Reset Instance Changes to Blueprint Default” option of the actor so it would grab the original materials again.
This is still far from ideal, just another workaround for the same problem, let’s hope someone finds a better way or Epic implements an alternative approach, like animating the Custom Primitive Data directly form Sequencer. I didn’t try all the solutions suggested in the comment section of your video though.
I gave the class and it went very well. Total length was 2.5h. Approx. half of it was a breakdown of the project (looking at the setup of the project and how everything was animated) and a look on how to use the super duper shader to create different materials very quickly.
The other half was used to actually build an example shader. This resulted in a nice little flame-vfx without the need of flipbooks but more importantly: It thaught the main techniques of the super duper shader and will help that people can open the super duper shader and actually understand whats going on in there.
Update:
Test with some magic trails coming out of the card
This looks so amazing! Great job!
I’m really new to vfx and still cannot wrap my head around the kind of meshes you would use to achieve all the different effects.
Would it be possible to see some wireframe shots if you have the time for it?
Thank you! The trick is to show the effect to people which give you a lot of feedback. Streaming while working on it also helps because from time to time people watch you working and share their thoughts.
I am not following very well how you are defining the front part of the dragon?
Is the card translucent?
And just to confirm, the dragon is never actually masked/clipped, it’s just the ground that is rendered on top. For that I suppose that you’re disabling the depth test so that you draw it always on top no matter what, is that correct?
Yes, that’s correct! The ground ignores depth and with that is always rendered on top. For the dragon: There is a second (invisible) dragon mesh with a mask so that it is only visible in front of the card which does NOT render into main pass but into a stencil buffer. It’s a bit weird but I had to do it that way. I’ll show details in the breakdown.