ZBrushCentral

Discmage's Sketchbook + Workflow Tutorial

Well after 10+ years of an idea of a world sitting in my head it has finally come time to get the beat out into the real world.

Here is a pic of the current work, but in all truth I have a lot of work to go as I am still deciding the stylised style :slight_smile: This is basically untextured apart from a displacement map.

ZBC_THUMB.jpg
[attach=187591]render_01.jpg[/attach]

As I have had to go about relearning my workflow I have found some interesting tidbits for Max > Zbrush > Max workflow that have tripped me up in the transition from Zbrush Old to ZBrush 3.5 that I thought I might share with you all. In particular exporting displacement and normal maps.

SO far I am making a template character that many other characters will be based off. So I needed a base mesh in max, with a set biped to base any morph targets from. So I made a good, hopefully solid, mesh in Max with good poly loops and highly modifiable in the future to other shapes and sizes.

As far as I know, if I want to use the same model to make many character through morph targets, yet use the one rig I am restricted to the biped staying set (it can’t be scaled without weird effects to the skin) so I had to future proof that as much as possible to cover as many bases as possible, in this case a super muscly and a super fat version as a quick draft model.

By trial and error I made a first version, took what I learned and started again…the following is my current workflow so far. However for ease of use I will take out the extra details in regards to making a character generator for a complete world (I think big!) :

  1. Sketch on paper then model or straight up model a rough concept in Max. Personally I use the Symmetry modifier to save time if applicable. Things to note are good edge loops, trying VERY HARD to not have any tris (quads are best) while trying to keep to the basic silhouetter of your character.

  2. Once you have finished you half / full character, collapse the stack and export as an .obj for zbrush. DOn’t worry about UVW Mapping yet as you will no doubt change the base mesh as you sculpt and you will just need to tweak it later anyway.

NB: From what I understand ZBrush does NOT support multiple Material ID’s. meaning that if you are using them, make them different objects and import them into zbrush as different subtools. When you have finalised EVERYTHING, you can join it all up again later.

  1. Import each .obj into Zbrush, then use the Append button in the subtools section to load in seperate elements if you are using multiple material ID’s or just want some reference (eg. eyes to work the eye sockets around)

  2. Divide your mesh and start sculpting. There are many tutorials on this, I’m not the best sculptor anyway, so your best off checking out the web and the forums and all that to brush up on thoise skills. Its OK, I’ll wait. :slight_smile:

  3. Once you have finished you model 100%, you can export the lowest subdivision that would have no doubt changed since you started sculpting. You CAN keep your original if you want however, its up to you. Either way, export the lowest division as an .obj to import into Max.

  4. Unwrap the model. DO NOT apply ANY other modifier to it apart from Unwrapping related ones as this may change the vertex numbers and everything will go to hell when you take it back to Zbrush. And Zbrush hell is not fun. That said, unwrap you model as you see fit. Try to keep seams in hidden areas however this is not always possible. Still, its a good practice to TRY.

I believe Zbrush has an unwrap tool now, however I have not used it as yet. I’m used to Max’s now anyway.

  1. Once Unwrapped to your satisfaction, cpllapse the stack once more and export as an .obj to take back into Zbrush.

  2. Import your newly UVW Mapped model into the SAME level you exported it from. If all goes well it should do niothing really, and therefore sliding the divisions up should work flawlessly. I like to check to make sure.

  3. Key element #1 - Tool > UV Map
    A lot of details are found in this section that is very important and is a new thing in 3.5. This section will have what size map you will export out at (such as displacement, normal etc). It also has the UV Map Border slider which is AMAZINGLY IMPORTANT I found as this affects seams. The default was 2, and when applying this to a model the seams were very clear as there wasn’t enough overlap / Bleed and therefore the detail didn’t carry across the seams correctly. As soon as I slid this up to 10 (maybe a bit much however) the seams disappeared. I believe this is a replacement for FS Border and / or Fix Seam in older versions of Zbrush.

Other options I don’t use as I don’t use the standard ZBrush UVW Options like AUV, GUV etc. I’m sure its all kinds of shiny for those who do so this is where you do that too.

