Commuter – Character Breakdown – Jake Roddis
Hello! My name is Jake Roddis and I’m a Senior 3D Character artist based in the UK. I’ve worked in the games industry, for about 6 years, on titles such as Dead Island 2 and Homefront the Revolution (DLC). I’m currently working on Predecessor at Omeda studios.
I always try to have a personal project on the backburner. Whilst these projects don’t always reach the finish line, they allow me to be creative and innovative, giving me the freedom I don’t always have in my professional work.
The Project and goals
As projects tend to, this one started small. My original goal was to make a denim jacket in Marvellous Designer as a study and it developed into a full character over time. As such, the project never really went through that initial blockout of the whole character and instead expanded and grew.
My main goal was to consolidate my clothing skills and improve my face sculpting knowledge all while creating a portfolio piece.
The project started with me gathering references and inspiration in Pureref. I decided on doing a fur-lined jacket as I thought the fur could be a fun rendering challenge. A lot of the looks I gathered here later inspired the overall character.
I started by roughly blocking in the shape of the jacket in Marvellous, using an adjusted shirt pattern. I Then split this up into the respective panels following my reference. I manipulated this mesh at a high particle distance to fit properly and to get the folds to look the way I wanted to.
Once I was happy with it, I simulated the mesh at a low particle distance and exported it to ZBrush. I always aim to get about 80% of the garment done on the marvellous side. It’s easy to adjust things like the overall fit and the seams and details etc, in ZBrush but I always try to get the folds to 100% in MD. I tend to avoid being too precious over the UVs that MD gives you and usually rely on Zremesher + UV master in ZBrush to give me some workable topology.
Once I had the garment with good topology and UVs in ZBrush, I adjusted it slightly to fit, gave it thickness using panel loops and added all the seam details. For the fur, I created shells from the existing panels of the jacket and gave them UVs using UVmaster. I used a tiling mega scans texture for the base level of the fur, this gave me a strong base to build the fur onto and gave me something to generate masks from down the line. I modelled the buttons using Zmodeller and added stitching using a custom IMM.
TIP: As MD garments can end up looking a little bit clean (especially for a denim jacket in this case), I try to break up the surface a bit using alpha 61. I used the dragrect stroke type at a low intensity and follow perpendicular to the seams.
For the rest of the outfit, I followed a similar workflow of marvelous to ZBrush for detailing.
TIP: If you want to add more detail folds in MD, You can use the right-click > layer clone over function and increase the weft and warp of the top layer by a couple of threads. This only works on low particle distance clothing. You can also freeze the lower layer if you want to completely preserve your major folds. Bear in mind that this will increase the overall thickness of your folds
For detailing the skin and hands I used one of the animation ready scans off of 3D scan store, I wrapped this to my sculpt using wrap 3 following this tutorial from 3d scan store’s James Busby: https://www.youtube.com/watch?v=qi6IVtIrLC0&ab_channel=3DScanStore
For the hair, I used Xgen to generate the cards themselves. When building a hairstyle I try to focus on a base layer of dense cards first, followed by a breakup layer and fly-away hairs.
The important thing was to have a variety of densities, clumping and cuts. I usually make the cards as I need them for each layer. From this, I baked out Opacity, root to tip, ID and a height map.
I placed the cards by hand in Maya. At first, I try to establish the overall look/flow of the style, using joint chains and skinning the cards to them. You get to a point where you cant have hundreds of skinned cards so you have to commit to the style and then go in and polish it by hand.
TIP: When generating hair for baking try adding curvature to the base plane, this allows for more variation in the hair strands you generate. This helps blend the hair into the head at the root in a more natural way.
Rendering + Lighting
I always like to get the character into Unreal as soon as it’s possible to do so. I find it really helps show how the project is coming together under some actual lighting with materials etc.
I always find it helpful to see the face outside of Zbrush too, as the perspective can be a little wonky compared to in engine.
For this project I used the Metahuman example scene, It already had solid lighting set up. I later adjusted and added to this to render out the full character.
I used the meta-human Skin and eye shader and a tweaked hair shader from Epics paragon demo. I simplified the meta-human skin shader, cutting out any of the wrinkle map functions and compressing the masks into a single texture. For the glass shader, I used this for the basic set up: https://vrayschool.com/ue4-archviz-glass-material/
For the fur on the jacket, I duplicated the base layer upwards a few times, creating shells that stack above the base layer. I created an alpha mask from the base fur texture and duplicated the material to create a subsurface version of it that included alpha mask dithering.
When I first got the character into UE4, I found that the face wasn’t looking right. This was also the first time seeing it with hair too, hair can drastically affect the face. So I went back and forth between Zbrush to improve it.
I updated the face and was much happier with it overall. I also added the glasses and earrings and I could start to see more of her personality come through.
I wasn’t too happy with the overall fit of some of the clothing so I adjusted that when making the shirt and trousers past the blockout stage.
This was the first time getting the full character in engine. I was quite happy with the result, the only thing that stood out to me was the denim jacket was a bit lacking in the texture department.
Initially, I went for black trousers but it wasn’t really hitting the mark for me. So I played around with the colour composition, looking at my ref board, I chose yellow for the trousers as it’s quite striking and is complementary to the blue of the jacket. I pushed the overall saturation of the character quite a bit to help make it pop.
I updated the jacket textures using an alpha I derived from a photo of a denim seam, from this I projected it onto the mesh in substance painter and generated colour and height from it. Tip: Keep your projects organised and backed up! Between the start and end of this project, I had a catastrophic hard drive failure but luckily I had backed up the essential parts. I did lose some source files like the MD file for the jacket.
I felt the character was lacking something, so I decided to make a couple of accessories for her – a backpack and glasses. A lot of the references that I gathered initially were candid shots of people in the street and generally they had a bag of some sort and a lot were wearing sunglasses. I did initially experiment with tinted sunglasses but found I preferred normal glasses in the end – as tinted covered up a lot of the face.
I modelled the glasses using Zmodeller and a few simple screw IMM brushes for the hinges, I have been using ZModeller more and more recently as it is way more flexible and fast compared to Maya/Max. The glasses helped create more material contrast, as the character was quite matte – this really helps draw your attention to the face.
Tip: For the glass in the glasses, I find that it’s worth modelling as much of the curvature in the lowpoly as you can as I found this to produce nicer reflections in engine.
When modelling the backpack, my usual approach would be to model it in ZBrush and sculpt all the fold details but this time I wanted to challenge myself and use MD to make it.
I started by laying out the pattern. I froze the back panel in place and simulated the rest around it, I did this initially off-model for simplicity. I broke up the panels and added as much detail as I could and then I used the previously mentioned layer clone to help create some secondary folds. I imported the lowpoly of the full character, positioned the backpack and simulated the strap around the shoulder.
Tip: To help fill out the backpack, I created two panels, set them to layer -1, stitched them together and inflated them using the pressure slider. This stopped the bag from collapsing in on itself and makes it feel like the bag has something inside it.
Overall I am happy with the finished result, I learned a lot and I am glad to actually get a personal project to the finish line. I am especially happy with how the hair and face turned out with this project and feel the overall character came together quite nicely in the end, to say that the project itself was a little chaotic.
I think the biggest success of this process was getting the character into Unreal as soon as possible. It really highlighted what was and wasn’t working. I will definitely be carrying this forward to future projects.
Thanks for taking the time to read the breakdown of my project. If you have any specific questions, feel free to reach out to me on Artstation and I will do my best to answer them!