Breakdown: How to Model and Texture a Cursed Knight with Melancholic Vibes
Gábor Meggyesi discussed the workflow behind the Cursed Knight project, explaining how he modeled the armor, spear, and other details like bells, chains, and buckles, and detailing how he used the hair to show the character's story.
Introduction
My name is Gábor Meggyesi, and I am a self-taught 3D Artist currently working as a Senior Character and Creature Artist at North Beach Games Prague. I started learning 3D art in 2019 after completing a basic Unity-focused course in Hungary. Since then, I have mainly developed my skills through personal projects, experimentation, workshops, and production experience.
In the first few years, I learned a lot by studying the work and tutorials of industry artists such as Laura Gallagher, J Hill, and Jared Chavez. Later on, I continued learning through workshops with artists such as Marcin Klicki and, currently, Piotr Zieliński.
Over the years, I have contributed to smaller projects such as the Zero Caliber series and XREAL Games, Maximum Football at Maximum Entertainment, and I am currently working on Stranded Deep 2 at North Beach Games.
Cursed Knight
The original concept already had a strong Souls-like feeling, and I wanted to turn the project into a personal love letter to the genre. Dark Souls and other Soulsborne titles were major inspirations, especially their melancholic atmosphere, grotesque designs, and sense of decay.
With Cursed Knight, I wanted not only to create a stronger portfolio piece but also to explore a more cinematic approach while combining it with the real-time and game production workflows I learned throughout my career. During the project, Piotr Zieliński was both a mentor and creative partner, encouraging me to push the project further artistically and technically.
Modeling
For the armor parts and for the spear, the workflow was relatively standard. Since the original concept was already very detailed and the shoulder armor has an iconic design, I decided to handle most of that process using Maya and ZBrush together.
Some elements were directly blocked out in ZBrush, some others were first created in Maya, depending on whether I needed it, after that, I refined and unified everything further inside ZBrush.
During the quick blockout phase, I used Dynamic Subdivision, ZRemesher, and DynaMesh. These features allowed me to iterate and move quickly while working on the individual parts, since at this stage I was mainly focused on the overall mass and shapes.
One thing I would especially highlight during the blockout phase was the constant silhouette checking process. For this, I mainly used Marmoset Toolbag, since it makes it very easy to quickly test and evaluate forms using either a simple light rig or just an HDRI setup.
I find this workflow extremely useful at this stage. You can easily test how the shapes react under different lighting conditions before moving further into the next stage.
For repeated elements such as the bells, chains, buckles, padlocks, and bolts, I created my own custom IMM brush sets with Maya and ZBrush. These pieces were already UV'd, and after placing them in position, I could reconstruct them back to SubDiv_1.
The final high-poly creation process for the armor was fairly straightforward. By applying Dynamic Subdivision together with remeshing workflows, I aimed to achieve the desired forms and silhouette.
In terms of the detailing process, there was no "secret" brush used, just mixing different high-quality alphas combined with manual work and a Smooth brush. It was a lot of fun.
During the detailing phase, one feature I found especially useful was ZBrush's layer system. It allowed me to blend different levels of detail in a non-destructive way and easily control how much of each detail pass was visible. However, it is worth being careful with this workflow, as using too many layers can increase the file size and affect performance.
The final pose and facial expression were also created in ZBrush, which made it easy to adjust the silhouette and overall attitude of the character before presentation.
High-poly:
The hair and face were not fully based on a concept, so I felt this was a great opportunity to add something personal to the existing design. I wanted to create a hairstyle that would reflect the character's overall condition, something messy, partially balding, and fitting for an exhausted, battle-worn warrior.
At the same time, I also wanted to use this project as an opportunity to learn a new tool that I could later integrate into my production pipeline as well. I decided to use Ornatrix for the hair creation process.
Because the hairstyle was longer and inspired by a more Cossack-style look, I used a more traditional guide-based workflow. One of the most helpful features during the process was the Guides Groups system in Ornatrix, together with the ability to assign operators to specific groups.
This allowed me to shape and control different parts of the groom independently, which made the iteration process much faster and more flexible.
One area where I managed to save a significant amount of time was the peach fuzz, beard, and short hair creation, mainly thanks to the Surface Comb feature. It allows you to manipulate the groom very quickly using directional vectors directly on the surface, making the grooming process extremely fast.
And since Ornatrix uses GPU instancing, it can handle a large amount of groom data in a single scene more efficiently.
Additionally, Ornatrix is capable of exporting strand groups, which allows UE5 to recognize these groups individually and with this feature different materials can be assigned to each hair group separately.
Topology and Texturing
For the low-poly creation, I used TopoGun 3, and for the UV workflow, I chose RizomUV. Both tools are widely used in the industry and offer a large number of workflow-accelerating features that significantly speed up the retopology and UV process.
The armor parts are watertight everywhere, and according to the Texel Density with a 2048 texture resolution, the model has around 20 px/unit. For the final presentation renders, I used 4K textures, which gave me roughly 40 px/unit.
The texturing was probably one of the biggest challenges of the entire project, since the original concept was extremely rich in colors and layered material transitions. Almost every surface has multiple material layers stacked on top of each other, so I decided to break the material layers down into smaller, more manageable parts.
Metal:
This was the primary foundation material of the armor, a relatively saturated and slightly glossy metal type, but still with an aged and worn surface. The layer itself was further divided into more subtle color variations, mainly shifting between bluish, purple, and yellowish tones.
The key part here was working with gradients. Instead of using one simple color, I usually worked with 3 different color tones for each layer, then mixed them using Grunge maps. This helped me create more natural transitions and a richer, more varied surface.
Rust:
The rust workflow was built in a very similar way to the metal material. I separated the rust into multiple layers, including a much deeper layer with darker corrosion areas and lighter, more surface-level oxidation layers. For the deeper and darker rust areas, I used various height-based noises to create more depth and breakup in the material.
For the lighter surface rust, I relied more heavily on custom alphas. To create these, I gathered different source images from platforms such as Textures.com, then processed them in Photoshop to generate custom alpha masks. These masks were later projected directly onto the model surface inside Substance 3D Painter.
Moss:
The moss layers were slightly simpler compared to the metal and rust materials. Here, the biggest challenge was mainly controlling the distribution and placement across the surfaces believably. On top of all these layers, I added a simpler dust layer, which helped further age and unify the different materials together.
One feature that helped tremendously throughout the entire texturing process was the well-known Anchor system in Substance 3D Painter. Thanks to this, I was able to build complex layered materials where different effects could dynamically interact and build on top of each other in a much more procedural and flexible way.
Overall, the biggest challenge during the texturing was definitely the rust layer. It covers large and very visually exposed areas of the character, and because of this, even small inconsistencies or details that felt out of place became immediately noticeable to the eye.
Another small but important detail that helped make the armor feel more believable was the use of the Specular channel alongside Metallic. It was not a huge change, but it added just enough variation to the material response. On a 0–1 scale, I usually kept the darker and rustier areas around 0.4, while the cleaner, shinier armor surfaces were closer to 0.6.
Overall, balancing the amount of breakups, contrast, and surface details without making the material feel repetitive or artificial required a significant amount of iteration and manual work across the entire model. A useful trick to check the material in grayscale from time to time. Of course, it will never be 100% identical, but by aiming for similar value ranges, it becomes much harder to make major mistakes.
The Skin:
The face texturing process was relatively fast compared to some of the other materials. Using a raw scan as the base for color already provided a very strong foundation, and with few color correction layers combined with some manual painting work, it was possible to achieve a convincing result fairly quickly.
In terms of shaders, Skin, Armor, and Fabric materials were kept relatively simple. Most of the visual complexity came from the texture work and lighting.
For the eye and hair shader, I decided to tweak/modify the default MH eye and hair shaders instead of building a completely custom solution from scratch.
The final Lookdev video:
Lighting
The lookdev, final presentation, and rendering happened in Unreal Engine 5.7.
For the beauty shots, I built 3 different light rigs.
1 — Face Light Rig
This setup was mainly used for close-up shots and facial sequences. Some of the lights were spawned and controlled through Sequencer, with animated intensity values that changed depending on the camera position.
2 — Full Body Light Rig
For the wider full-body shots and sequences.
3 — Campfire Lighting Rig
I also created a dedicated darker lighting setup for the campfire scenes.
One small trick for light rigs: I always start every setup with a traditional 3-point lighting configuration: 1 key light, 1 rim light, and 1 fill light. I usually continue by duplicating and adjusting these existing light types until I achieve the final result and overall mood I am looking for.
In terms of post-processing, every light setup used two separate Post Process Volumes.
- Global Values: This volume handled the overall scene-wide settings such as exposure, contrast, color grading, bloom, fog, and general tone consistency.
- Shot-Specific Adjustments: The second Post Process Volume was used for individual shots and sequences, allowing me to fine-tune elements such as depth of field, exposure balance, vignette intensity, and other cinematic adjustments depending on the camera angle and composition.
In order for the two Post Process Volumes to work together correctly, the shot-specific volume needed to be set from 0 to 1. You can also put different LUTs here.
One additional trick that helped me achieve a cleaner final result was adjusting the Detail Strength parameter in the camera settings. This slightly enhances and sharpens the smaller surface details on the character.
In terms of additional tools, two plugins that helped me a lot during the presentation process were:
EasyAtmos — William Faucher: For atmospheric particles and environmental effects, it is extremely easy and fast to work with.
Hair Cinematic Tool — Argentum Studio: This tool helped improve the rendering quality of strand-based hair.
Conclusion
One of the biggest challenges throughout the project was definitely time management. During this project, I was balancing multiple jobs and responsibilities at the same time while also trying to consistently push the project forward.
Rather than learning one completely new discipline, I would say the project mainly helped me sharpen and reinforce my existing skills across multiple areas, such as sculpting, grooming, texturing, lighting, presentation, and technical skills.
My advice for beginners would be to stay open-minded and explore areas beyond their direct specialization. Even if they may not directly work on those tasks in a production environment, having at least a general understanding of them can become a huge advantage later on.