SO, first thing is open Tools > UV Map and set the resolution of the map you want to export AND slide the UV Map Border up to something reasonable.

  1. Key element #2 - Tool > Displacement map
    This is where you export the Displacement Map, obviously. Many of the options that used to be in here have been moved however to the UV Map section in Tools (See previous point).

Once you have done Point 9, Slect Adaptive (Quality over quantity), and Flip V (to suit Max’s texture direction). I usually put the DPSubPix up to 2 (OK, so I’m not ALL about Quality over quantity) and then hit Create and Export Map. With your UV Map settings applied you should have a map exported at the required size, reasonable size bleed/Seam/Edge and generally good times all round.

Some people use Smooth UV, however I have found that sometimes on lower poly meshes the smoothed area will be SO smooth that it curves within the UVW Map edge. Which is no fun. So I don’t put this on myself.

  1. As noted I don’t use normal maps generated from Zbrush. It has tangent/flip issues I haven’t got a workaround yet. BUT if you DO want to do it. Then it is pretty much the same as Displacement map. Only tweak is turn Tangent on (as thats what game Normal maps use, however this is the thing that flips polys across seams I believe, and gives unwanted results in max).

I also put Adaptive on (again with the quality).

Now the Normal Map section does NOT have a create Normal Map and export like Displacement, so you have to create it (note the Tools > UV Map rules apply here too), and then use the Clone NM button to send the generated map to the texture 'slot. Then go to Texture > Flip V button (Once again to correspond to Max’s texture direction) and then export your map from the Texture section.

  1. Have a coffee. You are now OFFICIALLY a genius. :cool:

ANYWAY, that said, this is how I do it. I THINK I remembered all the key points. I fI have missed anything or you think I should add something feel free to say and I will update this post. The main thing, and frustration, for me was the new way that 3.5 exports maps, in particular seams etc. Relearning where all the little buttons are that do amazingly important things is always the trick when a new, albeit fantastic, update comes along. Love you work Pixologic! Keep up the good work.

I thought other people could learn from my escalated return to Max / ZBrush worflow. Hope it helped. :slight_smile:

Attachments

render_01.jpg

Updated my first picture to the latest version including some texture. I am going for a style similar to Joe Madureira’s Battle Chasers and Liquids colouring style of the same comic. So there isn’t much actual texture in the skin tones generally, just ‘inklines’…although on further study I think I need to take these further. I’m always too careful with my work, forgetting that Ctrl + Z is there :slight_smile:

Next stage, I think, is giving this guy some clothes!

Critique is welcome :slight_smile:

I thought I would add my muscle study for this guy. I don’t know how accurate it is in regards to real muscles, but I was using lots of real muscle study and most of it seems in line with the real world counterparts. I can, however, get away with murder due to the proportions :slight_smile:

BroadMuscleStudy_01.jpg

I believe Zbrush has an unwrap tool now, however I have not used it as yet. I’m used to Max’s now anyway.

It’s a Zplugin called UV Master. You should give it a try, it’s ridiculously simple and yet quite versatile. One of my favorite new additions.

Good idea keeping track of your workflow.

Another complete revision and a few happy mistakes later and I have come up with this guy. I have to rerig the guy AGAIN as I forgot to attach the inner mouth before rigging, and I’ll need to do that if I am to do the morph targets correctly…I wish Skin was a little more robust in stitching up from my mistakes :slight_smile: hehe

render_02.jpg

So this is version 3.0 of the same character basically, improvements and changes each round to make him more future proof, and in this case, closer to the look and feel that inspired me. That being Liquid’s colouring style in Battlechasers (and others they worked on).

I’ve spent the last week or so stumbling around my characters rigging and morph target situation with varying results. As I am using displacement maps I came across a few hitches as I am using Finaltoon, and Final Render together…and it didn’t like certain elements when trying to morph one texture into the next…so I found another way to do it using Final renders material base Fr:Layer.

If you are using Mental ray or standard Max for displacement with morphing textures…I don’t know how to help you as the transition looked weird even though the colours were the same (eg. the skin diffuse went darker as they were ‘mixed’ rather than they stay the same).

