doing mostly environments and tech art at my work I've decided to jump back to characters for an upcoming mod for Kingdomcome Deliverance Seven Kingdoms Mud and Ash. Last of my character projects were more like proof of concept. The industry feedback was to improve my cloth production and facial quality. Despite the character being made for specular workflow I fully intent to make final presentation in UE4.
Initially I planned to texture all assets in Substance painter, but due to their recent change in business plans and lack of new features I've decided to try something new (I'll admit the software is at a very decent stage already, but there is room for improvement and innovation and their new parent company isn't exactly known for innovation in terms of quality of their products). Fortunately, Quixel just released support for custom mesh painting in Mixer and despite the lack of polish and stability for professional production I've decided to gamble and test the software for texturing. Throughout these posts I'll comment on my experience using Quixel Mixer.
The blog will be split into different layers of the armour. The original game featured one of the most complex layer systems out there, and so it only made sense to stick to this system. Each post will cover different software and workflows so it nicely breaks it up into disciplines. This first entry will focus on cloth creation in Marvellous Designer, retopology and a bit of texturing. I'll abstain from covering basics and step by step narrative. It will be more about tips and tricks and covering new (at least to me) tools and features.
By the end of this blog I will describe the process that got me this result:
Figure 1: Final stage of bottom layer. Rendered in MT3
Design wise I gathered reference from directly from the HBO series footage. I managed to find a couple pictures from exhibitions, but in the end they were little help other than seeing the assets in more neutral light (keep in mind there is a lot of post-production and colour correction and it is going to vary from scene to scene, since it's there to serve as a narrative instrument, but it makes replication that much difficult). Some bits of the design kept changing throughout the series as well. I decided to go with the later design reference, because I imagined that it went through a natural process of innovation. I've also spotted some discrepancies when it comes to materials used which could be explained by different studios being involved and thus a difference in manufacturing processes. In the end I've opted for the earlier material version since it looked more believable considering the context. More on that in later posts when it becomes more important.
Opting for the layer system I had to find reference for the underlying layers, in order to stay as accurate as possible. This turned out to be a bit of problem due to lack of adequate footage, but further research revealed sufficient reference and resulted in some design iterations in the early stages.
Knowing the majority of the first layer is clothing only the choice of software was obvious. I had prior experience with Marvelous Designer (MD), but I always barely scratched the surface. MD being the industry standard nowadays I knew I had use it to its maximum potential. Besides familiarising myself with the software's features I've also looked at actual clothing drafts and blueprints.
One of my previous issues with MD was its dependency on CPU when it comes to simulation. Luckily, MD had just recently introduced GPU simulation and further improved its retopology tool, so I had two more reasons to give this software a proper try it deserves. I will discuss those new features in more detail in the production part.
Risks and Challenges
Being limited to an already existing skeleton is blessing and curse at the same time. It's actually great help if you have a default body reference you can build from, but there can be issues when it comes to proportions. Fortunately, this wasn't an issue for me, since the original body proportions are very much realistic and so in this first layer the only challenge was the lack of sufficient visual reference. However, I didn't deem it as a big risk to take some artistic liberties, because I'm dealing with the most bottom layer which is probably going to get the least amount of attention. Hence, as long as it maintains the appropriate colour, shape and material appearance, I would call that a success.
However, a bigger risk and challenge was the production itself and lack of professional experience when it comes to actually achieving a good enough result with cloth creation. My main fear was getting stuck at this process, being obsessed with individual folds and not knowing whether I should create the boots in MD (more challenging, but also more accurate and arguably rewarding), or stick to a more conservative approach and rely polygon modelling and sculpting.
An ongoing risk for this entire project is also using Quixel Mixer as my main texturing software, since it's officially in its beta and maybe not production ready.
Undergarments and Boots Simulation in MD
Figure 2: First iteration of cloth production. Simulated garment with its draft and gambeson sleeve cut reference.
After getting some feedback I've concluded the following:
- Detach the skirt and make it a separate piece of the middle layer.
- Adjust the shirt draft to be more like a shirt instead of gambeson. Remove the parts around neck and create a separate element as a scarf.
- Improve the fabric simulation properties to represent a dense fabric instead of a very fine, light cotton.
Then it came to creating the boots. Having used the conservative method many times before and not being very happy with the results I opted to try to simulate them in MD. Spending hours on forums and looking at video tutorial, I've came to the conclusion it's nearly impossible to have a hard surface-like fabric setup which is what I was needing for the bottom of the boot. I looked at some medieval boot reference and as well examples of riding shoes to get and idea what the draft should look like.
This was a moment when I realised I'm going to have make some alterations to the shows' design. Their boots are very tall, going even above knee, but the game's layer system would struggle with design. However, in the end, it's just a boot and the main focus is on the material representation rather than proportions.
At the same time, I've made adjustments to the fabric's physical property to make a lot more saggy and heavy. It gives me much more natural looking and bigger folds. It also helps to break symmetry.
In the end, the boots were a lot easier than I thought. I applied a similar material as the pants and shirt, since the standard leather preset was still too fine and just didn't give me the right result. In order to have a firm bottom of the shoe I created a draft for both the top and bottom which is then stitched together with a strip. both the flat part were pinned so they would get stitched, but not deformed. Once I had the firm bottom part sorted out and in position I froze it. It's important to note I made an internal line in the flat parts so I can stitch the upper part to it and still have an offset from the edge. There was a bit of fighting with the "bagginess" of the leather around the ankle, because I was aware too many folds would cause problems during retopology, but at the same time I wanted some folds to be there.
NOTE: At this point it's probably best to discuss the GPU simulation. Compared to the standard CPU method it's way faster. Like when you switch CPU baking to GPU. (I'm using 2070SUPER as my main GPU). I can fairly comfortably used particle density at 5 which gives me a lot more folds and definition than what I was used to. That being said, the simulation uses a different algorithm. The result is different compared to the CPU version, but it's very minor if you consider the amount of time you save. The problem is with collision though. I don't think GPU is being used in many games for collision calculation and this being a realtime process is probably no different. So self collision isn't great and you can get a lot of clipping. Almost all the time my pattern would "sink" below of frozen pattern, even if it had a higher layer priority. I ended up disabling the mesh instead if I wanted to avoid this completely. Also, GPU simulation seems to have a fixed gravity, so altering the value in the simulation properties switches back to CPU.
The strips created and used in MD served as guides and were there mostly for proper simulation on the shirt. The skirt itself had to be somewhat puffy so I played around with applying positive pressure to the internal patterns, but even a minimal value of 1 resulted in the skirt "flying" up. That's when the fabric density becomes important. Increasing the density (not particle density) in the material property makes the fabric "heavier" and therefore more responsive to gravity, pulling it back down.
Once all the simulation is done I send it to Zbrush (exported as thin, unwelded). I make sure that during the final stages of simulation I switch to quadified topology, so that when it's in zbrush, I don't have to worry about zremeshing the geometry when adding subdivision levels.
I did some minor details sculpting to add finer folds. Bringing in the mesh unwelded allows me to use AutoGroups, Crease Polygroups, Weld Points and then add subdivision levels without loosing the sharp edges where two pieces of fabric are sewn together. I also added some smaller stitches found in this pack.
Having tried out retopology in Zrbush, Topogun, Maya and even 3dsMax, I knew that retopologising clothing is one of the more difficult processes. Until now the more popular and successful method was to bring the clothing in its flat draft form into Maya and retopologise it from there. Then use transform attributes using UV and deform it back to simulated mesh. The whole process is fairly complicated and is explained in detail by FlippedNormals in their tutorial. However, MD recently introduced its own retopo tools.
Figure 6: Demonstration of retopology tool in MD
The tool is overall easy to pick up. I works very similar to the Maya process without all the unnecessary steps. You draw topology inside the 2D pattern and it gets automatically projected on the garment in 3D. Any patterns with symmetry are also replicated so you don't have to do it twice. What it doesn't do is replicate points where there is stitching to other patterns. (From a technical POV, I imagine it's not that easy to implement, since the length of sewn edges can be different.) So it's better if you align the patterns close to each other in the 2D view, as that will make the process a bit easier. The points then can be welded in any other modelling package. It's also possible to add more subdiv levels, but unlike with other retopo software, it doesn't automatically smooths the topology and because there is no relax brush or tool, you have to that step manually. Lastly, it's really handy that you get a near perfect UV from this tool.
Figure 7: Multiple levels of subdivision. Topology created entirely in MD
In the image above you can see 2 different levels of subdivision applied in MD. On the one on the left you can see how the subdivision hasn't really smoothed the edgeloops. Those two meshes have the same UV so they could used as different LODs.
There is, however, a problem with this kind retopology. It's minor and can be ignored, but if you spend the time manually fixing, it can eliminate most of the visual artefacts you might get after baking.
Because the way the topology is created, the edgeloops can't (and most of the time will not) follow perfectly along the folds. Since every quad still needs to split into two triangles it's essential to pay attention to triangulation within each quad, because that will determine how the quad will be split. A good triangulation will also help you to get a better cage when you bake in software like Marmoset Toolbag 3, where you can very quickly adjust the cage. The figure above visualises the triangulation error. You can see the other sleeve had its triangulation improved so the silhouette of the mesh is way smoother, whereas the highlighted one has default triangulation.
In order to get the best triangulation it's ideal to import the garment from MD so that you know exactly which way the folds go and how to adjust the edge orientation. You should mostly be concerned with quads that aren't very flat, because the "flatter" the polygon, the less impactful a wrong triangulation is. The picture above shows how I approached edgeflow around the ankle where I wanted at least two loops to each side before I get 5-point star. The green dotted lines highlight the way I approached triangulation for critical faces. Hopefully this will help you get a cleaner bake and smoother silhouette.