Forums   Articles   Events
SEARCH:
LOGIN:
Register Register Register Contact Us
Go Back   Game Artist Forums > Articles
Register FAQForum Rules Members List Calendar Mark Forums Read
 
   About Author

benclark
Industry Artist
Articles: 3
Votes: 4, Points: 19
Rating: 4.75/5
   Latest Review
»   
Thanks for sharing! I found your tips and workflow to be very effective in my work as a texture artist. Your tutorial was enjoyable and easy to read. I'll keep my eyes peeled for more!
Posted on 09-12-2007 by latinmessiah

   Member's Menu

   Making of The Giant
You don't have permission for this action You don't have permission for this action You don't have permission for this action You don't have permission for this action You don't have permission for this action You don't have permission for this action
   Full Article

 The Making of the Giant

This article will take you through the various stages I used to create Keith Thompson's Giant character, from initial setup and block-in all the way through to final renders in Unreal3 engine.

I am still very much learning this whole process, this isn't necessarily the best way to do this, it just what worked for me on this project.

I won't be covering the steps in detail but this should help to explain my workflow and the reasons for some of the decisions I made along the way. This article assumes that you have a decent grasp on modeling and texturing. I have always wanted to document this process from start to finish and I hope it helps some people.

My workflow for this model was...

I prefer to build a quick and messy block-in mesh first. This is because I find it a lot easier to get the topology looking good with a retopology pass. It also allows you to make design changes as you progress with your model and not be bound by the shape and topology of a low poly mesh created earlier.

The drawback to this workflow used to be that you end up with a high res model that doesn't have UVs assigned to it. The transfer UV's tool introduced in Maya 8 now solves this problem by allowing you to copy you low res UV coordinates onto you high res mesh

 


BLOCKING IN

The initial block-in mesh is a quick and rough shape that will be used as the base mesh for the high resolution sculpt in Zbrush. I am not too concerned at this stage with creating an animateable topology, but just getting the basic shape modeled. The Zbrush pass is the stage of modeling I enjoy the most so I never want to spend too much time on the block-in.

I tried to build the block-in mesh as evenly spaced quads if possible, to help keep even poly distribution when I start subdividing in Zbrush. I don't really worry too much about single triangles dotted around the mesh. If you download the ActivePolySmooth script (from Highend3d or 3dbe.com) then you can check at the touch of a button if your mesh is going to have any problems with pinching when it is subdivided.

I started with the sections that would be taken into Zbrush for sculpting, using poly-by-poly modeling. I never really got my head around box modeling and I find this method is much quicker. The first stage is blocking in the strips that will define the shape of the body, hands and legs, paying close attention to the reference images...

- I try to keep things as simple as possible at this stage. Just follow the front and side views to define the strips. This gives me a basic cage. from here it is just a case of extruding new polygons and joining up the various strips to create a whole shell

- The hands and feet have more topology modeled into them at this stage than the rest of the character. I find it much easier to sculpt the tendons of the feet and hands if you have edges defining their flow.

- I always prefer to block in the arms using primitive cylinders so I do this last and join them up with the strips already in place for the shoulders and chest.

After I joined up the various strips and tweaked the mesh I end up with this....

The block-in of the rest of the model is very simple. The wooden planks, cannon and armour are all just modeled from primitive shapes then moved scaled a rotated into position and hidden for later. There is no need for a retopology pass on these parts so I made these hard surface parts as accurate as I could at this stage....

The last stage of the blocking process is to decide how to split the mesh up into smaller workable chunks for sculpting and baking maps. As I was going to be baking my maps in Maya I had to split the mesh into small sections so the final sculpted parts wouldn't be too high-poly for Maya to handle

Thinking about where I could hide the seams in the model played a big part in my decision of how to split the mesh.

- The large collar could be used to hide a seam between the neck and body geometry so I could make the head a separate mesh.

- Also the cloth on the arms would allow me to hide a seam between the hands and the arms - this allowed me to make the hands a separate mesh too

here is how I split the mesh up....

Finally I exported all these parts as separate .OBJ files, using the following export options....

the materials "off" option isn't really a big deal, but this way it saves having a separate .MTL file for every section you export.

 


HI RES MESH

ORGANIC SECTIONS

All the high res modeling for the organic sections of this model was done in Zbrush3. The high res hard surface parts were modeled in Maya. There are hundred of excellent sculpting tutorials available for Zbrush online, so I will focus on how I imported and prepared each part of the model for sculpting.

1. Open Zbrush. Press the import button and load up one of your OBJ exports. Drag it out onto the canvas and press 'T' to go into Edit Mode

2. In the tool menu I collapse the 'MORPH TARGET' submenu and click on 'StoreMT'

