Hugo Sena has shared the working process behind the Elf Bard project, discussing the workflow on the character's body, outfit, and harp and explaining how the lighting was set up in Unreal Engine 5.
Introduction
Hey, my name is Hugo Sena and I'm a Senior 3D Character Artist. It's funny because I started the whole art path somewhat late at the age of 17. I wanted to be an astrophysicist, then a game reviewer until I learned you could work as a developer.
Skillwise, it's mostly training and taking courses when I have the time and money. I worked on a few projects, from some really indie to a bit bigger. The last published project was Necromunda: Underhive Wars.
The Elf Bard Project
After my last job, I went on a soul-searching path to figure out what kind of style I wanted to pursue and where I wanted to go as a character artist. I have always been inspired by Japanese and Korean character design, so I decided to move in that direction. I went on ArtStation and looked at all the artists with that style that I could find. Then, I looked at the artists those people were following to go even deeper. All in all, I think I saw thousands of designs until I stumbled upon Elf Bard by Thatlight. I immediately fell in love with the character and knew I wanted to model her.
To prepare for this, I first worked on a fan art bust of FFXII Fran to improve the quality of my workflow regarding hair, skin, and lighting.
The Head and Face
For the face, I followed my standard workflow. I started with a sphere instead of a base mesh because I feel it's easier to tailor the face how I want. I spent quite a while getting the style right, especially around the eyes since they are bigger than an average realistic human.
Once I finished the sculpt, I ZWrapped it onto a retopologized head and projected details from an HD sculpt I bought on 3DScanStore. This gave me a good amount of skin details and a good base to start the albedo. From there, I added more details by hand onto the sculpt. However, all the color changes were done later in Substance Painter.
For the eyes, I used Epic's Unreal eyes. Their eye shader is really good and doesn't need much work once you get a feel for it. The only important thing is fitting the eyeball, the tear line mesh, and the Eyeshadow mesh to get the correct look once in-engine.
For the hair, I did a pass in ZBrush to see how it would look and flow. Then, I drew curves on it in Maya and converted them to XGen guides. Afterward, I started working on the haircut using the standard XGen workflow.
The Body, Outfit, and Harp
I knew the body and all the accessories were going to be a challenge. As my personal workflow is always evolving, I wanted to try a new way of doing it. One thing I was sure of since the beginning of the project was that I didn't want to rig her and needed to pose her quite early in the process. This would also require me to sculpt most of everything without symmetry, but that's something I was willing to go with.
The body had a base mesh from which I worked on, so this would take care of retopo and UV from the beginning. I started by working on a T-pose to get far enough that posing it wouldn't be too much of an issue. I also worked on the pants, boots, shirt, sleeves, and collar since they were the "symmetrical" garment in the character.
With all of this done, the concept was posed, and the base attire was on, it was time to start all the accessories. I decimated the model and sent everything to Blender. While the rest of the project was done in Maya, there were two tools in Blender that I knew would help me better. The edge crease option combined with the subdivision modifier would help me model all the hard surface elements in a non-destructive way because I could crease it at different values and instantly see the subdivided result.
The way I did it was to set up the concept as a reference plane and start modeling accessories by essentially tracing them on the concept.
Blender allows for vertex extrusion so it felt like drawing my base shape on top of it, which was great to keep the fidelity of the original concept.
Once I had a plane of the shape of the accessory, I'd add a solidify modifier for thickness and would work a bit on it to correct the perspective issue you can get when tracing from the concept. This looks like a lot of steps, but it felt very natural. The same process was used for most of the harp. The only thing difficult was to determine which shape would be separated, and the shapes hidden by the body.
For the music paper, I used a different trick. I created a Bezier curve in Blender and made a spiral shape. Then, I used the curve option to give an extrude to it, and when I had the look I wanted, I converted it to a mesh.
All of the belts were done in ZBrush using a plane, dynamic subdivision with a thickness, and the bend curve transform. When everything was where it belonged, I collapsed all of it and started working on detailing.
Retopology and Unwrapping for Texturing
Everything was done in Maya. Retopology was a long process since the character had tons of elements. Thankfully, with preparation before going into the high poly, it wasn't too complicated. The head and body were already retopoed and UVed, so this was taken care of already.
Now, the retopologized mesh is not as tight and soundproof as what I would do in production because it was mainly a static portfolio piece, and some of the elements are way too high, which made my polycount skyrocket.
Texturing
As stated before, the eyes are made using Epic's own eye shader, so the only thing I had to tweak was the iris and some of the shader settings.
For the skin, I already had a nice base using the 3D Scan Store model, so I just had to paint some areas I felt needed better care, and then I started working on the makeup. I specifically made it more metallic to help see it better, even though it's pretty much covered by the hair.
The body skin was made by tiling some of the face's skin on it to get the overall color right, and then it was mostly me painting it in Substance 3D Painter.
Textures for the attire were done through trial and error. I always start with a base from the concept color and then add details. I often work by having a different layer for each map.
The hair is an XGen groom imported into Unreal Engine. Most of the color is done by shading in real-time, and it looks awesome even though it's heavy in terms of performance. The shading itself was done using a tutorial by Nick Rutlinh.
Rendering
Rendering was done in Unreal Engine 5. Even though I'm always tempted to go with Arnold and the like, at the end of the day, I'm a game artist, and I want to try to push my work in real-time as far as I can.
I tried a lot of different lighting, but in the end, I stuck with a basic setting of a front light, a rim light, one specifically for the SSS, and an environment map to debunk some of the shadows.
I hardly use any post-processing apart from the depth of field and bloom.
The best way for lighting, in my opinion, is to find real-life references from photographers. If you want to make a cool portrait, you can find tons of incredible photographers out there. Same for full-body shots. Find fashion shots, magazines, and the like. But in the end, it's a lot of trial and error. I would render screenshots one day only to scrap them the next day after some rest.
Main Challenges
The project took me a very long time, close to a year because I was working on it very off and on. I could spend weeks without touching it due to my work/life balance.
The main challenge, in my opinion, was sticking to it until the end. It's easy to get lost or discouraged on a long project, and I'm glad I was able to finish it.
Some advice I could give is: don't worry if it looks bad. It always looks bad at first, for everybody. I always share my WIPs so people can see how the project evolved along the way.
Another piece of advice would be: take your time. It's not a race; it's a marathon. If you plan to work on a character for the rest of your work life, that means you have that much time to also get better. Burning yourself out to try and be the best will only make you tired too fast.