Reply To: Symmetrize / Bone Roll Question

Forum Archive Symmetrize / Bone Roll Question Reply To: Symmetrize / Bone Roll Question

#96269
Wayne Dixon
Participant

    Excellent questions Eluoan.

    I’ll do my best to explain without it getting complicated (which it can if you start talking about maths)

    Pole Angle:

    First – your question about the IK pole angle and why we don’t manually adjust the edit bone.
    You can do this in most circumstances but it depends on a few things…

    If you have other bones that need to copy the orientation of the IK chain (say a DEF or FK controls), and those bones need to have a specific orientation because that’s the best position for animators.
    Then it’s better not to have those other bones shift between edit mode and pose mode.  For example, you might have the DEF bone x axis pointing left, but the constraint will then make it twist around to follow you IK bone.

    There are many workarounds for all the many situations – but in my experience it’s far easy to only have to think about as little as possible.  So in the case of IK chains, rather than making sure all the affected bones are oriented exactly right, or have the correct settings on their respective constraints – it’s easier to just deal with the 1 pole angle value.

    Bone Roll and Symmetry:

    This seems simple, but it isn’t quite straight forward.

    When you symmetrize a mesh object – 1 side is pretty much scale by -1 over the x axis.

    However, with bones, they have x,y,z axes that always need to stay in the same relationship to each other.  What is this relationship?
    You heard Martin mention the left handed and right handed coordinate system.  Well this is a mathematical term for which direction is +x, +y, and +z.
    (Blender -like many other softwares- is right handed).

    What makes it right handed?

    Make a finger gun with your right hand.
    Thumb is up, pointer finger is forward.  Now stick out your middle finger in the 3rd direction.  
    The direction your fingers are pointing with your right hand – are the positive directions.
    (There’s more to this but for simplicity we can leave that explanation there)

     Why isn’t it as simple as scaling the x axis by -1?
    That would change it from right handed to left handed.  This breaks everything.

    What is bone roll?

    Bone roll goes from -180 to +180, and it’s really just a way for riggers to adjust the orientation of an edit bone in the UI.
    Under the hood, Blender uses this value to construct the bone’s orientation matrix.
    It’s a fancy way of saying, “it’s the simplest way for humans to point the bone where you want, but Blender is going to crunch the mathematical numbers for you”
     
    That’s great that Blender dumbs it down for us.

    However, it means that you simply can’t just flip the value of a Bone Roll in order to symmetrize it.  This would change it from right handed to left handed – which breaks everything.  It needs to be recalculated in the same coordinate system, just pointing in the mirrored direction.

    TL;DR
    So how does Symmetrize work?

    Here’s the easy explanation.
    The position of the head and the tail of the bones are mirrored across the x axis.
    And the bone roll is recalculated to point in the mirrored direction.