Home Unity

Scene scale? Maya > Unity

purehilarity
polycounter lvl 6
Offline / Send Message
purehilarity polycounter lvl 6
Hi guys,

My background is in animation and not video games. I've never really been in charge of setting the working scale for a project in Unity or any other program really.

I'm hoping to get some advice on what scale to create my models for this Unity project. Is it common to work in real world measurements? For a character, would I make them the equivalent of 6' (so 1 unity unit is a meter, appox 1.8 units). I have heard that there are some built in physics that are based on 9.8 m/s so in that way it makes sense to me to use real measurements.

Also in terms of working in Maya to create my models, what is the best way to translate them into Unity so the scale works out correctly. Would I want to change the unit settings in Maya from CM to Meter or would I just import them with the right scale factor?

Sorry this is a bit of a ramble. It's always been a confusing subject because my background is in Abstract 3D not real measurements. I've now worked for a year doing Zbrush for 3D print so I've gotten the scale side of that program down but not Unity!

Thanks.

Replies

  • Owers
    Offline / Send Message
    Owers polycounter lvl 10
    Unity and Maya's relationship in regards to units is weird. Maya's default unit is centimeters, but Unity uses meters. You can change Maya's units to meters in preferences but it can not be set permanently, if you create a new scene in Maya it'll be set back to centimeters. As a result, a lot of people leave Maya's units set to centimeters, and Unity will automatically compensate by scaling up your mesh 100 times if it detects it has been exported from Maya.

    With that in mind:

    If you choose to work with centimeters in Maya, all you need to know is that 1 unit in Maya is 0.01 units in Unity. 1 Unity unit is 100 units in Maya. You can export an FBX file using the default settings and Unity will automatically import it with the correct scale.

    If you choose to work with meters in Maya, 1 unit in Maya will be 1 unit in Unity. To prevent Unity from upscaling your model you must make sure you export your mesh with centimeters in the FBX settings (Advanced Options > Units > Untick Automatic, set to 'Centimeters'). I prefer to work with this because I hate modelling with large numbers.
  • purehilarity
    Offline / Send Message
    purehilarity polycounter lvl 6
    Thanks Owers! Very helpful. Do you have any wisdom on picking a sale to work with? How large to make my characters for example.
  • stoofnie
    Offline / Send Message
    stoofnie polycounter lvl 4
    This is super useful thank you. I know this is a year old but in case people still stumble across this... @purehilarity 1.6 - 1.8 meters for an "average" human man size. Use this as a basis to make your world fit. Chuck a cube that is roughly the dimensions of a human man into your scene as a guide that way you can make your scene fit this scale. 

  • purehilarity
    Offline / Send Message
    purehilarity polycounter lvl 6
    Thanks Stoofnie. 

    Having worked in Unity quite a bit over the last year, here are some more things I have gathered:

    Unity has never detected that something has come from Maya as was stated above for me, so I just manually set the import setting in Unity for every model originating in Maya to 100. Always do this rather than scaling the mode itself, because that can mess with rigging/animation. This works better for me than trying to change Maya's settings to Meters, because most people work with the default. In Maya I would just convert the Units myself, pretending that 1.8 is meters even though I know the units are technically cm, to avoid your models being enormous in Maya. 

    I have learned that scale is very important in Unity, having recently worked on a project that was for some reason set way too small, it becomes hugely annoying when you start to work with distances that are .0001 to .001 etc. 

    If you are working with a Massive scale, the inverse would probably be true. I.e. a Warcraft type game you probably would not want to use real scale, but I haven't tried doing such a game. 





  • somerandomguy1
    Offline / Send Message
    somerandomguy1 polycounter lvl 4
    Scale is super important. I agree with OP that I have never had Unity detect an export from Maya. I've always had to either export full scale in maya or scale to 100 in unity after import. It's important to get scale right because I found that light baking takes a ridiculous amount more time to render if anything is larger than 1,1,1. 
  • HAWK12HT
    Offline / Send Message
    HAWK12HT polycounter lvl 12
    Hi, Ok I made this for other purpose but sure it can be used for your issue. Scale is something very very important unless you are writing a whole different physics engine for custom requirements within a team, in that case .1 can be counted as 1 meter in Unity etc but its best to stay with already established rules for basic stuff. 

Sign In or Register to comment.