blenderunity-game-engineblender-2.76

Why did Blender change my dimensions?


I was working with a simple cube in Blender which I wanted to use in Unity. I was using Metric units, with a scale of X=1, Y=1, Z=1 and Dimensions of X=1, Y=1, Z=1. I pulled it into Unity and it was working fine!

I know I definitely saved the Blender file, because this has happened twice now.

When I came back to it later, the scale was the same, but the dimensions changed to X=1.058, Y=1.058, and Z=1.058. Why did this happen? Thankfully it's already working in Unity so I don't have to reimport, but it's a little weird that the dimensions changed.


Solution

  • While I would expect the object scale is the culprit, you seem to have checked that. Also check any parent objects or armature bones, an object with a parent or an armature will show a scale of 1.0 but will be altered by the scale of the parent. A lattice or mesh deform modifier can also alter the dimension of an object without altering the scale. I am not sure that adjustments inherited from any parent objects will export to unity, but modifier deforms can alter dimensions if modifiers are applied during export.

    You should also check that the scale is not keyframed, a coloured background means it is keyed.

    scale settings

    Some constraints can alter the dimension of an object without appearing to alter the scale.

    constraint setting

    Check that your scene scale is 1.0

    scene unit settings

    Another possibility is the exporter settings, I expect you would be using FBX for unity -

    fbx settings

    If the scene and fbx scales are both 1.0 I would try exporting to unity with the units set to none, metric and also imperial, and see if you get the same size each time. If there is a variation from changing unit settings (allowing for possible imperial to metric conversion) then you should report it as a bug.