here is a further process in how I went about making the rig and morph targets, with a cxouple of important tips that I came across on the way.

  1. Once you have your base model with working textures in 3DS Max its good to test some morph targets to make sure it works. The process of how you make your morphs is up to you. However here are some methods.

Creating Morph Targets in Zbrush
If you are planning to make all your targets in Zbrush MAKE SURE that the low poly mesh is exactly how you want in Zbrush to line up correctly in Max. Feel free to bounce between Max and Zbrush with small tweaks to the low poly model to line it up right against other objects (eg. Eyes)

Export your FINAL mesh and displacement maps into Max as Editable Poly. Do a render to make sure it all looks good.

Make a Clone of your base model in Zbrush and Append it as a Subtool. This is your first morph target, model as you see fit, export base mesh and displacement maps. Import Low Poly base into Max as targets.

I HIGHLY RECOMMEND importing ALL .OBJ’s into max as Editable Poly from the import box. Editable Poly is a MUCH better tool to edit with but if you do not and you have an editable mesh (at some point) then things will get messy in regards to be ing able to make morph targets as they have to be EXACTLY the same. You may also have issues in regards to going back steps to Zbrush…I haven’t fully tested the limitations of this however. I will do so on my next character.

Repeat as necessary.

Using bot Max and Zbrush to make morph targets
As noted previously there are limitations to bouncing between Max and Zbrush and hit a snag of exporting displacement maps. The result is I have my Ztool still functioning, however I cannot export into it from my rigged character in Max. I also made a number of tweaks to the model in Max, making it difficult to go back to zbrush for map extraction error free exports.

So, I came up with a compromise. Instead of redoing EVERYTHING again, I decided that the displacement can be exported from a previous build as the UVW map is the same, and move the actual vertices in Max manually for more control over them (I find moving vertices in Max more accurate anyway). In the end I have a mesh morph target, and a texture that represents the modified look, even though they aren’t actually ‘together’ in one place.

So, I have my models in max and use the previous method (see making Morph targets in Zbrush) to clone, and modify the displacement maps in zbrush. I am more worried about displacement, rather than actual facial expression. So I only have to worry about the creases in the brow area for example rather than actually moving the face around, the results aren’t exact by any means…but as I really don’t want to do it lall again it should do fine.

  1. Back in Max you should have your base model (final), rig that as you see fit with Skin. Above the skin modifier apply a Morpher Modifier. Once all your base models are imported apply them to the Morpher Modifier. This is jsut for the mesh, not the texture.

  2. For the texture morphing you will need to make a Fr:layer material with all your different textures. Apply the base texture into the base slot of the Fr:Layer material.

  3. In the Material, activate the first Layer and copy the base material into the first layer’s slot. Change the displacement map (and bump if you are using it) to the morph target of choice texture (lets say ‘Angry’) and any other textures if you made them. Each layer has a percentage of how mixed it is, 100 is full while 0 is transparent. This slider is animatable, therefore you can add your morph target texture at ANY time into your animation, rather than just when you morph the mesh to the target. Its a little more fiddly but has much more versatility. If it is difficult to see where your keys are for this slider, use the Dope Sheet graph.

  4. That should be the basics to get you going. However there are some small tips I have found on the way. Such as:

  • if you have rigged your base mesh, and THEN want to clone the base mesh to make morph targets. Rest your mesh to the default position. Clone the mesh IN PLACE, delete any turbosmooth or modifiers that would affect the vertex numbers, leaving the Skin and Editable Poly/Mesh modifier only. Then collapse to a base mesh. Sometime the rig will change the placement of the vertices, so when you delete the skin modifier the vertices/mesh will move. You do NOT want this. The vertices have to stay put. Collapsing the skin modifier will keep the rigged mesh and morph targets in the same place.

Always do a test if you are worried how it would work. if for any reason you ever get rid of the base model skin modifier, its probably wise to collapse that too. This is not tested however.

On FURTHER updates…I have found issues with morpher. I thinik it has something to do with the collapse skin to editable poly / mesh used as a base, it thinks that all the vertices have ‘moved’ and therefore if you move the rig, and use the morpher the mesh transforms the WHOLE mesh rather than the vertices that you modeled.