3. In the geometry submenu I then divide the mesh a couple of levels with the smooth modifier turned ON. You will notice that the mesh loses quite a lot of volume from the subdividing process

4. Finally, slide the SDiv slider back down to the first level, and in the MORPH TARGET submenu hit the "SWITCH" button

5. Now when you slide the SDiv slider back up to 3 you will notice that the original volume and shape has been returned to the subdivided mesh. You are now ready to sculpt!

When I'm sculpting I only really use the Elastic Brush, Inflate Brush and Smooth. The Elastic brush adds volume to the mesh while maintaining all the previously sculpted details underneath which I find more intuitive to work with than the Standard Brush.

For me, the best results come when sculpting at very low Zintensity. I rarely go above 20 intensity. Gradually building up low intensity strokes on your mesh helps to avoid puffiness that you see in a lot of Zbrush models

A lot of sculpting tutorials online start with a tweaking pass where the major forms are moved around until all the proportions are correct. In this instance I had already built the base mesh to be as close to the intended shape as possible so a tweaking pass wasn't nessecary.

While sculpting I think it is very important to get the absolute maximum detail from every level before subdividing again. I usually get to a point where I think its time to subdivide, then set a timer for 1hour and force myself to work on the existing level for that extra hour. This also helps to avoid the dreaded Zbrush puffiness.

Once the sculpts were finished I exported each section into a folder as an individual .OBJ file.

The imported head and hand sections and resulting sculpts through 5 levels of subdivision......

Once all the separate sections were sculpted I imported them all into Mudbox. I selected all the parts at once and exported them as a single mesh. This is the mesh that can be used to render the full high poly model in Zbrush for presentation.

I used Mudbox to combine the separate sections because Mudbox recognizes world coordinates, so it is simply a case of importing, selecting and exporting. In Zbrush each section has to be drawn out, moved, scaled and rotated into place as a subtool.

 

HARD SURFACE SECTIONS

The hard surface sections of the model are really easy to produce. I use Maya's basic modeling tools.

For the collar piece...

1. I started by selecting faces from the low poly mesh, duplicating them and moving them outwards from the original

2. Then extrude the new faces to give the new section some depth. and move it back into the original mesh

3. I repeated this until I had made enough individual little pieces. I then beveled all the sections (with 2 segments on each bevel) and applied a mesh smooth (Exponential - 2 levels) to give me the final collar.

This same process can be repeated with all the hard surface sections. The crisp edges obtained from beveling and smoothing give excellent results when baking normal maps later on.

Once I had all the hard surface sections worked up into high res meshes I combined them with the organic sections give me my complete hi res mesh...

 

 


RETOPOLOGY

Next I rebuilt all the organic sections with topology that represents muscle flow and is also animatable

I first saw this method for retopology passes on Zack Petroc's excellent Human Anatomy sculpting DVD from Gnomon. Zbrush3 has since introduced its own retopology tools but I still prefer to work in this way, as the new tools in Zbrush seem quite clumsy in comparison.

1. I start by importing one of the high resolution sculpts I finished earlier into Zbrush. Hitting T to enter edit mode, then under TOOL > TEXTURE hitting the AUVTiles button. This is a quick and easy way of assigning UVs to the mesh, each polygon is assigned a square of UV space based on its size in the mesh.

2. In the Texture menu, I set the texture to a nice high resolution, in this case 4096x4096, and click "new" to create a new texture. I would recommend using at least 2048x2048 for this as the topology lines can get quite messy at lower resolutions

3. After Zooming close into the model I drop it into Projection Master by pressing G, and select just the colour option, with Fade turned off

4. - The first thing to do is make sure Zadd or Zsub are not selected so the mesh shape isn't changed by your brush strokes

- Select the simple Brush from the brush palette

- Choose a nice sharp alpha shape and the freehand stroked

- Choose a dark colour for your topology lines

- Now I can simply paint on my ideal topology, changing my colour to white if I want to erase any lines. I try to keep the lines as straight as possible as they represent poly edges. Curved areas have to have enough resolution to support their shape as does the silhouette of the character.

5. I just keep working around the model until the entire topology is painted, a lot of reference of other artists work is needed here. This is where a retopology pass really seems worthwhile to me, as I can experiment with various topologys and just work in a trial-and-error style until it looks right. This amount of investigation work put into a 3D mesh would take a lot longer.

When its all done I open the texture palette, Flip Vertically and Export.

(Textures going from Zbrush to Maya always have to be flipped vertically :/)

6. Before shutting down Zbrush I export the mesh as a new .OBJ file. This mesh has UVs assigned to it and I need them for the painted topology to display properly.

7. Back in Maya.......

