Well, small/medium intuos pro is way cheaper that iPad Pro + pencil... just saying... And it works better with ZBrush...
It might ultimately be proof of concept now, but the point of showing a low-count bounce raytracing that still looks decent especially after denoising gives us a nice roadmap on the future. Maybe given time, we will move to this as the new standard or at least a probable alternate to baked lighting.
Fuck you I'm stuck in some bullshit game some dickhead thought would be exciting.
Ryan Kidd did a nice breakdown of the production process, which he used to build an amazing realistic character.
Hello, my name is Ryan Kidd. I’ve been creating artwork professionally in some form for over 17 years. In recent years I’ve found a creative home as a Character Artist. I enjoy the high technical skill required alongside the inherent artistic element.
I’d like to share some recent R&D work aimed at getting the most realistic game-ready human character possible. Whilst I won’t be going into detail on every section, I will cover the top level of all the stages in achieving this.
The process begins with cleaning the head scan. I purchased this one from Triplegangers.com. If you are going to use scans from this company you will need a standard license of Agisoft, as they only provide those files so you have to export the textures yourself. This workflow ensures the highest possible quality/resolution of texture transfer.
Cleaning the Scan
Export an OBJ from agisoft and import into zbrush. You’ll want to decimate this mesh to around 500k polys to make it easier to clean. Duplicate and dynamesh. (I like to keep an original to reference)
Before we start cleaning, I like to place eyeballs. This helps us anchor the mesh as a lot of work needs doing around the eye area. The eyes should be 2.5cm in diameter (a standard human eyeball).
Use whichever brushes you feel most comfortable with to remove unwanted geometry. I’ve used ‘TrimLasso’ and ‘Flatten’ Brushes. You’ll also want to load the ‘SmoothStronger’ smooth brush. You can find this inside your pixologic folder on your C drive.
Slowly you’ll find yourself getting into finer details, removing eyelashes, fixing ears. Don’t go too far though, as we’ll deal with the really fine stuff on our retopologized mesh.
an acceptable level of cleaning at this stage
Retoplogizing & Sculpting
At this point we want to get some game-ready topology on the go. I like to use Maya’s modelling tool kit, but there are many methods and lots of tutorials out there on how to achieve this. My mesh is about 26k tri’s. Very acceptable for a current gen game.
Import your new topology into Agisoft and build your BaseColour texture, create it as big as you need. 4k ended up being fine for me.
Now Import your topology into Zbrush, subdivide a few times then save a morph target. Project the cleaned scan.
Now we have to start sculpting for real. Lots of areas will need your attention, especially the ears, eyes and mouth. Your artistic abilities will shine through here. It’s these details that will hold the illusion together. There are some very specific areas I’ve found that the scan fails to pick up on – The epicanthic fold, nasal cartilage and the lacrimal caruncle. These are all crucial for a believable human face.
Load your texture and make sure you haven’t went off piste anywhere. None of it should be out of place.
Create a normal map with whichever method you like best. Import everything into Mari (Head & Eyeball geo, BaseColour & Normal map).
In Agisoft locate and export the front facing image of the model, import this into Mari’s image manager. Drop it onto the canvas and try to match up your geo, adjusting the camera FOV to do so. I found I needed a very short FOV. Project the texture onto the eyeballs. This is purely for LookDev purposes.
We’ll now use TexturingXYZ to create pore level detail. There’s lots of great tutorials on their website so we won’t go into detail here. However I find it useful in my workflow to do a rough pass first at a distance, then use that as a guide when I zoom in much closer as to allow Mari’s paint buffer capture as much detail as possible.
Paint out unwanted details, such as eyelashes.
Create a roughness channel, using 0.75 brightness as a starting point.
Create a specular channel also, copying the XYZ texture in here (Tertiary details). We want this to have an overall all feel of 50% grey – the highs should be almost white and the lows as dark as possible without destroying details.
Extra Head Details
We’ll need a few other things before we import into Unreal:
The lacrimal Caruncle. I find it easiest to extract from the eyeball. It’s a good quick way of getting a physically accurate result.
Eye Occlusion Geo & Tearline. Here you can see how i create Geo for these. It’s important for this Geometry to match up with the head for animation purposes.
EyeLashes: I used Ornatrix to create the eyelashes, again there are lots of fantastic learning resources out there for this. One thing to remember about eyelashes is that the top eyelashes start quite far underneath the top eyelid, and point downward, then curl up. This is important for realism.
Before I go into Ornatrix with the eyebrows I like to start with Zbrush and use FibreMesh. Ornatrix doesn’t have collision with other meshes but Fibremesh does. As the eyebrows run flush with the head it’s much easier to start this way. Use the BaseColour to generate an eyebrow mask for your FiberMesh.
In Maya apply the BaseColour to your geo (in your texturing process you should rough out a hair cap).
Select the remaining topology and generate a standard ‘FurBall’ node using Ornatrix.
Every hairstyle will require its own unique approach. In this case I approached almost like a hairdresser. I added a gravity node to pull the hair down, Shortened and trimmed it.
Used the Move brush to pull the hair around. Added Curl & Frizz nodes and did some more styling.
This is a good way of previewing what your hair will look like without messing around with alphas.
From this point you want to adjust the thickness of the strands (Which are planes, not tubes) to represent the style of hair card you want.
Duplicate the Ornatrix Mesh and seperate into 3 layers (inner, middle & Outer). The inner hair will have the thickest alpha, and the outer the finest.
Assembly in Unreal
Most of the hard work has been done. It’s important to keep it simple at this stage. This will allow for effective Look Dev. Unreal comes with preset shaders that will be incredibly useful to you at this stage – Eye, Hair, Skin. Play around with these shaders, try and simplify them if you can. There’s a lot of functionality in them that you might not need at this stage. I found it very useful to scale back the hair shader.
If you’re going to do light colored hair, it’s essential you create an AO texture – heaviest on the inner hair, and at the roots:
Here is my skin shader – there’s nothing fancy going on, just well-constructed basics.
I also find it useful to create different lighting scenarios, indoor, outdoor, night and day. You can also use the sequencer to set up a turntable animation to see how the model interplays with light.
In general, I’d suggest you become confident with sculpting and texturing before you delve into scan material. There’s a lot of subtleties and some things I’ve not had time to cover here, but much of that process should be developed individually and cater to your own tastes that which give your work a personal touch.
Conversely, working with scan material can also inform your sculpting and artistic abilities. Humans are diverse, surprising and fascinating. As digital artists, we’ve only begun to scrape the surface of what’s possible.
Please feel free to contact me through my Artstation profile. I’m currently looking for new opportunities in and around the London area or remote freelance work.
Interview conducted by Kirill Tokarev.