Does size matter in Unity, Overall function and performance

Hey all I was wondering about actual size of objects in Unity.

I have worked on many games with many CG programs and I know scale has always been an issue.

Looking through the posts I have not found an answer.
Centimeter and Meters is probably not as important as actual physical size.

Some of the unity demo objects are extremely small compared to others. (See image below)

In going through the FPS demo this question occurred to me again.

I opened the robot, Penelope and Leo fbx from the demos in Maya and noticed they are very very small. I then opened some chars I have from UE3 and PS2. The UE3 char a normal Maya size came in about 6 ft tall, the PS2 char came in about 1/2 the size @ 3ft tall in Maya and the demo chars from the demos are about 1inch tall in Maya.

Scale always effects things like physics and lighting etc.

I did search the Forum and did not find this exact question, I may have missed it. I have a feeling that this is an important item to know when using any game or animation package.

  1. is scale an issues in Unity?

  2. Should I use the scale / size of the Demo’s as a circa default size when creating my chars and assets for Unity? Penelope, Lerpz, FPS or 3rd person size?

  3. If I used my UE3 char is Unity at 6ft tall will it have issues or should it be scaled down to an 1inch, matching the robot from the demo before I fbx it to Unity.

  4. How important is scale in Unity?

  5. Is there a Maya scale standard for Unity.

  6. Is there a reason for the scale size in all the demos?

Thank all of you in advance.

Unity has a default scale where one game unity equates to 1 meter. So your average character will be around 6ft.

How your model comes into Unity depends a bit on the scale you used in your modeling software. You can make adjustments through the scale parameter in the input settings.

If you search the forums for ‘maya scale’ I’m sure you’ll find some tips. I use modo generally with default units set to meters and things work well.

In terms of physics, everything is tailored around that scale. However if you have small objects such as a one inch long bullet, the physics system tends to break down.

When modeling physics for those small scales, it’s best to change things around a bit. Scale your smallest rigidbody to be one meter in size inside your modeling package and scale everything else up around that, including gravity. When you run things through your calculator you end up with crazy gravity settings like 5k+ but it works like a charm.

Thank you very much for your comment.

I think you may be correct in going with proper meter size, ie male char about 2meters tall.

It is the rule that I have used for most all game engines and also for rendering for TV and Film

I have attached an image to show more in detail what my question is really about.

The Penelope, Lerpz and FPS demos are on a scale of Centimeters, that’s fine, but the chars are only about 2cm tall / more or less in Unity.

The 3rd person, Car and CharacterCustomization demos are in meters and the chars and models are correct for that setting. ie hero char is about 2 meters tall in Unity.

Comparing the chars together, the chars are vastly different in size!

So does size matter in Unity, Units are relative…

Does the physical size of objects help more than others with the performance of unity?

I know in so many programs this is an important matter, for it also will effect all of your settings and performacne in most all programs, it may mean the difference in making adjustment, increments of 1 or increments of 100 when trying to adjust fx, animation, physics, lighting, camera clipping, display and overall performance?

Is it better for the overall function and performance of unity to make objects / chars
tiny ie chars are about 2cm tall?
or
Is it better for Unity as a game engine to have objects / chars at a proper meter scale? ie chars are about 2meters tall?

Thanks again for your reply
S

What size are those models imported at, 0.01 or 1?

thank you for the question.

Using the FPS Demos (The FPS Demo objects have an fbx scale of “1” and in the 3rd person demo, the items are scaled down by .01 fbx in unity)

the FPS robot comes in as fbx setting of “1”
which would correct according to the image comparison.

when I bring in the Hero char from the 3rd person demo into the FPS demo he comes into the FPS scene fbx scale @ “.01” which means Unity is scaling him down.

So is it better to build your models and chars so they come into unity @ scale of 1 from the get go or does it just not matter.

I feel that there is always an issue somewhere when scaling items (animation blending etc).

I would prefer to build my rigs to the proper size, so there are no issues down the road, if there is an official size that matters.
Am I making sense?

S-

thank you for the question.

Using the FPS Demos (The FPS Demo objects have an fbx scale of “1” and in the 3rd person demo, the items are scaled down by .01 fbx in unity)

the FPS robot comes in as fbx setting of “1”
which would correct according to the image comparison.

when I bring in the Hero char from the 3rd person demo into the FPS demo he comes into the FPS scene fbx scale @ “.01” which means Unity is scaling him down.

So is it better to build your models and chars so they come into unity @ scale of 1 from the get go or does it just not matter.

I feel that there is always an issue somewhere when scaling items (animation blending etc).

I would prefer to build my rigs to the proper size, so there are no issues down the road,
that is if there is an “official Unity” size that matters.
Am I making sense?

S-

It makes no difference what the import scale is, but for physics reasons it’s best to have objects at relatively realistic sizes in Unity.

Ok thank you for your time, I do appreciate it!
So if I keep meters as my default unit size and my chars are about 2 meters ie 6ft 1m82cm then everything should be good to go?
Thanks again Ant…
Stan