-the new UV'd mesh is imported and put into a reference layer

-hardware texturing is turned ON

-the painted topology map assigned as a texture.

-back face culling is also turned ON

I find this part fun as its like organic modeling for idiots. Using the Create Polygon Tool (Holding down the 'V' key to snap to points) I simply snap points to the painted topology. The final result is like a patch work of polygons like this....

8. Merging the vertices gives me a clean animatable mesh. I usually go round the model once with the MOVE NORMAL TOOL and tweak some points using the high poly mesh layer as a reference, and making sure the low mesh fits around the high one as tightly as possible. I have a bad habit of tweaking meshes to death but using this method the low mesh shouldn't need too much more work.

9. I repeated that process for all of the organic sections, and for the hard surface I just import the parts I modeled for the original block-in mesh. Once they are all put together I have my final low poly mesh. At this point I had to collapse a few loops and merge some verts to get my mesh to my target 10thousand triangles.....

 


UV MAPPING

This section will be short and sweet as there is nothing really special about my UV mapping workflow. I have tried quite a few pelting and unwrapping plugins for Maya but I always come back to laying out the mesh by hand. 95% of my projections are using Planar Project and then just stitching pieces together and relaxing the UVs.

I always use the channel box to input identical Projection Width and Height values. This keeps all the projections even.

For this model I initially projected all the UVs as evenly as possible....

Then I had to think forward to the baking and texturing stages. Thinking about how I would paint textures, and how the model would be used in a game I could make decisions on which parts needed more texture space than others. For example.....

- the face would usually be given a lot of UV space but for this character the face is mostly hidden by the mask and straps

- Also I planned on using the same overlays on all the various skin textures so all the skin sections had to be around the same scale.

- I thought the planks on the armour would look bad if there was no obvious wood grain texture to them so I assigned them more space

- The feet are mostly covered by planks, but as this character is a giant they will be the nearest thing in view to any player in a game, so they were assigned a bigger space in the UVMap

- The skin areas would be covered in small scars so I didn't want to share UV space and have the scars identical on both legs and arms

- The left arm has ropes cutting into it so that needed its own UV space

Once I had decided which parts were a priority for UV space I did the bit I hate most of all...laying the UVs out into 0-1 space...

 


 RIGGING

As this model was just a personal project I didn't want to spend too much time on the rig. Just enough to get the character posed. The protruding belly on this character was difficult to include in the rig as it was held in place by the wooden belt

I used a very basic rig, with the armour pieces parented to the nearest bones...

As you can see, its not going to worry Jason Schleifer anytime soon, but it does the job for this project. I tend to rush through the rigging part to keep myself motivated. I learned rigging from an ancient Gnomon dvd and haven't really moved with the times in terms of new tools

I modeled and rigged in this pose rather than a Tpose because in my limited experience it is easier to get the shoulders deforming well in the semi Tpose. This pose means that the hand joints can pull on the verts in the legs, but I find it easier to fix this problem than doing intricate weight painting in the shoulders.

I also find it helpful to keep a script on my shelf to snap the rig back to this bind pose incase all else fails I know I have that there to reset the rig.....

1. Select all the joints in the skeleton

2. Open the script editor and add..... rotate 0 0 0 ;

3. Save as a script

I then save this rigged file out and dont touch it until my final presentation stage. The next stage is baking maps and I dont need any rigging information on the mesh to do that, so I revert back to using my unrigged low poly mesh

 

 


BAKING MAPS

The first thing I did before bakign any maps was save a copy of my UVmapped low poly mesh as "BakeTemp.mb". This meant I could chop the mesh up into sections and have a backup master of my low mesh to revert to.

The first thing I baked was the head, I imported the low and hi res sections. These still had their world coordinates assigned so there was no need to change the positions. After a few tweaks on the low mesh I open the Transfer Maps window...

I baked a normal map and ambient occlusion map for every section of the mesh using the following settings.(1= low poly mesh, 2=high poly mesh) I have never had to change these settings for any objects (apart from the map size) so they should be good for most things...

For the hard surface sections I could bake multiple parts at once to save time. By splitting the object up before I baked the maps I could avoid the errors that appear inthe normal maps from intersecting geometry. Here you can see the hi and low meshes for the Giant's mask split-up for baking....

Once I had all my little individually baked sections, it is just a case of SHIFT+Dragging them together into one complete map in Photoshop and cleaning them up slightly. Be careful...this next diagram might blow your mind...

Cleaning normals maps isn't as daunting as it seems. The Smudge brush at 75% Opacity and Spacing turned ON should wipe away most small problems easily.

