Beccy Collins did a breakdown of her hand-painted Ysera, one of the Dragon Aspects in the World of Warcraft universe, sculpted in ZBrush and animated in UE4.
In case you missed it
You might find these articles interesting
Hi there! My name is Beccy, I’m from the UK and I’m currently in my final year at Staffordshire University studying (BSc) Computer Games Design with a focus on 3D Character Art (and a love for stylized things!).
Since I was young I loved to play games and piqued an interest to actually want to be a part of a team that makes them. One of my biggest inspirations for wanting to make game art is World of Warcraft! I grew up playing the game and always loved the style and look of it. When I saw that there were University courses teaching about making games I jumped at the chance and was lucky enough to be able to go to Staffordshire University!
It was around a year ago when I made my first stylized character; I was in my second year at uni and had an assignment to make one. I fell in love with the process and knew at that point that I wanted to focus on making stylized characters! My partner is also a Character Artist and we are always learning and bouncing ideas off each other which is super helpful.
Ysera The Awakened Project
My goal for this project was to do a sort of “Re-vamp” of a character from WoW that hadn’t been done in a while. Ysera’s dragon model was put in the game around 2008 and hadn’t been changed since, so I thought it would be fun to remake her with a higher poly count and texture size, while still sticking to her original look and keeping her game ready. I chose Ysera as a character to re-create simply because I like dragons and I love hand painting models!
I started the project by collecting lots of references. I took in-game screenshots of Ysera, other dragons, and characters and also looked at Warcraft concept art. I studied more “realistic” looking dragons to get a better understanding of how their anatomy might look too.
I then moved into ZBrush where I gave myself an art test to sculpt and complete just the head, to get a sense of the techniques I needed to use and to really nail the Warcraft art style before moving on to the character as a whole project. I made sure to keep checking my reference and I was lucky in that there is already an existing older 3D model that can be used as a reference too. I often used Wowhead, a WoW info site that has a model viewer, so I could easily see her in-game 3D model. It helped a lot with making sure she looked right from every angle throughout the project.
To start with the overall body shape I used ZShperes. This allowed me to get a basic blockout in ZBrush and have flexibility in changing proportions or limb positions if needed.
I turned this into a mesh and pushed parts around with the Move brush to make it more accurate to my Ysera reference. I then used the ClayTubes brush to help build up the shape and forms for the underlying structure of the character and its larger muscle groups and used the DamStandard brush to cut in any major details. I kept the head and body separate the whole time and just hid the seam under the scales and in the creases on the underside.
For the scales, I initially planned to use an Insert mesh brush so that I could just draw each scale on. However, this wasn’t placing the scales exactly how I wanted, so I ended up making one scale, duplicating it, and placing each individually! It took me a couple of days but I liked the end result. I also used this method for the big scales along her back, they didn’t take so long but they did require me to sculpt some details into them too.
For the wings, I started by appending in a cube, scaling it to be very thin, then used the Move brush to get it the right shape. To get the holes in, I used ZBrush’s Boolean tool. Here’s the wing before and after:
This works by placing a mesh that intersects with your model and using the “Live Boolean“ button to see how the hole(s) will turn out. When you are happy with the result, press “Make Boolean Mesh”. This will apply the Booleans to a new mesh and you can append in that new mesh with holes included. Here’s another example where I used them for the crown, and you can see the shapes I used to cut out areas. I love using Booleans and I use them in most of my projects as you can get such nice clean details easily!
When sculpting parts like the armor, I began with a basic shape like a cube or cylinder. I used Move and DamStandard to get the major shapes and Orb_Cracks from the Orbs brush pack to cut in/draw out more details as it can create some nice chunky stylized cuts and shapes.
For the curly decorative parts on the armor, I masked out the general shape I wanted and then used Extract to create a new sub tool in that shape. I used the Hpolish brush a lot to finish it off.
The last part I made was the wooden vines that go around her legs and tail. I did a bit of screen-recording for this part. Here’s a sped-up video of me creating them!
I used the Orb_Cracks brush a lot to add detail in this project, including: on the underside pattern, between the face scales, for armor details, for cracks in the horns + back scales, and the teeth. I would highly recommend grabbing the Orbs Brush pack by Michael Vicente, especially for any stylized pieces. It has a lot of other useful brushes in it too and it’s free!
For the claws and wooden vines, I used the Rake brush on a very low intensity. I often use this brush when trying to create a pattern with a grain in it.
Another useful tool I like to use is TrimCurve, you can select it in the brush menu. I used this to create the shapes and little cuts in the fins.
Overall, my general workflow in ZBrush is to block a body out with Zspheres, then use separate sub tools for extra parts like armor so it’s easier to deal with, either by appending in generic shapes or extracting shapes from the body.
To make sure the silhouette is good from multiple angles, I would often take screenshots of my model and overlay it in Photoshop with my main reference to compare. This can be difficult sometimes as the reference can be posed, although I think it’s still useful to be able to see some of the differences.
I also posted WIPs along the way to get feedback from my lecturers and online communities such as the Experience Points Discord and Polycount. Feedback is always super important to improve your work!
My aim was 15k tris for this model, and I managed to hit exactly 15k… how satisfying!
I started by exporting my high poly out of ZBrush keeping all the parts separate and naming them accordingly, as later I used Substance Designer to bake using the “Bake by mesh name” method.
Normally, before I export sub-tools, I decimate the model slightly to reduce the poly count (but not so much that it loses detail), this helps it run better in 3ds Max!
Once the high poly was in 3ds Max I started on the face, concentrating on getting the animation loops in around the eye, nose, mouth, etc.
To do this I used Step Build:
- Once the main loops are set out, I connected it all up to complete the face topology (animation loops are important for a game-ready character as they help the body to deform correctly when animated).
- For the body, I tend to work with cylinder primitives and shape them to the high poly. For example, the body is a cylindrical shape and so are the legs and tail. Using Step Build for this would work fine but would be time-consuming so it’s much better to try to work efficiently.
- I then added animation loops in around the legs after with Swift Loop or the Cut Tool.
- To help with the shape of the topology I will often use the Conform Tool to make sure it matches up to the high poly.
- As this character has a very clear line of symmetry down its center, I only re-topped half of the model, then applied a Symmetry Modifier to save time having to retop all of it and check if the retop was correctly fitting the whole of the high poly mesh.
Here’s how my retop looks near the start (she does look silly here):
I recorded some of the progress of retopping as well. There is a part 2 on Youtube as well where I finish the retop but this generally shows how I work (I’d say it’s a bit boring to watch but I made it anyway to show my process):
Once retop was done, I got rid of the symmetry modifier so that only half of my mesh was left. As this model has almost everything symmetrical, I can be very efficient with the UVs by using symmetry again after unwrapping. I only have to unwrap half of my model, and it will share the texture with the other side!
Here is how my Unwrap looks like. I mostly used the Relax and Pelt tools and also Peel mode with pins to straighten any pesky UV islands out and then hand-placed each island to where I thought it fit best.
The shape of this model and the seam down the middle makes it very easy to unwrap. For example, the head + neck is one big UV island (top left) and under that, there is the rest of the whole main body + tail. I actually got the idea of this from how Blizzard unwrapped their Ysera model. It creates fewer seams and makes it easy to texture!
I think my favorite unwrap tool is Peel mode with pins, you can really straighten out awkward shapes with this.
When hand-painting a model, I like to start with a base that I create from my bakes.
I tend to use Substance Designer to bake just because I like the way the maps turn out there. Here are the maps I use for hand-painted models (opacity if I need to mask parts out in UE4):
Then I can take these into Photoshop and do the following to create a greyscale base. One of my lecturers showed us this method and I think it gives a pretty good result:
- First, I’ll take the Green channel from the bent normal map and paste it as the first layer, this has lighting detail from the top of the model.
- Next, I add the AO in as a Multiply layer, this helps define darker areas.
- Sometimes I add in a Mid Grey fill Multiply layer to help tone down the contrast if it’s too intense.
- Then over that is the Curvature as a Hard Light layer. I tend to put this on a lower Opacity depending on how intense I want it to show through. This one was on 25% Opacity.
- Finally, I make a Cavity map using the X-Normals plugin on my Normal Map and put this on top as Hard Light at about 50%. The Cavity map helps define highlights on edges (you don’t need the X-Normal plugin to make a Cavity map, it just makes it a bit quicker to produce).
- This creates a greyscale base for me, and I can use Gradient maps to add color. I make use of masking here to add separate colors to different parts.
This is just one way that works for me. There are a lot of different ways and you can overlay certain maps to get cool effects!
Once I have the base colors in, I can get into hand-painting! The base really helps me because I know where I should be painting lighter and darker values.
I tend to move into 3D Coat to do a lot of this as I find it easier to paint onto a 3D model there. I think one of the main tricks with hand-painting in this style is to push the color values and contrast, and then do that some more! This will really help make your model “pop”. I always have to do multiple passes with painting color and light/dark values to get it right.
Rig + Animation
As a character artist, I love to rig my models so I can get some nice final renders with poses and sometimes with an animation like this! I wouldn’t call myself an animator, I just like to do a little for fun on the side.
I made the rig with 3ds Max’s CAT rig.
For some of the bones, I like to put an “Edit Poly” modifier on top of the modifier stack so I can change the shape a bit for more accurate fitting. Once you have made the change you can collapse the edit poly back down onto the “object”. For example, I did this to the head as it just helps visualize how things should look when making an animation.
To skin the mesh I started by using the Voxel solver, and then went in and hand-painted the weighting on anything that didn’t skin how I wanted.
When it came around to animating the dragon I started with a more subtle animation, but after some feedback, I gave it much larger movements. I kept getting feedback on my animation and made lots of changes, here’s one example of iterations I made.
You can see how it started as a much more chilled animation and how it looks like when finished:
When I make an animation, I like to set up my start/end pose first. Next, I will start to add in keys for the major movements like on the hips or shoulders. Once I am happy with those movements I will start to add keys for the limbs and smaller details. Following the 12 Principles of Animation is a great way to make sure movements look organic and flow nicely, I would definitely recommend looking into those if you want to do animation!
Overall, I spent around 3 days doing the animation, constantly making iterations to improve it.
To make the Fire Effect I used Niagara in UE4. I had never tried it before so I wanted to give it a go and with the help of some tutorials, I managed to do so!
I made the movement of the fire in Niagara and used Photoshop to create the texture for the fire. The color of the fire was done in the Niagara editor, so it was easy to switch between colors and make it green. The texture was very simple and this helped me keep that stylized look.
I started with an Upward Mesh Burst Niagara emitter and changed the settings within this template.
Next was the challenge of getting a Niagara Particle system to play at a certain point in an animation. My partner with his blueprint knowledge helped me a lot here, and I also used some useful tutorials online!
With Cascade, you simply add in a Particle Effect Notify but with Niagara, I had to do some blueprinting to get it to work.
This is basically creating a custom Notify which allowed me to call the Niagara fire effect. Here I have added it to my animation at the correct timing.
I used UE4 to set up my final renders because I think it’s great to get used to setting up game-ready models in a game engine and you can do so much in it! (And it’s free!). It can get quite technical but it’s useful to understand it. I started using Unreal since I joined university, so I’m quite comfortable in it now. I’d also love to try Marmoset Toolbag for beauty renders as I have heard great things about it.
Usually, in UE4, I'll set up 3 point lighting for a character however for hand-painted models with a Diffuse only I tend to go very simple, mostly using just self-illuminating material. I set up one light behind the model with a light blue tone as a sort of Rim Light.
Then I’ll set up a Post Processing Volume to play around with the overall look of the environment. I tend to add a Vignette here and I always make sure I cap the exposure Min and Max to 1 so my renders stay consistent.
Thanks for reading, and I hope you found this useful!