Gunner Iris is entrusted with maintaining the weapons on board in working condition and ready for battle at a moment’s notice. She’s a highly skilled sniper constantly scanning the horizon for threats. A young and fearless pirate, her goals are to carve out a grand fortune as well as a legacy. She wears her jewels, as a sign of pride from the years of plundering. Her ever-growing bounty is a testament to her commitment to the thrill of piracy. Though many like her don’t last long out at sea.
Software
Character Breakdown
Inspiration and Initial Steps
As a part of my Master of Fine Arts Thesis project, I needed to create a theme and concepts for a variety of characters. One of them is the female character, Gunner Iris. I explored many themes: sci-fi, cowboys, medieval, etc. I chose this dark fantasy pirate theme because I wanted the freedom to design characters that were fantastical but grounded in a time period and setting. So, while my male character could have multiple limbs, it wouldn’t make sense for him to have rocket boots or a hoodie. I was very much inspired by games like God of War Ragnarok and Ghost of Tsushima as well as artwork by Even Amundsen. What I love about all of that work is that just by a cursory glance you can tell a lot of the character’s backstory and setting.
Dark Fantasy Pirates Theme
The title I have, Devoured by the Red Moon, came from the backstory I gave to this world that these characters inhabit. Here is an excerpt I wrote:
“The seas have always been a terrain not kind to humans. Sailing across poses many dangers, from the very sea to the creatures that lurk within. In order to traverse, many pirates and outlaws have taken to practicing blood magic in order to not only survive but thrive. Our crew is composed of desperate souls that wish to find redemption and treasure in these dark waters. An event known as the red eclipse has woken up creatures from beneath the deep sea. Sea monsters that will take anyone who’s on board into the depths of the ocean floor.”
Concept Art
I started drawing up ideas for this character; the initial prompt was a female sniper. I really enjoyed this design from the get-go, more than the captain. I felt I had a clearer idea and fewer moving parts. The captain literally having more limbs was a challenge, and making that work was difficult. For Gunner Iris, the reference I gathered fit the character, and there were only minor adjustments when translating the 2D to 3D. They were done more for practicality and making more sense for the character. The hair, for example, was braided in the concept art but changed to dreadlocks in 3D. The reason for it is that dreadlocks are an easier hairstyle to maintain in comparison and fit more with the pirate theme, grounded in this hyper-reality I was going for.
While working, I sometimes like to listen to ZBrush Summit talks; they are inspirational, and I have learned a lot from them. One of them that was very significant was Disney’s presentation on Zootopia. Zack Petroc talked about MVP (minimum viable product), basically meaning that you want to put the minimum amount of effort into your creation to get feedback and pivot. The sketch for this female character was very loose, so when I got feedback on it, it was easy to see what worked and what didn’t without going through the hassle of becoming too attached to it and wasting too much time rendering it. Until you are sure of your design choices, that’s when you should commit, not before.
Sculpting and Iterations
With the concept finished, I moved into sculpting. During this time, I had an amazing instructor by the name of Tan Bi, Sr. Creature Modeler at Industrial Light & Magic. He really pushed me to work on the anatomy, even for this female character with “normal“ anatomy in comparison to the captain with multiple limbs. Anatomy is a tricky subject, one that you are studying constantly as an artist. I believe it is the pillar on which many artists trip up. I was lucky to have Tan Bi looking over my work; his decades of experience allowed him to easily point out any errors that I couldn’t notice. This just highlights the importance of collaboration, feedback, and mentorship. Through learned knowledge, I was able to help out other artists in their anatomy.
High Definition Sculpting
I followed a standard workflow of high-definition sculpting in ZBrush to use as my high-poly mesh for baking into my low-poly. Sculpting is where I feel the most comfortable and is definitely the most fun for me. I feel I have gotten faster at it through years of utilizing the program; I no longer feel restricted by the software and can just go in and put visually what I have in my head. I’m comfortable enough to sculpt hard surface details inside of ZBrush. I do sometimes go inside of Maya to get a rough blockout and import it into ZBrush, but for the most part, I’ve been strictly in ZBrush. I get into my zone and don’t feel the need to leave the software, which would interrupt my rhythm.
Marvelous Designer
The clothing work took about as much time as the organic and hard surface sculpting. Cloth is quite complicated, and I used Marvelous Designer as a base in which to sculpt on top of. Marvelous Designer creates a simulation of cloth based on patterns you create inside of it, emulating real-world cloth pretty accurately.
Being happy with the simulation results in Marvelous, I want that detail in an easy-to-sculpt topology so that I can take it into a program like ZBrush and continue refining the model. However, the topology that comes out of Marvelous Designer isn’t optimal for sculpting. That is where Derrick Sesson’s (free!) Marvelous Designer plug-in helped me out a ton.
Exporting both the 3D and 2D arrangement garments from Marvelous Designer with the particle distance set to a higher number yielded faster and better results. Putting it to 5 is a bit too dense; 10 was a comfortable number for my computer to handle.
Importing those garments into Maya, selecting the 2D arrangement garment, and using the plug-in to create border curves. These border curves create Maya curves, which will be used to create NURBS. This is very useful because it’s easy to define the number of segments you need in each given curve. Retopologizing this garment into one piece, it needs to have the same number of curves when merging the edges together.
Once that is laid out, the plug-in can transfer these attributes by first selecting the 3D mesh, then the 2D pattern, and finally the retopologized flat polys. While the process of retopology is still quite time-consuming, the benefits are much higher since we also get the flat UVs from Marvelous Designer as well, making the creation of patterns and repeating textures much easier to apply to the mesh.
There is another (free!) plug-in for Maya by Jacopo Ortolani called jQuadCloth that can do it automatically, but the results can vary based on the complexity of the garment. For simpler pieces it’s great, but Marvelous Designer Retopology Toolkit for Maya is the one I used the most. It’s just about having a set of tools that can facilitate the creation process.
Retopology and UV Mapping
The retopology and UV mapping stage can be a time-consuming process. It is both meticulous and monotonous for the fact that the edgeloops need to be placed in the correct place for the mesh to deform and bake correctly. It is an important step and what separates a 3D sculpt from being a game/film asset or a digital sculpt. Each discipline has different steps for optimizing the model, and for games and film, this is a necessary step. I decimated the high-poly sculpt from ZBrush, imported it into Maya, and used Quad Draw and Multicut tools.
The silhouette of the model was the most important to me because I knew this model would be rendered inside of Unreal Engine 5 and, as such, there is no 3-mode or smoothing of the mesh like it is in Maya. If there were jagged edges on the model, it would be very evident in UE5. For presentation purposes, I hovered around 350k total triangles for the character (including his weapons). A game model might have less and be more optimized, but I felt it necessary to get the best quality for presenting my model.
One incredibly useful plugin I use is called Stryx ZBrush/Maya/3Ds Max.
It is practically the same functionality as GoZ, but I found it to be way faster, and when working on an asset with lots of pieces, that time difference can be very helpful to get it done faster. It has extra features of importing and exporting blendshapes from Maya to ZBrush and vice versa using the layer system in ZBrush.
Here I am demonstrating it on the Captain model.
Another plugin that has been very useful is ZWrap for ZBrush.
The coat, for example, had a pretty good base I retopologized for one side. However, when flipping it over to the other side, it was mismatched. Now I could use ZBrush Projection, Maya Shrinkwrap, and QuadDraw Live Surface, but all of those didn’t yield great results. ZWrap is similar in concept but with a different approach of making it more precise with points determining where the geometry should conform. It works super fast, which makes it natural to just try it out and see results and iterate.
Baking
With the topology and UV maps finished, it’s time to move onto the baking process. The bake is where all the work from the previous steps starts to collide and is put to the test. Any errors will be brought to light in this stage, so it’s really a culmination of everything that came before it.
Marmoset Toolbag proved to be the software of choice for baking these normal, AO, and utility maps. Simply because of the tools it offers and how fast it’s able to produce these maps. Substance does a great job at baking, but for my machine, it took significantly longer to produce the same results. Marmoset Toolbag 5 supports UDIM even in its baking, making it pretty versatile in everything you need for this step. You are able to paint offsets in Marmoset Toolbag, which helps a ton when there are discrepancies on the cage.
Texture Painting
The texture painting was done in Substance Painter, importing in the maps baked in Marmoset. Similar to ZBrush, Substance Painter is the program I enjoy working on simply because the tools it offers are intuitive and easy to grasp. There are few barriers to entry, and like any good software, it allows for quick iteration to experiment with all your ideas.
In Maya, I assigned simple materials with proper names corresponding to the texture maps. This was done before importing it into Substance so that the texture set list was correct and I could isolate and work on individual pieces based on the texture map that they would eventually be exported in.
XGen Hair
Unreal Engine 5 supports XGen hair, and the results are pretty great for a real-time renderer! Granted, there are some quirks that are still a bit frustrating. Most notably, when being imported, it needs to be flipped and rotated in order to be placed in the correct position. The community has created free plug-ins to address this issue, which aren’t entirely necessary but help skip that step of changing the settings when importing in the hair. Reza Aarabi’s XGen to Unreal Hair Alembic Script
In order to import it into Unreal, you need to convert the XGen hair into an interactive groom. Then, export that as a cache into Unreal, change the import translation settings, and it should import correctly. In my experience, it’s really fast but depends on the amount of hair you have on your character. I separate each into their own piece: eyebrow, locks, lashes, etc.
Posing the Character
I did the posing of the character inside of ZBrush using the low poly mesh, transpose, and other ZBrush tools and brushes to get it correct. The purpose of posing the character was twofold: in order to better showcase the model and to test and show how much I could deform the mesh. The topology held up, and I was able to get some pretty dynamic poses out of the character. I worked with the built-in mannequin models inside of ZBrush to get a sense of the pose for the character. It’s like the rough draft before committing to moving the actual model. Going back to what Zack Petrock said in that ZBrush Summit about MVPs.
After posing the character, I needed the XGen hair to follow the position of my character. I achieved this by creating blendshapes in Maya, and that’s how I was able to retain the XGen hairs on my posed model.
Unreal Engine 5
Now it was time to get all of the assets I’ve created onto the render engine, Unreal Engine 5. Those assets are all my meshes, textures, and XGen hair. Inside of Unreal, I needed to create the lighting setup and material shaders. Unreal works differently from other render engines like Arnold, but once you know the basics of material inputs and parameters, it becomes pretty intuitive to create your own materials. You create “master“ materials and from those create “instances.” The master material affects all other instances, so you can make broad changes to that and affect all of the instances. A lot of this I learned from research, and one of the best channels for this type of information was JHill’s YouTube channel.
One of the biggest lessons I learned in the process of this project is that iteration is invaluable. This is something that Jason Hill mentions in his videos. Iteration is key.
Laying out my process like this might fool you into thinking it’s all linear, but the reality of it is that I jumped back and forth between programs constantly. They all have to work in tandem to create the final product. That’s why I learned that the final image is what is going to matter and impact the most. This mindset freed me from being too much of a perfectionist and wanting every detail to be perfect. While I still strive for it, I know that not everyone is going to see every single square inch of my model. I need to focus on what is going to be the most important, which for me meant the face and accessories. This is similar to how it works in the industry, from folks I’ve talked to at GDC. Prioritize the hero assets to reach both the level of quality and the deadline.
Conclusion
This project was a lot of fun to do. Sometimes frustrating, but there’s no fun without a good challenge. It gave me a chance to explore new workflows and learn from what I already know. Time always seemed to be against me, but I narrowed it down to a couple of factors that contributed to that being the case.
Collaborating
I should have collaborated with a person who specializes in concept art from the beginning. This is because I believe they would have the eye to understand what works both in the realm of 3D and 2D. When I was designing the character, I honestly just drew what I thought looked cool. Obviously I put thought into the clothing and character backstory design, but as I was translating the 2D to 3D, it wasn’t working in my opinion. It wasn’t shaping up to be the best that I knew I could do. So there were a lot of adjustments and reiterations that I believe worked out for the better but that nevertheless slowed down progress where I should’ve been sculpting, texturing, and rendering.
Learning
I underestimated how much I would have to learn in this project. I feel much more confident in my abilities as a character artist now than I did when first starting this project. This doesn’t mean that I knew nothing; I had years of experience using all the software. I taught ZBrush in Mexico. It was about using all of these softwares together and cohesively. When working in between software, there are small errors that halt your progress that, once you find the solution, become glaringly obvious. Sometimes it has to do with the import settings, some things not being compatible, not working the way you expect them to, etc. All this to say that learning new workflows can be a challenge that I am glad to have overcome because I believe it makes you a better artist.
I learned invaluable lessons from this thesis project, both in how I workflow and in how I refine my creative process. It challenged me to grow as an artist, reinforcing the idea that artistic development is a continuous journey. The best we can do is commit fully, tackle obstacles with determination, and emerge on the other side stronger and more skilled than before.