UV Mapping my character
Unwrapping the model:
My next task was moving on to the UV mapping stage, unwrapping all of the geometry into the UV space to be textured.
This was a much longer task to complete since all of my model was a group of separate models. Though, it also made it easier to unwrap each individual model. I continued using Maya for this, and my process was using the Projection plane method of unwrapping the model, which projected the mesh onto a 2D space on a specified axis. For instance, the image above has been projected in the Z axis since this gives the most flattened angle of the model.
Next, I would work on creating appropriate seams. I decided it would be best to separate the UV shells of the gilded areas and the metal to make it easier when texturing as I could easily fill these with a material in Substance Painter. The way I did this was manually selecting the edges and creating seams.
I could then select the UV shells in the UV editor (now separated) and separate them, which can be seen in the above image, the top shell for the Gilding, the middle shell for the front metal portion, and the largest and last UV shell as the back-side of the model. I intended to make this back-side UV shell quite small to not take up much room in the UV space since the back side would hardly be seen, though I would still texture it since the back could be visible. There were only a few parts of the model where the back-side would never be visible which I could make really small in the UV space to the point you couldn't identify it since it wouldn't be seen, and would be a better use of the UV space.
When creating seams for the legs, I decdied to think a bit carefully about the placement of the seams. Ideally you want the UV seams to be placed in the least visible spot of the mesh so that it does not have such an impact on the aesthetic side of your model. After putting the armour layers back on I had a moment to think about the best place for the seams to go.
Here is where I settled on placing the seams, across the side of the legs. Seams for the legs might be more conventionally placed towards the back of the legs so they are less visible. However, I decided seams more towards the front would be preferrable on my model since the front of the leg is the most covered/obstructed from view, the back is the most visible part of the leg and thus seams should be avoided there so to be out of view. I decided to not separate the UV with a seam in the middle of the legs since this would also be very visible, and wanted to avoid seams being here. Therefore, the mesh selected in the image above will be unwrapped into a single UV shell to minimise obstructive seams.
Additionally, the top and bottom of the legs have been separated into their own UV Shells with seams. The reason for this is that these parts of the model will not be seen and so - in a bid to maximise on my UV space - I decided these shells could be shrunk in size in the UV layout to make room for other shells instead, making more efficient use of the UV space.
When creating the UV Shell for the gloves, I had some difficulties in creating suitable seams as - to my own error - I had not considered a series of edges going across the top/bottom of the hand. As a result, the seam was very jagged and ugly to look at. To resolve this, I went ahead and tried to mofidy the topology to be more suitable to accomodate a more effective seam. The image above demonstrates how I achieved this, creating an edge through a Quad (creating two Tris) which would complete the seam. Before this addition in the topology, the seam had to go down then across, which could lead to an unrealistic seam in the texture. Unfortunately this does lead to two Tris in my geometry, but I hoped this would be mitigated once the model is smoothed as this should fix any Tris present in a mesh effectively so long as they are few and far between.
Earlier in this post, I had discussed the retopology of my character. Specifically, I had mentioned that the topology of the Buckles were suitable enough to not warrant retopology as the topology was clean and effective in producing a good shape in the mesh. However, I was wrong in this conclusion as I had failed to consider the UV mapping of this object; The Buckle proved to be very difficult to UV wrap effectively due to its much higher poly. In addition, the topology did not flow very well, selecting an edge loop would select multiple 'rings' since the topology would - in a sense - spiral, rather than looping once. In short, the topology was flawed, and warranted retopology.
Here is the retopologised Buckle, with a smooth preview to compare to the original. The shape is mostly preserved and will be much easier to UV wrap in the same technique as the previous parts I have mapped so far.
I had the same issue occur when trying to UV map the hooks on the Back Scabbard, since the topology was very high and ultimately flawed. Again, this warranted retopology.
Here is the hook now retopologised. The topology is much lower and easier to work with.
After some significant time, here is the complete unwrapped model: Both sword and armour. I have very efficiently organised these during production to make things easier for myself to later pack into UV tiles. The reason the UV Shells are currently so cluttered and overlapping is because this is showing the UV Shells for every mesh in my character, which I have yet to organise and resize appropriately.
- The most packed tile is the central-most tile, corresponding to U 1 V 1 in the UV layout. This currently contains all of the UV Shells to be assigned a metal material.
- The tile just above contains all of the UV shells to have a golden material applied, to serve as the Gilding of the character design.
- The upper right tile contains all of the leather materials such as the straps in the model.
- The tile to the right of the center contains some other cloth-based shells, such as the gloves and leggings.
- The tile below the center contains all of the UV shells which will not be utilised. These are the shells of all the parts of the models which will never be seen in the texturing of my model. For example, the bottom of the leggings which I had discussed earlier. These will be scaled down to a very tiny size and not textured.
- The most bottom-right tile contains miscalaneous Shells: Chainmail, Bottom of the shoe/Sabaton and the Wooden Sheath part of the Scabbard.
- Finally, to the very left contains all of the Shells of the Greatsword. These have already been efficiently packed purely for testing purposes.
Packing the UV Shells efficiently:
Now that the entire model has been unwrapped and somewhat-organised, it was time to pack the shells efficiently into UDIM tiles. Currently I am aiming for a 2x3 section of UV Tiles to contain all my textures, though this may be subject to change depending on how the packing goes. I plan to do this manually to give myself full control over this aspect.
Before packing the shells efficiently, I wanted to check for any flaws in the UV unwrapping done, checking for missing UVs or Shells that are stretched and causing deformation in the texture. To do this, I have applied a simple checker-based overlay across all the shells. If the checker texture does not show to be square, then the texture is being stretched (i.e. if the squares are showing as rectangular). This is known as Texel Density.
In addition, it is more ideal for the UV shells to share a similar level of texel density, or a similar resolution per shell. For example, in the above image you can see the checker texture is much larger on the chestplate than on the right upper arm, where the checkers are much smaller. This means that the UV shell for the chestplate is not getting enough resolution as the upper arm, since the checker texture should aim to be fairly consistent across the model so that there is not an inconsistency in resolution in the texture-work. This is why certain UV shells will require resizing.
In the above image, you can see there is some stretching ocurring in the UV shells around the tassets of the armour. This is something that can be fixed by simply resizing the UV shell disproportionately so the checker overlay becomes more square-shaped to indicate stretching is not significantly ocurring anymore.
Here is another example of stretching ocurring on the pin of the helmet visor. The stretching is very significant here, so it was good to spot this before I progressed to the texturing stage.
After a bit of tweaking, I have managed to fix all of the UV Shells of the Greatsword to feature as minimal stretching as possible. The stretching only slightly ocurrs on the grip and the Pommel. The grip is difficult to fix as it ocurrs with individual rows of polys in the UV shell which need to be resized manually, which causes other polys in the shell to resize too. Ultimately I feel the stretching is very insignificant. In regards to the stretching of the Pommel, I believe this is unavoidable due to its spherical shape, and you should expect some slight stretching across a sphereical shape as a sphere does not accurately map onto a 2D space. Though I believe the stretching is very minimal and not significant enough to warrant further work.
Whilst fixing and resizing the Shells, I realised that I could save myself lots of UV space when packing the Bolts of the armour. These meshes were identical, simply duplicated across the character in different positions. I could unwrap one and simply replace the other bolts with this now-unwrapped bolt so that all of the bolts share the exact same UV space. I felt this was justified since the bolt would be a very small part of the armour that was not seen much, and wouldn't really be justified to have a unique UV shell for each bolt. In the image above you can see the result of stacking the UV shells efficiently on top of one-another. By saving UV space, it allows other shells to be slightly larger, allowing the shell to use up more of the texture space and thus have a slightly higher pixel total and more detail.
Here is my progress of the fixing/refining of the UV map, correcting Texel density and packing the shells more efficiently. Currently I am still aiming at using a 2x3 UDIM space, with the bottom three tiles used for metal materials, the top left tile used for gilded materials, the top-middle for leather straps, and the final top-right tile for chainmail and other shells. In the left of the above image you can see the armour I have currently fixed the UVs for, with the other layers of the model that are hidden still being a work in progress. So far I believe the scale of the UV shells are appropriate and well balanced across the model, only using a smaller UV shell for the leggings as this is a work in progress still, and I intend to adjust this once all of the shells have been properly packed.
Here is the full UV layout, now refined with great Texel density. Most of the shells are pretty organised, but some such as the bottom are scattered in the incorrect tiles and need to be packed more appropriately.
Here is the final UV layout, now packed into the 2x3 UDIM layout I had aimed for. Even though the model has good texel density, there is a lot of empty space in the layout and could be improved by scaling the UV Shells up. However, instead of this, I decided that I could use unique shells for the mirrored geometry of the character.
Currently, I have UV mapped all of the parts of the model which are either parts that will not be mirrored across (such as the helmet) or one side of the character to be mirrored at the end of production (such as the right arm to be mirrored to the left side). Originally I did this to be efficient but this means that the details will be symmetrical across a bulk of the character such as the imperfections, which could benefit from being aymmetrical for added realism. Since there was plenty of unused UV space, I decided to mirror the geometry and reposition the mirrored UV Shells so the texture would not be symmetrical.
After mirroring the geometry, I took the already unwrapped shells and repositioned them in the layout so their texture would be different to that of the opposite side of the character. These almost perfectly fit the unused UV space, only a couple small shells did not fit and required a bit of resizing so they all fit in the designated UV space. Now the UV layout is extremely efficient and uses up almost every possible bit of UV space possible! This extremely efficient layout will be perfect for my project as I am going for high detail texture work, which will require high resolution to be used.
It is worth noting that - for the top right corner, which contains the Shells for the chainmail - the shells are very detailed by comparison to the rest of the model. The Texel Density is rather inconsistent for these particular shells. The reason for this is that I imagine these will use a chainmail texture to achieve what I am looking for, and I am expecting these textures to benefit from a much greater use of the UV space in order for the textures to be believable and detailled. In addition, my animatic suggests that I will need a close up shot of the armpit-region of the character, which will utilise a chainmail texture. As the camera will be close up to this reigion, I decided to make sure the shells were large enough to maintain their detail even when very close up. This is why two shells in the top right of the layout are significantly larger than the rest, since these point back to the left and right armpit of the character. I believe this was an effective decision.
Despite checking the Texel density of the UV layout with a checker-overlay, I felt the overlay did not fully demonstrate the resolution that would be visible across my character. To test this, I applied the following 2K Checkermap texture to my character to test the resolution, and how a 2K texture would look across my character. The benefit of this particular checkermap texture is that it contains lettering/numbers, which may show pixelation if the UV shell is not a big enough size for a 2K resolution.
Here is the Checkermap texture applied to my character. Overall, the majorty of the UV shells show good use of resolution with minimal stretching, and the texture is clearly visible from this distance without any major issue.
However, upon closer inspection, the checkermap texture does start to indicate some slight pixelation of the lettering/numbers in the texture. In the above image I have highlighted a part of the chestplate which - when zoomed in - shows some very slight pixelation. Although this doesn't seem significant, if I am to portray a realistic model with realistic textures, the resolution of the textures will need to be very high in order to convery realism. Pixelation or low-resolution textures would completely ruin the overall look, and it would only take a small region in low quality to do this. As the UV layout was completely and efficiently packed, there was no room to expand the Shells to gain quality that way. Instead, a 4K resolution in my textures may be appropriate in order to maintain a suitable quality from this distance. This would only be an issue from this distance based on my testing, as - from a further distance - this slight imperfection is not noticable.
From my animatic, this is probably the closest the camera will get to the character. The textures do not appear to show any degradation of quality from this distance to my eyes. Judging by the fact that this checkermap uses a 2k resolution, arguably a 2k resolution should suffice. However, I will be creating a 4k export of the resolution if it is later deemed necessary either during or after the texturing stage of production. Ultimately 4k resolution is 4x the size of 2k resolution, a significant increase; This would lead to an increase in rendering times where potentially unnecessary. This was something to carefully consider before just using the highest quality possible, and will require further testing either during or after the texturing of my character.
At this point, I deemed the UV mapping stage to be complete.

























Comments
Post a Comment