I check each section on my model individually and cleaned up the maps as I went along. I find it much easier to find and fix errors when I'm concentrating on a small section of the mesh rather than having a 2048x2048 maps riddled with errors to pick through.

Once I had my Ambient occlusion and Normal maps baked and combined I baked an Occlusion pass on the entire low poly mesh. This is then multiplied over the top of all the other layers at around 20%.

It is also a good idea to colourise occlusion maps to compliment the surface they are sitting on top of. For example the skin sections on this character have red occlusion maps, the metal parts have navy blue occlusion maps. Multiplying black occlusion maps over skin is very obvious and doesnt help to sell the skin as an organic surface.

with the baking finished I had the base for my textures.....

 


 TEXTURING

Some people like to work in passes on their textures, I prefer to work at each individual piece until its finished and then move onto another piece. Again there are hundreds of texturing tutorials out there but I will concentrate on how I made the Giants skin. The details may not come out in these pictures but they should give a rough idea of what I'm doing.

For the skin sections.....

1. I start by gathering references, in this case I was heavily inspired by the face-huggers skin tones in the Aliens movies, and CG models like "The Orc" by Lacopo Di Luigi

2. I set the occlusion layer for the skin to multiply at around 50% and lay down a base colour, in this case RGB:166,160,144. A lot of texturers like to lay down a midtone first and then add dark and light tones, I prefer to start with light tones and work by darkening them down

3. Next I add colour passes. I saw a guy using this technique at an Art School show using an airbrush and thought I would try it in Photoshop. I like the results and the variations it gives. Basically I do three seperate colour passes on three layers (blue, green, purple) using very low opacity brushes. I simply add those tones where I feel they may appear on the skin and finally smudge them out a little

4. Next I add a blurred layer of Blue speckles and a layer of pink/red speckles on Multiply at around 40% to add some variation to the skin surface. I also add a subtle overlay of a concrete surface to give some grain to the skin

5. Next up I whack on some nipples, and 5 hand painted dirt layers using various grunge and dirt brushes. I try to keep these layers subtle at this stage so I can tone them up or down as needed later on

6. Then I add details, various layers of spots, pock marks, cuts, scratches and stains

7. Finally I adjust the contrast, saturation and levels until I like the look, and I have my final skin! oh the joy!

I never really have a set workflow for making skin textures, I like to just piss around until it looks ok. I always keep everything on seperate layers though. The final levels and saturation adjustments really depend on the engine/renderer you are aiming for so testing along the way will really help.

From here I flatten my skin layers and drag it into my Specular map.

1. CTRL+U and shift the hue to get a deep blue colour

2. Next I ran Noise and Paint Daub filters to add some fine grain, specs and detail to the surface

3. Finaly I made some adjustments to the Saturation, Levels and contrast. Again it helps to test this in the engine to see how its looking and what needs changed

The last piece in the puzzle is the normal map overlay. This can be any picture/texture with a fine grain. I just ran one through Ryan Clark's ridiculously good CrazyBump Beta program to extract normal information out of it. I reduced the global intensity and removed all but the fine detail to keep it subtle.

This was then saved as a .TGA and overlayed on top of the baked normals. Ben Mathis has an excellent tutorial covering this technique at.......

http://www.poopinmymouth.com/tutorial/normal_workflow.htm

So thats about it for the skin. I use this DIFFUSE - SPECULAR - NORMAL workflow for all parts of the mesh until I am happy with the textures.

 


PRESENTATION

I used this model as an opportunity to try out the Roboblitz editor and the unreal engine for rendering. I was really impressed at how artist friendly it is and stunned at the quality of the graphics in-game

I am totally new to working with this editor and still have it all to learn. I am at no where near the stage of helping other people to use the tools, so I will only go through the rough steps and setup I used to produce my final image.

3DBuzz.com has 4 excellent free introduction videos for Using the Roboblitz Editor, made by Adam Hettrick

1. Pose the mesh in Maya and Export using Actor X or .ASE exporter plugin

2. Import the mesh and textures into a new package in the Roboblitz Editor

3. Build the shader in Unreal's Material Editor

4. Build a basic subtractive geometry cube as a level and apply textures to each surface (for the walls and ceiling I used the BLACK_NO_SPEC_mat material that can be found in the PROP_hub package uncluded with Roboblitz. This effectivley makes the walls and ceiling pure black

5. Import the Giant mesh, add a PlayerStart and Setup some lights

6. Maximise the perspective viewport, hit "G" to hide unseen actors and take some screenshots !



So thats about it:) I hope this helps some people in some way. Thanks for reading.




All times are GMT -5. The time now is 08:31 PM.


Powered by vBulletin® Version 3.7.0 Beta 4
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Copyright 2006-2013 Game-Artist.Net