Which is a pity. I don’t think there’s a work around for it really in my case. I don’t EXACTLY know why the model goes up a couple of vertices after I have rigged it…the only thing I can think of is that using the rig to move is basically the same as moving the vertices themselves inside the editable Poly modifier.

SO, my choice is rerig the character (probably) or figure out the EXACT adjustment needed on an original clone model to ensure vertices don’t move.

FIXED THE ISSUE
I fixed this issue by putting the Morpher Modifier UNDER the Skin modifier in MAX. That way the morpher doesn’t take into cionsideration any modifications that the skin makes to the mesh. Unfortunately I copied over the version that had my previous morph targets, so I will have to do them again. Oh well, more practice for me!

So another tip, make incremental saves when trying new things out no matter how sure you are of a ‘broken’ previous method!!!

***** END FIX RANT *****

On the other hand, I did manage to render out some updates in regards to the facial animation as long as I don’t change the rig’s pose :slight_smile:

render_03.jpg

Over the past week I have been considering the best way to go about Morphtargets, in particular facial expressions and Phonemes. I have decided to go with two sets. The Mouth and The Eyes and Nose.

The Eyes and Nose Set will have each key expression, eg. Angry, surprised etc. As will the mouth, however this way I can then blend in Phonemes with facial expressions and probably make more facial expressions with the basics. eg. Angry eyes with happy smile is one evil face :slight_smile: I will have to look over most facial expressions and see where certain things overlap as I’m sure it will. I will post my findings soon.

I think you might have this problem
This is the work around

Now that I have re-read your problem it seems its happening in max
not ZBrush. But oh well, you might end up with this problem eventually
so its good to know when it does happen. Unless you already know about
it an know how to stop it from happening.

Fixed the morph isses as edited in my post above to keep it all together. It was simply a case of moving teh morpher modifier UNDER the skin modifier. Surprised I didn’t think of it earlier.

Thanks for the link though, I will no doubt face more issues to come :slight_smile:

So, after figuring out the morph issues I have continued on. Mostly playing in Max now to flesh out some of the elements of his costume before heading back into Zbrush for the details. This time I might work on the diffuse textures in Zbrush as well.

I also have figured out manipulators in Max, which is handy as the mouth interior and the face morph targets are seperate objects, now I can use a slider to move the two at one time. For some reason I can’t link in the displacement texture however as it goes all kinds of crazy. I’m OK with that as the MAIN one I wanted to do was the face and interior mouth linked into one slider.

Here he is, just to show you peoples where he is at. I’ll probably just update this one for a bit until the next major update.

render_05.jpg

Updated the guy above. Fully textured…maybe. Although he seems lacking. I think I need to work on my concepting skills to give a little more…character…to my…err…characters. :slight_smile:

This has been a fantastic learning curve in regards to getting back on the modeling train AND getting results very similar to those of the Battlechasers comic. Which was my goal all along. I might play with a couple of Matlibs next and see if I can get soimilar results directly in Zbrush.

I think I have to get more detail in my characters, things like bandages on arms or…even more belts…tattoos perhaps. Time to study up on good character design. I might also look at grabbing some other characters I like and make a battlechasers version for fanart sake for more practice. then I don’t have to worry about how cool the character is or not…so much work, so little time!

Well, that last character was a LONG time ago…life got in the way but now I’m back at it.

Thanks to PointPusher I have a bit of a new workflow, at least in zbrush. Now the brushes I use are basically the following (based off his process with a few modifications) - Move Use this brush to make a very rough silhouette of the shapes needed - Dam_Standard use this to cut into the shape, continuing to work on the silhoette more than anything else. - Clay Start building up areas for detail. Use both add and minus to develop the object further - Inflate This is good for bulging rather than simply building up areas. - Pinch (With lazymouse on) this is good for sharpening up edges or adding wrinkles to grooves. - MAH Mech A & B Both really good for adding Grooves. Mech A especially - Form Brush - Good for building up areas while keeping to the shapes form...for the most part. Eleastic is also meant to be good for this. Here is a character I am making with these tools.

Render_01.jpg

