Hello people.
I'm currently doing an MA in Games Art and Design in the University of Hertfordshire. At the start of the year we did a bunch of week long projects. The aim was not to produce game-ready assets, but just to explore ideas and techniques. Now we have eight weeks to fully develop two of those ideas (two four-week projects).
This was my output of one of those short projects. I'm going to make some modifications to this and hopefully by the end, present it in UE4.
Here is the slightly adjusted concept. I'm going to have a more modern balloon (no netting) and I'll tone down the colours. I'll abandon the idea of the top of the envelope mophing into the top of his head. The cut line of the head has been moved up and I did away with the brains inside the skull - too body horror. Instead I'm trying to go for a slightly psychedelic vibe, but I don't want it to look cartoonishly colourful either.
Replies
I continuing with the details on the capsule. yesterday I did the small bag and the crate hanging off the side. I used Marvelous Designer for the bag and retopologised it inside 3ds Max. This is a very straight forward process for the parts that are made from rectangular patterns, though the more complex the pattern, the more likely it that I need to manually clean it.
I did the high poly envelope too, and the rigging that suspends the capsule. Since I had 32 cables connecting the envelope to the frame, it started to look a bit silly that four cables of the same diamter could hold the capsule under the frame. So I replace the four cables with thick straps instead. These are modeled with splines and the surface modifier – so effectively they’re patch geometry, not renderable splines.
Today I did the gigantic duffle bag using Marvelous Designer. I sculpted a super simple cuboid blob as the inside to give it some shape, then made the patterns.
I used the same workflow that I did for the small bag, where I imported both the simulated mesh and the flat patterns into Max, created a morph target, then created a plane and used the skin wrap modifier.
I have to ask myself is it really worth the time spent retoplogising to get perfect quads though. I have to manually weld the seams, and make sure that each panel has matching topology – which is easy enough for a duffle bag, but would be a lot more tedious on a character’s clothing.
The only advantage to this process is that I know I’ll have a completely watertight mesh at the end of it, that I can export to Zbrush for further sculpting. However I’m not sure I need a watertight mesh for the high poly. I think next time I’ll try using Zremesher. With careful use of morph targets I should be able to avoid obvious cracks between the panels.
For the straps, my plan was to use Zbrush surface noise to apply a pattern. Which meant that I needed UVs. Unfortunately half way through the retopology of the straps I changed my technique for creating the planes – instead of creating a new plane from scratch and subdividing it (thereby generating UVs with the parametric geometry) I cloned the triangulated pattern, deleted all the vertices but the corner ones, then created a new quad from those remaining vertices and then subdividing. At the time I thought it allowed me to work quicker, but I didn’t realise that by creating a polygon rather than a plane, that polygon would not have UVs. So half my straps were UV-less and I didn’t realise until I imported it into Zbrush.
I placed the bag in the scene in Max and then used splines to create the rope. I tied a bowline knot (it’s as tedious as it sounds) at each end of the rope. With the rope in place I exported both the bag, the rope, and the capsule to Zbrush to sculpt the wrinkles on the bag where the rope cuts into it.
Today I did the head. I had already laid the ground work during the week long project so it was a question of retopologising the mesh, then breaking the symmetry and subdividing a bit more to add the last few layers of detail. I changed the topology of the base mesh in Max (removed the top of the head, the neck and shoulders, patched the holes and improved the edgeflow around the ear and eyelid). Then I jumped to Wrap4D to confrom it to the sculpt. I recycled the teeth from a previous project.
This is the first time I’m actually happy with the result of sculpting high frequency detail using alphas and custom brushes. In the project “Memories and Nostalgia” I did a few weeks ago I had some difficulty dealing with the different scales of detail and the different skin features on the various regions of the face. This face is younger which made it easier, but I also finally figured out how to really control the application of the alpha onto the mesh. I have to say the Zbrush interface is fairly backward – I have to adjust settings in three different menus (alpha, brush and stroke) to get the result I want.
I spent all weekend doing the retopology of the pilot. It's my first time in years (and second time overall) doing topology for a full figure. It turns out that 3ds Max does in fact have pretty good topology tools that I didn't know about - they're hidden in another part of the interface.
I made a few errors during this process. Firstly, the head mesh and the body mesh were subdivided once before I combined them at the neck. Somewhere at the neck I've introduced an uneven number of loops which means that the combined mesh cannot be reconstructed to a lower subD level. This is fine for the head (which needs the extra polygons to support facial animation) but the polycount is a bit high for the body. The polycount is 54,000 for the entire mesh. I have to press on with this project so I'll leave it for now. I could come in later and manually remove some loops - especially around the back. But before I use this as a base mesh for another project I should find and eliminate the extra loop that is preventing it from reconstructing.
I also wasted a lot of time on the fingers drawing in the individual vertices. They kept projecting onto the wrong finger because of the porximity of the digits to each other. For the toes, I created low poly cylinders as a base and hid the other toes on the high poly, then used the relax tool which projected the low poly onto the high poly surface. It took a fraction of the time to complete.
Another mistake I made (mainly on the torso) was to start at the neck and work down across the whole body from there. Instead I should have started at the hands and feet, then done key areas like the crotch, shoulders, armpits, knees and elbows and bridged the gaps. Then I could add the loops and relax/project the vertices onto the high poly. This strategy would have allowed me to conform the topology to the underlying anatomy more - although given that this guy isn't exactly jacked, it's not that big a deal in this case.
His jacket is based on my own denim jacket. Not knowing anything about tailoring clothes, I took a measuring tape to my jacket and recreated the patterns in Marvelous Designer. I'm fairly sure I got the measurements okay, but they're not perfect. I had to do a lot of adjusting to get the jacket to (sort of) fit.
I quadrangulated the mesh in MD and I exported it as one object with the weld option selected. This gives me a continuous mesh in Zbrush. The "autogroups with UV" function goes most of the way to getting perfect polygroups (I have to do a small bit of manual selection). The topology is fine for sculpting but wouldn't suffice for animation.
I found a pattern online for the trousers but the crotch area still needs some work. I might actually just measure my own jeans and use that as a base. But I'm also conscious of how much time I have left for this project. I want to finish it by December 15th. So considering that the character will be visible from the waist up, I might just leave the pants as they are.
I’m now thinking that I bit off a lot more than I could chew when I started this project. My original goal of having all the assets in UE4, ready for rendering, looks far off at the moment. I think that the best strategic decision right now would be to accept that it won’t be ready by my self-imposed deadline of December 15th, so I won’t rush to finish it. Instead I’ll concentrate on getting all the low poly assets UVed and baked, so that when I come back to this project in the future all the low poly assets are ready for painting in Substance Painter. Stopping the work at a clearly defined step (between baking and painting) will make it much easier to start working with when I come back to it, rather than having different assets at different stages of readiness.
Since the project is my first time doing high to low retopology on organic meshes, I’m still experimenting with ways of making this process more efficient. For the teeth I manually drew the quads over the high poly using the quad drawing tools in Max. This took me well over an hour to do. As an alternative I applied the ProOptimiser modifier to the high poly in Max and dialled in an appropriate level of vertex culling. This modifier does the same thing as Decimation Master in Zbrush, but because it deals with lower polygon meshes (typically less than one million) I can use it interactively. Then I welded the vertices on the inside with a high threshold, since this area will be invisible. Finally I unwrapped the mesh. This process took about ten minutes.
I also discovered something that will make the Solidworks -> Max workflow much smoother in the future. I had long wondered why the low resolution mesh output from the NURBS object didn’t have shading artefacts on the surface, even though they contain long thin triangles on curved surfaces – exactly the kind of mesh one tries to avoid when poly-modeling. It turns out that the vertex normals are adjusted away from the true normal to avoid these artefacts. I had noticed in the past that sometimes the artefacts would randomly appear as I was working on the mesh (after converting it to an editable poly object). These artefacts must have appeared after I did some operation that would have reset the normal to its true value (such as welding two vertices).
The Edit Normals modifier allows me to select individual normals to manually adjust them if I need to. So now that I know the mechanism behind this problem, I have a lot more control and will no longer rely on crossing my fingers and hoping it doesn’t happen.
I’ve reached the appropriate point to put this project on the backburner for a while. All the assets are unwrapped and baked, and are in Substance Painter. When I return to this, the only program I should have to open is SP, and I can start painting immediately. The screenshots below show how I’ve split the meshes into eight different texture sets (that’s eight including the three sets for the pilot – body, face and clothes).
Fig 01: the envelope, the hatch and the capsule accessories
Some of these elements will be cloned after painting, such as the cables suspended from the envelope (I’ll paint 1/32), their sheaths (8/32), the straps from the frame to the capsule (1/4), the burners (1/2) and a few other bits and bobs.
Fig 02: the crate, the pilot (composed of three texture sets) and the floating head
Getting an even texel density across all these meshes is a challenge considering the enormous difference in scale. The evelope occuplies the vast majority of its UV map. My rationale here is that I can use a low texel density and combine this with tiled textures in the UE4 material editor to material that looks good close up. The other elements that share this UV map are the cables and their sheaths – these are very narrow objects that won’t demand much resolution, but if they do I can use the same strategy of layering tiled textures as I do on the envelope.
I would like to try – if I ever get the time – to use a no-UVs approach for the capsule itself. So I would build a material with tri-planar projections in the UE4 material editor. I’m thinking of combining this with strips of floating geometry along the seams where the segments are welded together.
I’m having a minor headache with baking one of the assets. Whenever I bake in Substance Painter, I get artefacts on some of the surfaces. However when I use the Marmoset Toolbag baker, I get a clean result.
Fig 03: artefacts from the Substance Painter baker visible in moving light
Fig 04: Marmoset’s clean result
I can’t explicitly control the tangent basis in Substance Painter, but from reading online, I’m told it uses Mikk – which is the same as UE4. In Marmoset I can choose the basis, but even if I bake in MT with Mikk tanget basis and export that to SP, I still get artefacts. On the other hand, if I bake in SP and export that map to MT, I get a clean result. So I can’t figure out why I’m getting errors just in SP and just for this asset.