To make long story short: Unity, as the most engines, use “unit”. That is - it is virtual unit, you may think of it as you wish: meter, centimeter etc.
The only place where unit is attached to meters is default gravity - which is expressed using meters. So as long as you don’t forget about it - you’re good to go.
My 2 cents: better to keep everything in meters - most physics reference texts will use it too.
To proper import your models - look through unity faqs for your package of choice.

Thank you
I did refer to the faq’s page as you suggest, first place I looked actually.

Ok now I am a little confused.

setting my maya package to meters
my char is 6ft tall
when I import this to unity it scales it automatically to .01 in the fbx settings

If unity is indeed 1 meter units it should not scale my char. It should come is as “1”.
Do I need to change the “.01” scale to “1” in the fbx settings to keep it all correct meters?

Yes.

Hey, don’t forget two things:

  1. Actually, how can unity know what are your units in maya?
  2. It imports your mesh through fbx - so that’s another unknown in the chain
    So import settings scale is here for your convinience. Basically, if i’m not missing something myself, if you set system units in maya to meters, display units to meters (just to not confuse yourself ;-)), fbx import to meters, AND import scale to 1.0 - you’ll get what you want 8)

Thank you Alex.

Here is an image of what I have found so far
In Unity
If everything is correct the default cubes in this scene are 1 meter each by default, so two of them are 2 meters tall.
(The fbx hero char is from the 3rd person demo)

the char is almost 2 meters tall when imported into maya with fbx
(maya units to meters in the perfs.)

I brought the Hero FBX into Unity from the demo and it scales it to .01 / as shown on the right of the image.

I have re-exported the hero Char from maya with fbx and no matter how I set the units in maya or the measurement in FBX
(I tried 8 different combination of maya units and fbx scale measurements and the result are all the same)
Unity scaled the Hero char in the fbx to .01

There is no way that I can find to to make maya fbx and unity to keep the scale of an import to “1” and not “.01”

aNTeNNa trEE?
you answered yes to my question to change my scale to “1” after importing it.
when I do that my hero is way larger than the boxes??
Are the cubes not 1 meter by default units tall?

Thank you all for helping, I just want to get it right the first time.
S-

321931--11355--$meterunit_813.jpg

Have you tried to follow these instructions when setting up the units on maya??

"Setting Unit in Maya

In Maya, you can set your unit size to the same as Unity units by clicking on on Window => Settings/Preferences => Preferences then clicking on Settings => Working Units => Linear and changing it to “centimeter”.
From now, centimeter is the unit we work on in Maya."

http://www.unifycommunity.com/wiki/index.php?title=Maya

How big is the character in Maya? Doesn’t he look pretty big? Yes? Ok, so when you import him into Unity we scale him down to be roughly 2 meters tall.

Don’t over think this too much :wink:

The important part is that he’s 2 meters in Unity…

That’s a good tip.
Yup, I have been using maya since Alias days, so I am pretty familiar with seting things up in units,
its the first thing to make sure of in getting things right when starting a project.
That is why I am looking for some clarity.

The more I look into it the more things are not so clear about this.

The first tutorials from unity, the chars are very small in the scene and do not have a scale factor change, the latest demos the chars are much larger in unity and are scaled down to .01

Why is Unity scaling Maya units down to .01

If both are truly 1 meter standard units?
A meter is a meter and no scaling should be required!

but this does not seem to be the case…

thank you again for your tip.
S-

Hi again aNTeNNa trEE
I wish I could not worry, but getting it sorted now will save time and money later, for sure.

He is 2 meters tall in maya so he looks very normal because everything else is to scale.
so he should be 2 meters tall in unity without any scaling.

I just dont want to have animation blending problems or physics issues later or have to write special scripts because there is a .01 scale on the char rig is all. Especially if I can bring something into Unity without a scale factor or have it be “1” and not “.01”

I think you can understand, there will be several different chars later and rigs really dont scale and they will all have to be rebuilt and everything reskined if the .01 becomes an issue.

Have you every imported anything into unity without it scaleing it?

if you have how?

I am sure you can understand my concern, because in the end it tends to cost a lot of time and money keeping programmers fixing things and artists waiting while a fix is being saught after.
Stan

And the fact remains that all 4 characters you showed in your first screenshot all work regardless of what scale you set them to right? So what matters most is relativity. So if you build all of your stuff to a certain scale it doesn’t matter what that scale is as long as it’s all the same. Then you know what import scale setting to use in Unity.

Hmm aNTeNNa trEE
Unity is setting the scale on its own, so I do not know because it is doing it on its own without any explanation why.

so just to be clear, you are saying, if my char is 2 meters tall in maya and it gets scaled .01 in unity just leave it as is and keep on working?

and everything is going to work fine!

If thats the case I guess that answers my question.
Maybe not as detailed as I would like to know but at least I can move on with rigging the chars and keeping them the size they are.
Stan

The default scale factor is 0.01… but it’s just a default setting and it’s just a factor.

I’ll say it one more time. The most important thing is that if you want your character to be two meters tall in Unity it doesn’t make any difference what the scale factor is in the import settings… 0.01, 1, 100, 1000, 100000… as long as the end result is a 2 meter tall character in Unity.