Home Technical Talk

re Blender unit scale

Ruz
polycount lvl 666
Offline / Send Message
Ruz polycount lvl 666
This is really starting to bug me . for example, made a small town, unit scale set to 1 and units to metres, works fine.
so in my other scene I have a character 185 cm tall , unit scale set to 0.01 character is still 185 cm( according to the measurement tool), but when i append it to the town it's flipping enormous, like he is a giant actually invading the town :0
I do not want to scale amy armature and mesh at the end as it fucks up the sub surface scattering

In reality If I set the character unit scale to 1 , but still use cm, then its true size is not 185 cm, it's like 1,850  cm

so if I use metres  for characters and set the scene unit scale to 1 then i have problems with settings for shaders, hair etc, lights

I want to use an actual size for stuff, not changing uinit scale so it 'appears' to be correct size when using the ruler or edge length

surely it woud be better to always use a unit scale of 1 ? totally confused here

it seems as though the best thing to do would be to append any character mesh to a scene with a default cube , scene set to metres and unit scale of 1.
if my character fits within that cube then it's more or less the right size?

Replies

  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    To understand you more clearly, you're importing an asset where 1 unit = 0.01m into a scene where 1 unit = 1.00m?

    If so then you'll need to scale one or the other by a factor of 100x and then set your camera clip accordingly.
  • Ruz
    Options
    Offline / Send Message
    Ruz polycount lvl 666
    That's correct Axl5
    Problem is for example, my city scene is set to Unit scale of 1 and set to metres which is perfectly fine in terms of convenience ie a building will have maybe a 2m doorway etc

    Characters are generally set at unit scale of 0.01 or 0.1 and set to centimetres, so when i append my character to the scene the character is huge, like a giant basically.
    appending or linking a file has no option to match the scale like in 3ds max( don't want to import it via fbx)
    So yeah i could scale the armature, but then the SSS scale of all my materials is messed up, along with other stuff like hair etc, cloth physics.
    Blender surely must have a better solutuion than this?

    i mean i could set my character scene scale to 1 rather then 0.01, but that messes up a lot of stuff and seems a bit tiny in the scene, sss is weird and hair goes a bit funky

    The other option is to scale my city scene to match the character( it will also be frigging huge then)
    I guess either Blender has a few shortcomings or i don't quite understand how scene scales work:)

    i can fix it , but was hoping someone had a better solution re mix and matching scales between scenes

  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    Unfortunately Blender doesn't pay attention to the units setting when linking/appending as far as I can tell, it just takes the data directly out of the blend file. So if the scale in there is 1,1,1 it'll still be 1,1,1 in the new file regardless of the unit setting. You can verify this:

    Create a new scene with the default cube and set the world scale to 0.01 save and close it.

    Create a new scene and leave the units at 1.0, link the cube object (not mesh) from the 0.01 scene and you'll see how it basically just adopts the scale of the new scene. They'll both be the same size while the scale is at 1,1,1 on each of them. Our 0.01 scene box was 1cm, but now in our new scene it's 1m.

    This seems to be unavoidable, but it is predictable. If your units are 0.01 in the first scene, and 1.00 in the second, then you should just be able to scale by the inverse amount to get the original size.

    As a workaround, you can throw an Empty with a 0.01x scale into the scene and parent your character's armature, mesh, and hair underneath it. Underneath this empty, all of your transforms should behave as they normally would in your source scene. There's going to be a big mismatch here though, when animating your character walking around the city they'll have to move 100x as fast as a correctly scaled model because in their host world they're only 1.85cm tall now (while having the physical appearance of being 1.85m). This could have knock on effects in physics, and other motion activities.

    You're better off getting these scenes to work at the same scene scale in the long run. I don't think it should be too challenging and it saves having to work with any potential issues in the future. I'd recommend getting the character scale back to Blender's defaults to be honest just to be on the safer side but either way works.

    If your character has too much complicated physics, rigging or hair going on then I'd recommend looking at alembic as a possibility instead but that's outside of my area of knowledge.
  • Ruz
    Options
    Offline / Send Message
    Ruz polycount lvl 666
    thanks for the feeddback, makes a lot of sense. I am not even sure why you are supposed to have the scene scale for characters at 0.1 or 0.01 in cm as it would be just as easy to work in metres for a default male character tbh.( yuo can set the hair strand radius independently of the scene scale, but not the initial length which is weird)

    I have always done it that way , sure there is a good reason, probably something to do with it not being too small in zbrush, but I am not really in to this tech stuff overall, it just bugs me when i run in to these problems :)

    you have to be careful though, because it turns out you need it at a certain scale, you might mess up the rigging animation etc as oyu mentioned

    parenting the whoile lot is probably the best solution, just gotta change the SSS scale, which won't take long, burt might try and do it the actual required scale as you mentioned.
    sigh, will look at it some more later

  • Ruz
    Options
    Offline / Send Message
    Ruz polycount lvl 666
    just to add that I have kind of got this now, previously i was using 3ds  max, so i had the characters pretty big when i imported to blender too big , but now I will just model my characters at real size in metres, then display them as either cm or metres.
    fairly ok and scaling with an empty still messes up the hair, but if you disconnect it from the emitter and apply transofrom, it works ok
    ( reconnect it after)
    phew i am feelling a bit better about this now, animations work fine also
Sign In or Register to comment.