Home Technical Talk

GoZ from Max to Zbrush blows out scale

jesselarson
polycounter lvl 2
Offline / Send Message
jesselarson polycounter lvl 2
I'm using Max 2021 and Zbrush 2021. In Max, the system unit scale is set to 1 cm and the export scale in Zbrush is set to 1. When I GoZ from Max, the model imports at a massive scale into Zbrush. So much so that the brush is just a tiny red dot and I can't sculpt on the model. I tried the transpose master and that works great to get the model to a workable size in Zbrush. But when I send it back to Max, it comes back over super tiny.

I tested exporting a fbx from Max and then importing that fbx into Zbrush. That works fine, no scale issues.
Am I doing something wrong for GoZ?

Replies

  • jesselarson
    Offline / Send Message
    jesselarson polycounter lvl 2
    I found if I exported a fbx from Max and brought that into Zbrush, the scale is fine. I could then GoZ that imported fbx from Zbrush back to Max and it would load back in at the correct scale. I could then GoZ back and forth from Max to Zbrush, Zbrush to Max with no scaling issues for that model.

    Kind of a pain, but it at least works.
  • jesselarson
    Offline / Send Message
    jesselarson polycounter lvl 2
    Has anyone else seen that? Is this a bug or am I doing something wrong?
  • CheeseOnToast
    Offline / Send Message
    CheeseOnToast greentooth
    It's uninituative as hell, but you can fix this with the built-in scale master plugin. Get your head round the idea that zbrush deals in generic units, so something that's 2 units in zbrush will import differently into different apps. For example, Max and Maya use centimetres as the default unit scale, so our 2 unit zbrush model will import at 2 centimetres. Importing the same model to Blender with its metre based scale will result in a 2 metre object.

    To see what the current subtool scale in generic units is currently at, start the scale master plugin then hit "set scene scale" button. The XYZ numbers at the top are how many zbrush units it currently is, mulitiplied by the export scale. Example :


    So if I exported or GoZ'ed this model, it would be 156.18 cm tall in Max.

    Now, here's the really unintuative bit. Start by picking a set of dimensions that somewhat resembles the size you're after from the Set Scene Scale dialogue box. Don't worry too much if none of the options seems right- we'll fix it later.

    Back in the main dialogue box for Scale Master, change the units to millimetres. Then hit "Sliders to Subtool Size". Change one of the values in the XYZ to the desired number of units in the target app - Max in your case. For a character, this'll usually be the Y coordinate for the height. Forget that Zbrush is showing it in millimetres - this will be exported as generic units. If you want your character to be 200cm tall in Max, set the Y to 200mm, for example.

    Nearly there - hit "Resize Subtool" and let Zbrush do its thing.
    Finally, hit "Zbrush Scale Unify". This internally scales the subtools within zbrush to a scale that works well with brushes, dynamesh etc., avoiding having huge or tiny brush cursors. It changes the export scale appropriately to maintain the dimensions you just set  - you should never have to manually change the export scale value.

    There's a bit more to it, using the "New Bounding Box Subtool" option is really useful for setting scale on objects that are made of multiple subtools where you want them to be considered as one object for measuring purposes. Hopefully this'll make sense when you try it out yourself.
  • CheeseOnToast
    Offline / Send Message
    CheeseOnToast greentooth
    I forgot to actually answer your first post. When you use GoZ from Max, I believe the model is being exported and imported as an OBJ, under the hood. This uses generic units as discussed in my post above. So a character in max that is 180cm tall will be imported into Zbrush at 180 generic units. Zbrush works best with subtools around 2x2x2 generic units. That's why your model is so huge.

    The FBX format contains real-world scale info rather than just generic units. Zbrush has scale converter buit-in to the FBX importer I think, which is why you don't have the same problem with this file type. On import, it also sets the export scale value to the correct number to maintain the scale between apps.

    edit: I was wrong on this one. When you import a model into Zbrush as the first subtool of a model it internally scales it to fit within its ideal 2x2x2 bounding box, then changes the export scale appropriately which maintains scale between apps. If you use initially use GoZ to export the first subtool directly to Zbrush it seems to skip the above step, resulting in huge or tiny models. So to avoid the issue, make sure to import your first subtool to Z manually. Once the scene scale has been set correctly, you can then safely use GoZ again.
  • jesselarson
    Offline / Send Message
    jesselarson polycounter lvl 2
    Wow, that's awesome info! Thanks for taking the time to post this. It's incredibly helpful.
  • CheeseOnToast
    Offline / Send Message
    CheeseOnToast greentooth
    No problem. Scale, world position and symmetry are dark arts in Zbrush. I bashed my head against the wall on this stuff for ages before I found out how it actually works.
Sign In or Register to comment.