ZBrushCentral

FBX Export Scale

Hey guys,

I just finally got Zbrush 4R7 installed and i have been testing out the blendshapes export with FBX, which works like a charm, but I have a slight problem with the model export being WAY much smaller than the actual mesh. When I GoZ the same mesh, the scale is exactly as it was in Modo, but with FBX, the model is way too small… is there a way to make it match the same scale as the source model? Thanks.

ZBrush’s sculpting brushes and other features work best when the model is a specific size. That’s why if you import an OBJ into the PolyMesh3D Star it will be auto-scaled. The FBX plugin follows this method. It only affects how your model looks in ZBrush - the Transpose line will still give the correct measurements (in generic units equivalent to whatever your export units were) and the model will be correctly scaled on export.

GoZ doesn’t use auto-scaling (although there has been some discussion whether it should). So if you are mixing GoZ and FBX you could run into scaling problems.

The FBX plugin doesn’t include a way to turn off auto-scaling at the moment but I will consider adding it in an update. In the meantime, the script below will solve your problem.

  1. Download the file to your Desktop and unzip it.
  2. Open any folder that may have been created and find the Change_FBX_AutoScale.zsc file.
  3. Copy the Change_FBX_AutoScale.zsc file to your ZBrush 4R7\ZScripts folder so you can find it again should you need it.
  4. In ZBrush, press the ZScript>Load button and select the Change_FBX_AutoScale.zsc file.
  5. Press ‘H’ on the keyboard. This shows the ZScript Window at the bottom of the UI. You may need to click and drag to show the button.
  6. Press the FBX AutoScale button.

The script will toggle the FBX AutoScale for whichever version of ZBrush you are using (32-bit or 64-bit), so if you want to turn auto-scale back on later just reload the script and press the button.

ZScript-window.jpg

I will give the script a shot… I have my character modelled around real world units (in this case meters because I am using Unity). I had to rescale my entire model 10000% it’s size on my first test… I will let you know my findings.

EDIT: Okay, that turn off the IMPORT AUTO SCALE… I need it to turn off the EXPORT AUTO SCALE

Okay, that turn off the IMPORT AUTO SCALE… I need it to turn off the EXPORT AUTO SCALE

If you are importing with auto-scale turned off for FBX then the Export scale will be set to 1, which is what you want. You actually don’t need to worry about auto-scaling at all for export as the scale will always be correct when exporting.

But make sure that your import settings in Modo are correct for FBX. The default units for FBX are centimeters (cm), so you will need to check that Modo system units are also cm, or the correct conversion is done on import.

Additionally it looks as though Modo scales FBX up by 10 on export:
http://www.polycount.com/forum/showthread.php?t=139029

That wasn’t happening with my model… I am testing a head I modeled in Modo and it is real world scale… when I use FBX export, and import it into Modo, the head is wayyyyyy too small and it doesn’t match. If I GoZ that same head into Modo, the scale is correct. I am using meters which is the default units for Unity.

EDIT: And I just changed my units to cm and the head model is still the same… let me test this again with everything at default.

If you can export a simple cube from Modo as an FBX ascii format I’ll take a look.

Zbrush’s real world scale is in inches I believe. If you match it, your scaling problem should go away. Resolves some weird import/export issues, like having to use gigantic brush sizes in zbrush - or having to initialize imported meshes. Not 100% sure it was inches, been a while since I messed with that, but I’d bed its in a similar size setup.

No, ZBrush simply uses ‘generic units’, as does the OBJ format.

I’ll do that when I get home. Also in my export options, the scene scale is set to 1. And funny that you mentioned centimeters, because ZBRUSH default units seem to be in cm.

EDIT: Would be nice if GoZ did the blendshape export too :slight_smile:

Yes it uses “units” but those units are still based on a scale somewhere in the code, and knowing that allows you to setup other programs to work with zbrush, and its “units” and Halo figured it out, CM is what I was thinking of. It really works, try it out :slight_smile:

Here is a simple cube for you to test. It is created in modo at 1m. My default units are in centimeters.

Thanks, that’s perfect. When I import this into ZBrush then the Transpose line gives a measurement of 100 (see image) which is correct for a measurement of 100 cm in your original. I imported using FBX with auto-scale on, as with the standard installation of the plugin. The Tool>Export sub-palette shows that ZBrush has scaled the cube down to 1/50 on import and will scale up by 50 on export. This is what I’d expect.

The second image shows both cubes imported into Maya. The one on the right is your FBX from Modo, and the one on the left is the same cube exported as FBX from ZBrush. As you’ll see, the cubes are the same size and measure 100 cm (cm is Maya’s default unit).

So this shows that if FBX files exported from ZBrush are coming into Modo at the wrong size then there must be a setting you are missing. I don’t have Modo, so I can’t test but in Maya, for example, you need to check that the units are the same or the appropriate scaling is applied.

Attachments

Cube_Scale.jpg

Maya_grab.jpg

Good morning Marcus, I have modo set to centimeters so I will have to play around and see what settings will work for FBX export. My models need to expirt correctly or I can’t use the fbx export :frowning:

Good morning. :slight_smile:

Export from Modo is fine, it is importing the FBX file back into Modo you need to look at.

The scale is simply a generic unit. In other words, if you have a vertex which has coordinates (1,1,1) then that is one generic unit away from the origin along each axis. That’s all there is to it. The actual unit is determined by the program you are working in, so that, for example, Maya regards that as 1 cm from the origin. Some 3D file formats, such as FBX, include the unit they are using. But others, such as OBJ, do not. ZBrush doesn’t use anything other than the generic unit, so you can basically call it what you like. One generic unit can represent a mm or a mile in ZBrush, there’s no difference.

I’ll have to play with the export scale. Should be pretty easy once I get around it. it would be awesome for an update if I could GoZ meshes with blendshapes :). That will make my life eaaier. Intially, the model was created in zbrush 4r6 and exported 1 to 1. I may have to export the character from modo and see what the export scale ends up being. Thanks again.

I’ll say this again: the FBX export from ZBrush is exactly as it should be. You don’t need to touch anything. The Cube FBX from Modo you sent me and the same cube exported from ZBrush are identical. There are no differences at all. I showed you that with the Maya screenshot. Therefore the problem is with how Modo handles importing FBX.

EDIT: I downloaded Modo 801, and can export FBX to ZBrush and back with no scale issues using the default settings. Perhaps you have a different Modo version?

I’m using, Modo 701. I did use FBX 2013 to export from Zbrush. I’ll try it again.

So I did a new export test by importing an FBX from my unity project, and the model scaled up over 10,000 times it’s size (it was 170.8 units tall) and in Modo it’s 1.70m tall… so to work around this, I had to rescale the model 9900%… so until I get Modo 801, I will have to do this the old fashion way.