Things have got much better lately for the prospective zbrush user. Pixologic have made some quickstart guides which are nice, but the real hero of the hour is Scott Spencer, who has made an incredibly thorough 40 page document explaining exactly how to get zbrush and maya to work together. If you need to get up to speed quickly, I'd say start with the quickstart guide, move on to Ryan's guide, then read this page for more general info into zbrush, and why/how it works like it does. Only once you've done all that should you brave the zbrush forum
and FAQ section
. If you have some cash, the gnomon dvd's are fantastic, especially Zack Petroc's. Go buy!
Zbrush, maya, mentalray, executive summary
This is intentionally brief, if you're doing this for the first time read scott spencers guide
for a very detailed tutorial.
- Install the multi displacement 2 and ADE plugin: http://www.zbrushcentral.com/zbc/showthread.php?t=29789
- Under zplugins->multi displacement 2 (MD2), set your map size and sub-pixel accuracy.
- Click 'export options', create a single preset of 3-channels, 32bit, 'full range' in each channel, scale off, vertical flip enabled. The shortcut code for all that is
- Close, again under zplugins -> MD2 click 'create all'. It'll ask you for an image name, then go and calculate your map
- In maya, setup displacement using a mr approx node, apply the image as your displacement map, set alpha gain to 2.2, offset -1.1
- Use photoshop CS3 to do touchups on the map (you can paint in 32bit now). If you've used lots of pinch and nudge turn on 'adaptive' under tools->displacement, it does a slower, but more accurate raycast when generating subsequent displacement maps.
- If mentalray starts throwing memory errors, convert your tif to a .map using imf_copy -p foo.tif foo.map
Zbrush for maya users
If you're a proficient maya user but haven't touched zbrush before, I highly
reccomend you to find a friend/co-worker/classroom/hobo who can take you through it. The closest analogy I can think of is if you know after effects, but tried to pickup illustrator solo. The interface and concepts are similar, yet different enough to really throw you for a loop, get you incredibly frustrated, and go about things the completely wrong way.
Thats not to say zbrush isn't intuitive. Its funny to see people who have never touched 3d before instantly 'get' zbrush, and throw objects around with ease, whereas it took me about 4 years. Again, it was my preconceptions of how a 3d program should work that threw me.
At any rate, I'll assume for the rest of this you're learning zbrush solo.
Zbrush history (or zbrush is a paint program)
First, write down the following on a post-it note, and stick it above your monitor:
ZBRUSH IS A PAINT PROGRAM
ZBRUSH IS NOT A 3D PROGRAM
ZBRUSH IS A PAINT PROGRAM
It will save brain cells in the long run. Zbrush started as a purely 2d paint tool, with some 3d-style tricks. The best analogy I heard was 'its like painting with toothpaste'. Zbrush used per-pixel normal and material channels allowing you to relight and re-texture your painting. There's some cheesy java applets
that fake realtime bump-mapping, zbrush 1.0 excelled at that look.
Zbrush in finest toothpaste edit style, 1999.
Early on in zbrush's history came 'tools'. You could take a sphere or cube of toothpaste, stick it in your canvas of toothpaste, and moosh away. Keep that in mind; tools were just something you stuck into your canvas, which ultimately was a 2d image.
Shortly after came the ability to edit those tools before you stuck them into the canvas. So you could load that sphere, push it around a bit as a free-floating 3d lump of toothpaste, then stick it on the canvas. And with a few minor changes that's how zbrush operates today. The 3d side of things is (workflow wise) a side issue to the importance of sticking lumps of toothpaste into your giant canvas of toothpaste. Got that?
Here's a thread on zbrush's history
Canvas edit vs 3d edit (or toothpaste vs tool)
So how does this all affect you, prospective zbrush user? The absolute hero point to remember is you can be in 2 modes:
- pushing toothpaste on the canvas, or
- 3d tool-edit mode
If you're a maya user and getting into zbrush now, you're probably only interested in tool-edit. Keep in mind though that zbrush is a paint program
, and it will default to toothpaste-on-canvas whenever it can.
Your key to knowing what mode you're in is the 'edit' icon, its the square with one wonky corner. If its active, you're in tool-edit. If its off, you're painting. Its very easy to drop in and out of this mode if you're not careful, so watch out for it.
To add to this convoluted workflow, 3d tool-edit mode doesn't take you to a seperate window or workspace. You edit as if your holding your 3d object just over the canvas (in fact its quite easy to accidentally push the object to sit halfway in, or even behind
the canvas while editing!) It makes more sense once you do it a few times.
Editing a 3d model, a brief walkthrough.
Enough talk. Get a model of yours in maya, export it as an obj, and fire up zbrush:
- In the tool menu across the top (they're alphabetical btw), choose 'import', load your tool.
- From the center of the canvas, drag down to draw your tool onto the canvas. Don't click or drag again, as that'll just stamp another copy of your tool onto the canvas again.
- Click edit on the top toolbar (keyboard shortcut 't'), which will remove the tool from the canvas, and allow you to edit it as a 3d shape.
From this point on, its regular 3d land, so things should be a little more familiar. Its now a matter of getting used to zbrush's 3d interface:
- Dragging anywhere outside the tool will rotate the shape. Hold down shift to snap to 90 degree angles.
- Dragging over the tool will add volume, like adding lumps of clay to your obect. Set z-intensity around 10 to controllably build up volume.
- The 'move' button will do a nice magnet-move, or proportional-edit as its called in maya.
- The 'scale' button will do a localised inflate. Also a little uncontrollable, best avoided.
- Holding shift while in draw mode will do a localised smooth.
The other thing you'll probably want to do is pan and zoom the camera. More zbrush quirkiness here, but once you get used to it, its very fast.
- To pan the camera hold down alt and drag outside the object.
- To zoom hold down alt, start a pan, then release the alt key WHILE STILL HOLDING THE MOUSE BUTTON DOWN. The camera will snap back to where you started the pan, and will zoom instead. Move down to zoom in, up to zoom out.
To export the model back to maya, use the 'export' button in the tool menu, and export an obj.
If zbrush only offered this level of functionality, it'd still be brilliant. It takes the flexibilty and speed of photoshop liquify, and applies it to 3d. Perfect for doing versioning or creating blendshapes. But zbrush does so much more...
Zbrush and subdivision
A bit more history, skip to workflow if this bores you.
In regular 3d land, there's been a shift in the past few years towards subdivision surfaces. They're as easy to model as polys, look just as smooth as patches, and render quickly nowadays in most of the major renderers (prman, mentalray, brazil etc.).
Another thing thats become important lately is sub-pixel displacement. All the major render's handle this now at remarkable speeds. To create good displacement maps in a 2d tool like photoshop is possible (texture artists at framestore and ilm are amazing at it), but ideally you want to actually edit the 3d surface directly. That means incredibly high poly counts, which no app could easily do.
Meanwhile in zbrushland, they've been doing some amazing things with dense meshes. Whats slightly voodoo-magic about zbrush is that it can tweak and edit a 300 polygon model as easily as a 3 thousand, or 30 thousand, or 300 thousand model. Its performance on heavy models is staggering, and its had that since early on. Problem was, it couldn't export these massive models to any other app without crashing them.
There was a divide here. Renderers could now handle subdivs with displacement, but current tools couldn't create such models. Zbrush had the ability to create those models, but couldn't export them.
This was fixed with zbrush 2. Zbrush added subdivision surface support, and the ability to generate displacement maps. Zbrush subdivs are similar to maya's in that you make edits at the higher divisions, and they ride and flow on top of the lower divisions. What zbrush has over maya's subdivs is it can happily divide up to 6 or 7 levels (thats around 3 or 4 million
polys for an average character), and still stay zippy. Here's how:
- Export a polysmooth/subdiv style character cage from maya as an obj, load it into zbrush, draw it on the canvas, get into tool-edit mode.
- In the tool menu, open the geometry section and hit the big 'divide' button. This will polysmooth your model once, creating a new level of subdivision. Hit it 3 times to go up to subdiv level 4.
- Edit the surface, note that it still edits quite quickly
- In the tool menu again, click the 'lower res' button a few times to get back to your original subdiv cage (subdiv level 1). Make a largish change (like giving your character a frankenstein forehead), and then click the 'higher res' button repeatedly to get to level 4 again. Note how the high-res surface has shifted to match the lo-res.
- Still with the high-res, make a similar change like jutting the jaw out substantially. Click down to the lo-res surface, see that zbrush was able to correctly shift the lowest level to match the hi-res.
This is pretty cool! You can be modelling skin wrinkles, decide the cheeks are in the wrong place, go to the lowest level, quickly resculpt, go back to the highest level, and your wrinkles are still there. Thats all well and good, but how can you use this in maya? Via displacement maps!
Displacement map workflow
Zbrush relies on non-overlapping UVs for displacement maps (it'll crash otherwise), thats the first step here. If you're sure your model's uv's are ok, skip that first step.
- In the tool menu, go down to 'texture', then click 'AUVTiles' to create non-overlapping uv's
- Still in the tool menu, turn the subdiv level down to 1
- Again in the tool menu, go down to displacement and click 'create dispmap'. zbrush will think for a bit, then create a grayscale displacement map, which it hides elsewhere.
- Leave the tool menu and go to the alpha menu. In there you'll find the displacement map it just generated. Select it, and click 'export' at the top of the alpha menu. You can now take that image and load it into photoshop to edit, then finally into maya to apply as a displacement map.
Thats leaving out LOTS of steps of course, but thats the basic idea.
Projection master workflow
The whole 'zbrush is a paint program' thing gets a little annoying until you find you need it. And where it comes in handy is doing fine displacement, wrinkles, pores, scratches etc. Using projection master, you essentially freeze your model back onto the canvas, use the paint tools to make edits, then you unfreeze the model, and zbrush will convert your paint edits into surface edits on your model.
- Load a model again, get into edit mode
- Divide it until its poly detail is quite high, high enough to support wrinkles and the like (you may want to try this on just a hand or a head rather than a full character).
- orient the model so that you can paint wrinkles on it clearly, hit the 'prohjection master' button.
- In the next dialog uncheck colour and texture, check deformation and normalised, hit 'drop now'.
At this stage the model is now frozen on the canvas, thats why its important to orient the model for painting before
running projection master. Lets paint some wrinkles and pores.
- From the tool menu, choose the deco brush (its tool number 14 on the pallette)
- From the top toolbar, disable rgb and m, and enable zsub
- set the draw size down to 14, and from the alpha menu choose the 2nd alpha, the soft circle grad
- Paint wrinkles on your object, adjusting the z intensity and the draw size to suit the model
- change to the simplebrush (tool number 2), change to alpha number 7 (the random dots), set the stroke type to dragdot (number 5), rgb off, zsub on. Draw size 30, z intensity 7. You can now drag and place pores onto the surface.
- Once you're done, click the projection master button again
- In the next dialog click 'pick-up', wait while zbrush thinks a bit, and once its finished you'll be returned to 3d-edit mode, but with those pores and wrinkles as part of the surface itself.
Note that you can do quite substantial edits in this way; if the modifications you do while in projection master look big, it'll probably result in a big edit to the final model. I've seen eyeballs added to a surface this way, and other mid-res edits like muscle bulges and tendons can be added this way too.
UV vs AUV vs GUV vs...
This is mostly thinking out loud, if anyone knows of a better workflow please fix this!
The auto UV tools in zbrush are great for getting even coverage, but like most auto-uv tools, aren't good for making changes outside the 3d program itself. Its similar to the auto-uv tool in maya where it works out islands of mostly same oriented faces, but doesn't concern itself with the number of islands it makes, nor how human readable they are.
Discussing this with some friends, we came to the conclusion that you'd use AUV if you're really short on time; the client is breathing down your neck and wants to see wrinkles and warts painted on the character RIGHT NOW. But as soon as you get some free time, go back and create some regular style UVs in an external package, and transfer your maps over using the new transfer tool in maya 6.5. Both blender and wings have great pelting style tools now, blender in particular is excellent with its LSCM system, very easy to use, and very fast. Good tutorial here: http://bgdm.katorlegaz.com/lscm_tute/lscm_tute.htm
Of course if you don't plan on doing any 2d edits to your UVs (yeah right), then AUV should be just fine.
There is a great tool for Maya users contained in the Bonus Tools package from Alias. Its called Unfold UVs and can be ran on selections of UVs or the whole model, it will basically try to unfold the selection whilst keeping the general form of the topology. You can get great results in minutes (compared to hours or days with manual tweaking) . I've used it on just about all of my Maya > zBrush models, plus, the texture artists love it as theres literally no distortion in the resulting baked map.
Zspheres are a clever re-interpretation of box modelling crossed with skeletons. Imagine you're creating a maya skeleton. When you create your first joint, maya also create a polycube there. When you create the next joint, maya extrudes the closest face of the cube to that joint. Create the next joint, and that last face is extruded to meet the new joint, and so on.
In addition to that, the verticies are getting correctly bound to joints so that as you rotate, scale or translate the joint, the polys around it follow. Make sense?
Thats basically how zspheres operate, but they have some extra tricks. You can do the same subdiv and sculpt trick like you can with regular 3d objects, but still translate/scale/rotate the joints. You also replace a given joint with another mesh, and a few other tricks.
Unfortunately, they're a little unstable at the moment. Make the wrong kind of move, and you lose all your hi-res edits. Because the cubes are displayed to you as spheres, it can be difficult to see if they're twisting the wrong way or not, and predicting how branching structures work (espcecially for things like hands and feet) is difficult without a lot of practice. The edge-flow for zspheres doesn't always run how you want, and at the moment you can't easily adjust this without exporting to another 3d app.
The next version of zbrush looks like it will address some of these issues. You'll be able to insert zspheres into an existing model so they just work as a skeleton, so you can quickly pose and morph your model. The next version will also have a topology tool similar to cyclice and silo, so you trace a new edge layout over your model, and it will transfer all the hi-res edits over. Interesting...
- Choose the zsphere tool (the red sphere), drag out a sphere on the canvas starting in the upper quarter of screen, dragging straight down. This will keep it oriented correctly.
- Hit the edit button, turn the draw size down to 1, and drag down again on the lower third of the sphere. This will create a new sphere. Keep dragging until it's maybe two-thirds the size of the first sphere.
- hit the move button, drag the 2nd sphere down so you have a single 'bone' on screen.
- hit edit again, and click on the connection between the zspheres to insert new zspheres.
- hit 'a' on your keyboard to preview the mesh. Hit 'a' again to return to the spheres.
- hit move, and drag the zspheres into a curve. Preview the mesh.
- Use scale and rotate to make other adjustments, preview the mesh.
- The zspheres will behave differently if you move the spheres vs moving the connections between them. Try it and see.
- There's a IK-esque mode if you hit the move button, start to drag on a connection (try one higher up in the chain rather than towards the children), then whil dragging press and hold alt. The bones will now retain their length before you started clicking, and will try to aim in the direction you drag.
I realised there was no clear explaination as to how zsphere skinning works, so I wrote one for the zbrush forum. You can find it here: http://184.108.40.206/zbc/showthread.php?t=29617
Personally I think zspheres are too confusing and would be better as 'zcubes' instead, so you could immediately see the connectivity stuff happneing, but thats just me.
Zmapper, normal maps in maya
Don't be fooled and think you can use the new bump2d node in maya 7. It works for the high-quality viewport render (and the related hardware render), but nothing else. Instead, download the normalmapper plugin from Jan Sandstroms pixero site. It's for both the maya software renderer and mentalray, all platforms, versions 6.0, 6.5, 7.0. http://www.pixero.com/downloads.html
Zbrush and the tecra M4 tablet pc
In a moment of weakness, I went and got a tecra m4. It was about half price (its a refurbished ex-demo model), so I'm happy to ignore the few problems its has, like being a little too bulky, slightly cheap construction, and poor battery life compared to other tablet pc's. That's a key thing though; most of the negative reviews say its a poor tablet pc. Seeing as the majority of tablet pc's are used as carry-around notepads for doctors and warehouse managers, thats true. Those markets expect thin, light, small, long battery life. The M4 is none of those things, but as a regular 14 inch 3d-ready laptop it fares much better; good performance, reasonable battery life (about 3 hours), good screen. The tablet functionality is gravy on an otherwise good laptop.
And yes, its runs zbrush a treat! The tablet uses a wacom digitiser under the screen, so you get all the pressure sensitvity you'd expect. The draw area covers the entire screen, making it about the same size as a intuos A4. Unlike other tablet pc's, it uses a regular centrino cpu (mine's a 1.7 pentium M, I think they go up to 2.2 or so), and a good graphics card (nvidia 6600), so it doesn't feel sluggish, and can happily run maya.
The main concern I had was keyboard shortcuts for zbrush (ctrl, shift, alt), as you can't access the keyboard when its in tablet mode. Next to the screen are 2 buttons, and a 5 way directional+push button. Turns out they're all programmable (by default the 5-way is set to arrow keys and enter), but only the 5-way key operates properly with zbrush. The 2 buttons only send a key-up event, and zbrush being very
needy about key-down and key-up, those keys can't be used. However they 5-way works fine, and you can map multiple keys to each direction. So in my case, the mappings are
up - shift
down - ctrl+shift
left - alt
right - ctrl
press - enter
Haven't found a way to make those settings application specific yet though (be handy for this mapping to only affect zbrush, but apps like firefox work as a regular cursor key).
I wouldn't wholeheartedly reccommend getting an M4 (I'd be curious to check out the smaller and older M200), but if you see one going cheap, and have a chance to play with it first, definitely worth a look.
- A lot of the sliders (most notably rgb and z intensity) don't feel like they have a linear response curve. There tends to be a small sweet spot, then beyond that they're either on at 100% or 0%. Z-intensity in edit-draw mode for example seems to work best around 10. Any lower than 8 and you barely see a change, anything above 15 is too strong. The noise slider under materials is like this too.
- If you dig painting in photoshop ala craig mullins ( http://www.goodbrush.com ), you can achieve a similar result in zbrush. Drag out a plane to use as your canvas, then switch to the layer brush (tool 10), rgb mode only, set rgb intensity down to around 20, stroke to freehand, and use a hard circular alpha. Set to a small brush radius this works well as a pencil, set larger and its almost identical to painting in photoshop.
- To fake photoshop liquify, switch to the hookbrush (tool 5), and in the tool menu open modifers and set rgb blend to 0. The brush won't work if the cursor goes off the edge of the canvas.
- Getting a perspective render of your 3d object is somewhat hidden. If you're in edit mode, hit edit again to get back to regular canvas mode, chose rotate, then in the draw menu hit the 'persp' button. If you rotate with the rotate gizmo now, it'll be with perspective distortion. If you go back to 3d edit, you'll be dropped back into ortho mode. This setting is saved with the ztool. OSX zbrush can be in persp and edit, zbrush 2.5 should bring this to pc users.
- 11 Apr 2005