I’m currently wondering how AAA studios tackle muzzle flashes for their weapons. Are they using cone shaped meshes or just plane meshes stacked into each other to get them more plus-shaped?
In this video there are some super cool muzzle flashes being showcased: https://www.youtube.com/watch?v=HRStZd_KRtE and to my surprise they look like just plane shapes to me, but they still feel super 3D. Am I wrong about it and the meshes used are more complex than I think?
But I don’t get the same kind of quality feeling from it like with the ones from Ghost Recon. Also, I’m wondering, if it would impact performance at all or don’t I have to worry about that for the current generation?
I’m experimenting with my own creation of muzzle flashes and what I found out so far is that it’s a lot harder to create than one might think. One key aspect I am probably missing is variation in textures. Most tutorials on muzzle flashes just use one texture and put that on repeat, but it looks very different from high quality muzzle flashes.
Are there any other little tricks I am missing here? I’m having a hard time to find good materials/resources to learn about how I can go from bad/mediocre muzzle flashes to really good looking stuff.
Trying to think back to Battlefield 1 and Just Cause 4, I believe all the muzzleflashes were just billboard particles. In a realistic setting a single flash will be on-screen for 1-2 frames max, so there’s no need to overcomplicate things.
We did have different emitters for 1st/3rd person though, it was too much of a hassle to make a single system work well in both situations. But we never used meshes.
What’s missing in your current muzzleflashes? You say that you don’t get the same kind of quality, what are you referring to specifically?
I always struggle with fast moving, shooting characters. Locally attached muzzleflashes look weird, as they move directly with the character (especially obvious if character can rotate fast). And world space particles look weird as well, as the character runs away from it and the muzzleflash just lingers in the air.
What I usually do to fix this is a hybrid solution, using some locally attached ones an some that linger in the world, both with a very short lifetime.
Thanks for the input guys, I really appreciate it!
The muzzle flash I am creating is for a 3rd person isometric game. It’s likely going to be rather small (compared to first person shooters), but I still want it to look as good as possible for my possible client (this is somewhat of an art test).
I’ve only used billboard particles and my main concern is the creation of the textures. Just going for some standard photoshop noise and taking a portion out of it works okay, but it doesn’t have that high quality detail like in modern games. How can I create more detailed textures? Any recommendations for software or workflows?
I showed this to a buddy of mine and he pointed out that my effect does not blend well with the environment like in ghost recon for example. He also said that the muzzle flashes in ghost recon have a lot of glow, which mine are currently lacking. The muzzle flash sideview is currently just a texture taken from google, which I will replace with my own. Should I go for a greyscale texture and use the coloring in UE to create that bloom?
I was also wondering, if there is a specific blend mode I could use to make it blend with the environment better? I was thinking about using additive instead of just transparent, but in the famous Blizzard talk about Diablo 2 I learned that it will go to white way too drastically on brighter backgrounds.
I actually think your smoke looks quite alright for just photoshop work.
I would definitely make the emissive flames much brighter for the flame burst. You could just create some separate particls for just the fire burst. You can also try to add a ‘Blackbody’ node to your smoke, which kinda simulates the fire/smoke behavior on a black-white texture.
If you want to go more realistic/sophisticated there are a few tools commonly used for smoke simulations, which shoud give you decent results fast.
-Houdini (hard to use, sophisticated, higher priced)
-Embergen (easy to use and fast, medium priced)
-Fluid Ninja (easy to use, more stylised, cheap)
There’s loads of ways to make your smoke blend better with the environment, mainly it’s all about how the smoke is being lit. You can fake the lighting, or you can make the engine light them properly.
There are a few posts on here about this already, for example here:
Thanks that’s a bunch of really useful information! However, I think I didn’t make myself clear in the last post of mine. I wasn’t talking about how to create the smoke, but rather how to create the fire of the muzzle flash and how to blend that better with the environment
Not quite sure what you mean with environment blending. You can use a DepthFade node, if your sprite has a sharp edge, maybe that helps?
Fire can be simulated just like smoke. Fire is just burning at a higher temperature.
You can separate the two, but you don’t need to. If you take your smoke sprite and up the brightness, then feed it into the Blackbody node, you will automatically get some firey results.
If you look at this gunshot simulated with embergen for example (not done by me, Artist: Käy Vriend):
There are multiple videos by the guys at Corridor Crew that explains how to make good looking muzzle flashes for films, this one I liked a lot. It doesnt tell you how to do it for games but these are really good references. Yours doesn’t too bad, from some reference I saw while quickly looking in the Corridor Crew Video, I really think you could add some sparks, as they mention in the video, it adds a lot of life to the gunshot, and if you’re looking for more stylised reference, I find that Valorant has some pretty cool muzzle shot/gunshot fx. For blending the fire, adding a small additive/bloom at the end of the gun would help you blend the smoke better, or a small light if you prefer, I believe both can work.
I’ll build the textures either by hand-painting them, compositing reference photos, or using stock footage. Get creative - go out with a camera and film firecrackers exploding for use as muzzleflash material reference.
These are some of the flash materials I created over the course of one project. I use sequenced textures in groups of either 4 or 8 that the particle system can randomly cycle through. This will give you the variety you want in the flame.
Most of the process is iterative so I’d experiment with different muzzleflash textures to get a better sense of the feel I want.
When it comes to the particle system I’ll usually split the system between a circular flame billboard for the core of the flash, then the longer directional billboards (with the directional textures) for the longer flames ejecting out the front or sides.
If you keep the timing tight on the flash it’ll give you a punchier feeling effect, especially if you include the other elements like the sparks and smoke. Of course it all depends on the artstyle of the game and the feel you’re going for.
The corridor video posted above is a really good breakdown of how to get the timing and details of the flash right.
-Apply a fresnel fade to your flash material. This way if you’ve got directional billboards they’ll fade out of view if you see them at a sheer angle. This’ll keep you from seeing the flatness of the billboards if the flame is pointed toward you.
-Use material effects to add even more variety. A scrolling noise pattern or alpha erosion can give the flame a more natural fluidity.
-If you’re doing a first person title you’ll probably want to separate first person muzzleflashes from third person ones. It’s not easy making a single effect that works well for both.
-Design the effect so some elements are disposable. Set these elements to spawn randomly and you’ll get a bunch of variety to your flash. Example: A pistol flash built of a central circular flame, sparks, and smoke, but the flame only emits 50% of the time. Now you’ll randomly get either subtle sparky flashes or big firey ones
-Or if you want to go above and beyond, program a system to randomly select between several muzzleflash particle systems. Have it randomly cycle between small, medium, and large flames.
I’ve used a blend node (screen) to make the texture blend better with the environment (what I was asking for at the beginning) and used fresnel to hide the edges of the textures better. It works really well!
I’ve also painted my own textures in photoshop and used TheVman’s textures as a reference. They look quite a bit better than what I had used before. The sparks I used earlier weren’t too visible, which I did on purpose, because I was looking at references from real guns and most (modern guns) of them don’t have that much sparks going on. But, I’ve increased the visibility for them and added a bit more just to sell the effect better. After looking at other games I found out that most of them exaggerate the muzzle flash effect by quite a bit, I think.
The smoke could still be improved by a lot. I will look into creating smokes with simulations as soon as possible.
Again, thanks for the great help, guys! I really appreciate it