Click Here to view all the amazing entries to Rookie Awards 2024
Nemesis Burst AR Recreation - Hardsurface Weapons
Share  

Nemesis Burst AR Recreation - Hardsurface Weapons

by JoelEdis on 1 Jun 2024 for Rookie Awards 2024

This is the breakdown of my 9 week weapons project, throughout the duration of this I was tasked with recreating a gun the Nemesis Burst AR from Apex Legends.

3 96 0
Round of applause for our sponsors

Second Year Project

Nemesis Burst AR Recreation

Over the duration of my second semester, I was tasked with recreating a chosen weapon from numerous different games. One of these being Apex Legends, my first choice was the Nemesis due to its rather unique design.

Throughout this project I really pushed for a non-destructive workflow, this was most prevalent in the blockout and modelling stage, as well as using optimisation techniques found throughout the industry. I'll talk more about this later on.

The brief made it clear that we was to follow a game ready pipeline, working in multiple software to achieve an end result. Software such as; Fusion360, Blender, Zbrush, Substance Painter & Designer and rendered/presented in Unreal Engine 5.

Blockout

The blockout stage was done primarily in Fusion360, what I really liked about this software was its timeline feature. Enabling me to go back and adjust every action, fine tune features like fillets, chamfers was really nice. I found myself often going into Apex Legends and inspecting every little detail for hours at a time to really ensure that a captured each detail. On top of this, just watching how the weapon functioned really helped understand the mechanical components despite their distant sci-fi thematic.

What really jumped out at me was the idea of not using sub-d for most details, doing simple functions like putting a hole in a cylinder without even worrying about shading issues was quite refreshing. The Fusion process really pushed a Boolean workflow which I carried this into later stages for modelling purposes.

Modelling

The modelling process was probably the longest portion of the project, and rightfully so. The process here was to create a highpoly mesh and then bake it down onto a lower poly version of it.

Going into Blender I wanted to keep pushing for a boolean workflow where necessary. I believe that using Booleans on anything planar or angular is fine since shading errors aren't a big issue on flat surfaces. Using FWN, or face weighted normals (aka custom normals) is a commonly used practice by Cloud Imperium Games, To save a lot of time they create custom normals which give the illusion of higher geometry, some people call it a midpoly workflow.

This was incredibly powerful to use alongside booleans, the only drawback is geometry with lots of organic curvature. With the stock I stuck to sub-d since to me it was the right tool for the right job.

Wiping Unnecessary Geometry

I want to quickly gloss over how I created my bevels, now if you're familiar a weapon modelling workflow this is the part where I'd probably go into Zbrush, Zremesh/Dynamesh and add a polish. Now this is definitely effective, but I wanted to opt for something a little less destructive.

Instead I'd wipe all my geometry on import that essentially was stuck in the middle of a planar face, in Blender this tool is known as Limited Dissolve, very powerful. The problem with the bevel modifier is that essentially if some geometry comes off on a tangent it can influence the curvature of the bevel. To remedy this, limited dissolve removes that tangent geometry.

On top of this, that automated trifanning can often lead to shading issues on reflective materials. So that is why I clean the geometry and then bevel it.

Heres more techniques I used demonstrated down here:

I did use Zbrush to polish the microfillets on the drum of the gun however, as this was just a lot easier to implement on much higher frequency geometry.

Modelling Test Renders

Low Poly Optimisation

This is where my non destructive workflow really came in handy, instead of rebuilding an entirely new mesh around a decimated sculpt, my models attributes such as bevels, shading even the triangulation was all under modifiers. Meaning that as long as I'd set it up correctly my geometry was rather adaptive as I showcased with the adaptive bevels.

This meant optimising my mesh was basically a few sliders within the modifier stack.

UV Unwrapping

The Unwrapping process was quite iterative, trying to maintain a uniform/consistent texel density. However in the end I decided to make my texel density contextual, so the parts the user didn't see I chose to make small since it was a waste of UV space.

We had 2 options when it came to Unwrapping, 1x4096*4096 sheet or 4x2048*2048. I chose to do 4k. Looking back at it, I think for the sake of organisation I would've chosen 4 2k maps since admittedly I got a little overwhelmed looking at it.


Texturing

Texturing was a process that was quite experimental for me, I decided to create my own alphas, my own tileable features in Designer to bring them over the Painter. 

Before I get into that however, I decided before jumping into it I needed to prepare myself a little bit. So In Photoshop I created a little material blockout in the format of a presentation sheet. I felt like this was a nice fun way of showing where I'm headed with it.

To create that bumpy grip texture I decided to use Substance Designer, this was a very simple node setup, just a tile generator. Bringing it back into Painter I added a warp to it to create a much more natural and chaotic effect.

Texture Flats

Unreal Engine

For my environment I used Megascans for the rock assets, for the lighting I used a 3 point lighting setup. As well as making my materials quite adjustable, these included adjusting the values of my normals, roughness and metallic.

To create an emissive material, I went back into substance and painted a custom mask on a separate channel, which I exported out. This mask was then used in a material with a base emission to give it a colour. I then needed to create an effect that made the lights look like they're pulsating. To do this I got a noise texture and panned it which overlayed the mask. This created an animated effect that I could control varying factors such as speed, opacity, tiling with parameters.

Thats a wrap

Cheers for taking your time and stopping by and looking at my project.


Comments (0)

This project doesn't have any comments yet.