ZBrushCentral

Is it possible to preserve UV's when using a mesh insert brush?

I’m attempting to make a chain using an insert tri-part mesh on a curve, and the actual modeling part of it is working beautifully. However, I set up UV’s on my individual pieces before I turned it into a mesh insert, hoping I could use that information on the duplicating parts of the model, but that doesn’t seem to be the case. Once I draw it on as a curve, it seems to lose all of its UV information. Is there any way to preserve the UV’s so that all of the chain links use the same UV information as the first one? Going through each and every chain link and doing the UV’s for them is going to be beyond tedious, I hope there’s something simple I’m missing.

No, you can’t do that. What you can do is to keep polypaint information, so it would be straightforward to transfer the color to a texture after assigning UVs.

That’s very unfortunate to hear, but thank you for the reply. Hopefully, the option might be included in newer versions as this is going to severely slow down my workflow =/

UV’s are literally a correlation between each point of a model and a specific pixel on the texture map. If you change the model’s topology, this changes its point count and order which in turn breaks the correlation with the texture map. The insert brushes are by definition inserting new geometry into the SubTool, changing its point count and order. This is why the UV’s are lost.

ZBrush allows one texture per SubTool and this texture cannot have overlapping UV’s. Even if the UV’s were somehow able to be retained, unless they were specifically set up on BOTH the base mesh and the inserted mesh to occupy different parts of the 0,0 to 1,1 UV space you would end up with overlap. So as you can see, it would still be pretty darned problematic and require a lot of effort for you to set up before you ever got around to inserting anything!

Overlap is not always a bad thing, as I was hoping to use the same texture for every chain link. All of the individual UV islands for the chain could take up the same UV space and result in all of them sharing the same link texture, which is what I was hoping to accomplish. Ideally, using a curve brush like that would be the same as duplicating that subtool over and over again and merging them together with UV’s preserved. I can see why in the case of most intended uses for the mesh insert brush, having UV’s would only complicate matters, but for certain situations I’m sure you can see why it would be inconvenient to have to go through hundreds of chain links and create UV seams for them. This is why having it as an option would be fantastic, and as I know you’re a valuable member of the Zbrush community, maybe you could put in a good word for this functionality. Adjusting islands in UV master or Blender or Maya is much, much easier than having to unwrap so many small independent elements.

you are trying to apply a UV map to a chain that is an IMM brush?
I don’t know much about UV’s (in fact I still can’t get them to do anything remotely like what they were intended to do) but it seems to me that if the texture and the UV all correspond to a specific point on the object you could make one link, make its texture and UV then make that into a IMMM brush and draw it out. Then separate each link into subtools using Split to Similar Parts in the Subtool Pallet and apply your mapping stuff to each link as an individual object.
This also sounds like hideously tedious work so if you have some ZScripting tools to automate the process it might help a lot.

Does that make any sense?

Yes, as Mealea says (thanks Mealea :slight_smile: ), you can do this quite quickly:

  1. Split the chain from your model. Either mask all but the chain, hide the masked bit and use ‘Split Hidden’; or use ‘Split to Similar Parts’.
  2. Split the links of the chain using ‘Split to Parts’.
  3. Assign UVs to the first link.
  4. Use UV Master>Copy UVs to copy UVs.
  5. Select next link and press UV Master>Paste UVs.
  6. Repeat for other links.

When done use ‘Merge Visible’ to merge everything back together, making sure you have the UV option turned on.

It would be possible to automate some of this with a zscript, though the UVs would need to be imported using an OBJ rather than using UV Master.

That sounds like a great solution, copying UV’s using the UV master would be much easier than doing all of the seams individually. It’ll still be a pain to go through all of them to paste them, but it’ll work for now. Thanks!

You only need to copy the UVs once and ‘paste’ will work repeatedly. You can assign a hotkey to the paste UVs so then just use two hotkeys - the Down Arrow to select the next subtool and then whatever you chose for paste UVs.