OK, for my latest pipeline process I am using the following…this is using PointPushers devlopment processes, a buoit of outside retopo, and Max…

If anything this is just to keep my head in the one place in regards to the pipeline…it will no doubt be redefined at a later point:

Get a base model to play with
Create a base mesh in Max OR start building a base model in Zbrush. I find a base mesh for ‘normal’ characters like human bodies are better in max, however I think when it comes down to it things that are more random are best done straight in Zbrush as you develop the idea as you go along.

Make sure to include all the main info, in my case I forgot the interior of the mouth so I will have to go about sorting that out as I want to add morph targets later.

Body Building or silhouetting:
Take the base mesh or super base zbrush object (say, a polymesh) and use the following tools, in roughly the following order, going up or down 2-3 as you see fit.

  • Move
    Use this brush to make a very rough silhouette of the shapes needed. Start with a large brush and scale down as you go.

    • Dam_Standard, MAH Mech A & B
      All good for cutting into the shape liek a groove. I find the Mech brushes add a bit of a pinch at the point, which makes a cleaner edge than dam standard. Use this on a few divisions, but not too many, once again you are still wanting a rough shape, not even close to details yet.

    • Clay or Clay Buildup
      Start building up areas for detail. Use both add and minus to develop the object further.

    • Inflate
      This is good for bulging rather than simply building up areas.

  • Form Brush
    Good for building up areas while keeping to the shape so far’s form…for the most part. Elastic is also meant to be good for this.

    Toning or Shaping
    Once you have a really solid silhouette and basic lines and shapes for your mesh, you can get to the intermediate section. Use all of the brushes above to continue shaping your model. By now you might be pusing 4-6 divisions. And getting in the ‘large’ details.

This does not include any fine details such as wrinkles, poeres or anything like that. So far you are still focusing on medium level shapes.

Retopologising

Once you have pretty much finalised the main and intermediate shapoes of your model you may need to retopologise. This is a wise idea in order to improve your polyloops and it really helps in the fine modeling (no crazy poly deformation)

At the moment I do the following:

  • use decimation Master to export the high poly
  • Retopologise in Topogun
  • Export the new low Poly and save a projected Hi Poly from Topogun
  • Start a new model with the Low Poly
  • Divide the Low Poly the same amount of times you subdivided the mesh for the high poly in Topogun (if you subdivide 5 times in Topogun, set the Low Poly to 6 divisions in ZBrush…although I have not tested this so much)
  • Import the hipoly mesh from topogun into the subdivision level that works

Other methods include sticking to Zbrushes retopologising tools (it has good symmetry)…I assume there is a way from Max as well, but I don’t know how robust that is in getting back into ZBrush without errors.

The Fine Details
Once you have a new topologised model, continue modeling to your hearts content with all the detail you want.

UV Mapping
Use UVMaster to unwrap you low poly. ZClassroom has great tutorials on this. I’m still sorting out some issues with seams however.

Export Maps and Mesh
Export all your maps and your low poly for use in external program if you are taking it furtther (animation, rigging games etc). However ZBrush 4.0 has some fantastic rendering options now. In particular the displacement or normal maps. There is also the rumoured ‘Super Map’ that is going around although I don’t know if this works in Zbrush 4.0. Search through the forums for Rastaman’s Special Map.

I think thats about it. I have yet to test a lot of this on final characters…but this is my current pipeline for the moment that seems speedier and gets better results than previously. I need more hours in the day! And an immortal body that doesn’t get worn down after 4-5 hours straight on the computer!!

Here is a guy I have been working on for the last week or so in my off time. He is the basis for quite a few characters so I would like to make him perfect AND future proof…which is always a tricky thing.

This guy is the basis for you ‘average Male’ character…so for most people between the age of about 20 - 45, this guy will be the base. As I make more characters I will mostly change the face…and leave the rest for tweaking in Max (eg. weight , bigger muscles etc)

This texture is actually in Zbrush, using battlechasers as a reference. I love how Zbrush does textures!

HumanMale_01.jpg

Although looking at it, and comparing it with some of my fave artists etc…the eyes, for an adult, are WAY too big… so next session I’m going to look at improving that to see if I can find a better style for my characters head base…

