Michael McDonald showed us how he worked on his PEACEBRINGER project in ZBrush, Substance Painter, and Unreal Engine.
In case you missed it
You may find these articles interesting
Hello! My name is Michael McDonald, I am a 3D Artist from Northern Ireland. I am an Environment Artist at Sumo Digital in Sheffield, UK. At work, I specialize in Substance Designer and UE4. In my spare time, I like to explore Character Art! I studied at Teesside University in Middlesbrough, the UK from 2012 to 2015. Recent games I have worked on include Sackboy: A Big Adventure at Sumo Digital, Forza Horizon 4 at Playground Games, and Supermarket Shriek at Billy Goat Entertainment.
My favorite games are Metal Gear Solid 1, The Last of Us Part II, GTA V, and INSIDE!
The Peacemaker Project
One day I was scrolling social media on my phone when I came across an amazing drawing by Sam Keating on Instagram, titled Peace Bringer.
“This would look so cool in 3D!” I thought! I was very excited to get home and start blocking it out in Maya. As a fan of Sci-Fi and Post-Apocalyptic genres, I knew this was going to be a lot of fun. Even the robot’s name gave me goosebumps – Peace Bringer! Awesome!
When starting a new project, I like to use PureRef to gather references. At the center of my PureRef document, I placed Sam Keating’s Peace Bringer. Surrounding it, I added several more images that inspired me.
These included ADAM, Star Wars, Elysium, I am Legend, and some references for bows and quivers.
I wanted to capture a few things when creating Peace Bringer in 3D:
- To feel almost human, like ADAM
- To look like a survivor of an apocalypse, like Robert Neville in "I am Legend"
- To be a bit of a rebel, like the Resistance in Star Wars Rogue One
- To have the toughness of the Star Wars K-2S0 Security Droid.
I used Maya to model the head, chest, legs, bow, quiver, and halo. I like to do a quick and messy first pass starting with a primitive shape and using basic modeling techniques to achieve a blockout, such as extrude, multi-cut, insert edge loop, etc.
Once everything is blocked out, I move onto a second pass where I select groups of polygons and extract them to their own objects. Once separated, I refine them further and develop them into high poly pieces. I do this by carefully bevelling and using smooth/sub-divide preview. At this point, I am entirely focused on creating the high poly.
I try to avoid modeling intricate details into my high poly meshes where I can, I learned a technique from Peter Adamson when working at Billy Goat Entertainment. The technique is to model small details separately and place them a centimeter or so in front of the surface. This way they will not disrupt the polygon flow and will still be rendered during the high poly to low poly bake. This is commonly used for convex objects such as bolts, screws, and rivets but it works nicely as well with concave objects and flat surface detail.
Once I was happy with my high poly and the smooth preview looked good, I sub-divided using smooth mesh and imported it to ZBrush.
Creating the Jacket
The jacket is entirely created inside ZBrush. I have included a breakdown below.
I like to keep things simple and tend to use the same brushes repeatedly – Standard Brush, Move, Clay Build Up, Dam Standard, and Trim Dynamic.
Retopology and UVs
I created the new topology entirely in Maya using the Quad Draw tool – which I love for its simplicity! It was quite tedious, drawing quad after quad, however, this was a nice change of pace in the project. For the non-organic pieces, I already had existing low poly geometry to work with from developing the high poly.
I unwrapped everything in Maya as well. I enjoy making UVs, as the more thought I give this process, the easier my baking and texturing process will be. For the jacket, I deliberately unwrapped the jacket as it would be in real life, splitting UVs along the seams.
It is worth noting that my aim going into this project was to achieve a visually pleasing portfolio piece. I wanted UVs to be unique across the model, even if that meant sacrificing some optimization. If I were to make this character for a game, I would use optimization techniques, such as overlapping UVs, selective symmetry, etc.
I organized my Maya file as seen below. With all low and high poly meshes in place, I exported each group as a separate FBX (Jacket, Legs, Misc, Head). This makes it extremely easy for me to bake using Substance Painter. By selecting Match by Mesh Name, it detects my low poly meshes and high poly meshes and bakes them.
In the following images, you can see the development of my textures. Starting with a base material pass, then a detail pass, and finally a polish pass.
I tend to work with the default materials/smart materials in Substance Painter, mixing and blending them together to create new Smart materials. I rarely create a new Substance Designer material for SP. I simply find that the defaults are so good already, I prefer to develop them inside SP.
Below you can see a breakdown of the jacket and how I have implemented some details:
I think that my knowledge of Substance Designer as an Environment Artist helps me in my approach to materials in Substance Painter. If I can do something in SD, I will look for that feature in SP or the closest equivalent.
Rigging and Animation
My friend and colleague James Drew is a Senior Technical Animator. I would often ask James what he is up to as I find his work quite fascinating. I asked James “How would you create a rig for this character?”. He kindly did a quick paint over as you can see below. This became my rig plan, but first I had to learn the basics.
To get started I followed a great tutorial series on YouTube. The channel is called Academic Phoenix Plus by Monica Cappiello. Once I watched the rigging tutorial playlist. I was able to apply that knowledge to Peace Bringer and create a basic rig, which you can see below.
For the idle animation, I knew I wanted something very subtle. I have animated props in previous jobs and game jams so I had some basic knowledge of using set keys and editing curves. This was the first time I had animated my own custom rig, but I just got stuck in and hoped for the best! I am pleased with what I was able to create.
Rendering and Post-Production
To set up the lighting, I like to start with an empty level. I imported my mesh and began placing dynamic (movable) point lights and spotlights. For this project, I wanted to add a spotlight above the head and another directly above the chest, highlighting my texture work on the jacket. I then moved onto point lights, with a focus on creating a nice highlight behind my character. Below you can see my dynamic lighting setup and more.
As well as this you can see I have added a blue point light to support Peace Bringer’s halo. I wanted to create a hologram material for the halo, to achieve this I followed an awesome tutorial by my friend and colleague Dean Ashford on his YouTube channel.
I made a few personal tweaks, creating input for the World Position Offset to achieve an animated glitch effect that occurs every few seconds. To do this I utilized a gradient curve and curve atlas.
For the post-production, I created one post-process volume, enabled infinite bounds, and tweaked the following settings. I also turned off auto exposure in project settings.
Finally, I used the sequencer to create my renders for ArtStation. This was a lot of fun.
- Setting my idle animation to looping, extending it along the timeline .
- Setting keys for camera movements and adjust the curves for each camera.
- Adding camera cuts and fade transitions.
To render different passes, I edited the level blueprint to perform console commands on play:
And that concludes my project breakdown! I would like to say thank you so much for the interview, it has been an absolute pleasure. I hope this breakdown helps or inspires someone on their project!
P.S. Thank you to all the amazing people who took the time to teach me a thing or two along the way!
You may find these articles interesting