I think younger people can have bigger eyes like this however…

Working on some new processes I have found a way to play with certain things…once again just writing them down to remember for later.

This process is a combination of 100% creative freedom in Zbrush > topogun for retopology > precise UV Seams from 3DSMax > zbrush for easy UV Unwrapping.

If there is a way to do precise seams in zbrush, that will cut Max out altogether. As awesome as the painting weights UV process is, I generally would like a precise method…and as much as I could use poly groups, I’d prefer just to use lines to define where I would like the seams.

  1. Make the model however you like in Zbrush.
  2. Decimate hipoly and import into Topogun
  3. Retopologise
  4. Take the retopologised low poly mesh into 3D Max, use Unwrap UV to make EXACT UV layout seams. Don’t worry about scale or distortion, just focus on seams by using pelt. Export low poly.
  5. Import the pelted low poly model into topogun, reload your high reference mesh. In the subdivision preferences, set it to something you think your computer can handle. Remember the division number. Save the subdivided model in the subdivision menu.
  6. Import you low poly mesh into Zbrush. Divide it by the amount of subdivisions you set in topogun + 1. Import the saved subdivided hi poly mesh into this zbrush division.
  7. Open up UV Master > Work on Clone > Select ‘Use existing UV Seams’
  8. Unwrap then Flatten. Use Enable Control Painting to tweak Map as needed (density etc).
  9. Copy UV’s and apply them to your imported low poly / Hi poly mesh.
  10. Go to the lowest subdivision and export maps as needed.

Here is my latest character. I’m taking a more thorough approach with him in regards to the ability to modify him with displacement maps in 3DStudio MAX.

The hair and briefs for example are layers in photoshop I can turn on and off at will. So I hope to use this to my advantage to create a number of characters using the one base model that has all the animation information such as morph targets and rigging.

The sculpting was done in ZBrush. The process has become quite complicated really, but I am happy with the results and it allows the use of each programs pros. The render was done in MAX using finalToon…although I may looking into just using a standard render and see if I can get similar results.

Jake_01.jpg

Here is my latest character I am working on. Knolan from Battlechasers, my fave comic of all time.

I don’t know what I should do with him from here…I’m thinking of making a low poly game version or something for posing and folio…but I’d like to make sure this guy is ‘finished’ finished…so any crits are more than welcome.

I’m tempted to make all the seam work and ‘textures’ more realistic…but in truth the comic does not have that level of detail, so maybe not. I know it’d be interesting to see a more realistic version perhaps…but I’m trying to stick to the original.

Knolan_01.jpg

My work!
http://www.zbrushcentral.com/showthread.php?t=133440
http://cghub.com/images/view/133542/

For those who have had some issues getting a high polygon detail multiple subtool model from max onto a single low poly model I have found a bit of a way to do so using XNormal as the baking program.

  1. Using decimation master, make a reasonably accurate version of your total model in order to make the low poly version using whatever app you like. Personally Topogun works well for me.

  2. Take your lowpoly model into your Unwrap UV program. I use Max personally.

  3. At this point you should have your original high poly with multiple subtools in zbrush and a finalised unwrapped low poly version.

  4. Append your low poly version to the end of your hi poly version back in ZBrush. They should overlap exactly.

  5. Duplicate your low poly and hide the original low poly. Use the second version to make your ‘cage’ mesh for use in XNormal. I use the inflate tool mostly, but you could use any method really. Use transparency to try and make it clearer if you like, but basically inflate your model so that it completely encapsulates the hipoly model. THe more accurate you are here the less work you have to do later.

  6. Save this new file as you will need to reference a number of versions of this. See following.

  7. Export your original low poly.

  8. Export your new cage mesh based on the original low poly.

  9. Depending on your computers abilities set groups of your hi poly model and delete the rest. For example I deleted the legs but kept the rest of my character. Using the Save aall Subtools button in decimation master I could save the model as is at its highest division.

  10. Reload up the file and delete other parts of the model, in my case the torso and keep the legs. Export this using Export All Subtools in Decimation Master.

  11. Using XNormal, add all your High resolution models, and your low poly resolution model with the cage file you created and create your maps.