Local Space (With Parent) and Local Space for bones

Sorry, I'm kinda confused about the difference between local space (with parent) and local space for bones. (I'm aware that we haven't really placed this into practice anywhere so I may just be overthinking this)

I can't really tell the difference between these two local spaces types, as the transformations to the child look exactly the same. The only thing I'm assuming is that this is just a terminology thing? Because the numbers in the transformation tab on the sidebar of the child don't change when you move the parent in pose mode, it only changes when you move the child in pose mode, which makes sense because it's moving away from it's rest position.  

Like for example, for local space (with parent), when the parent moves, then the child's local space is affected as it takes into account the parent's transformations. However, for local space for bones, when the parent moves the child's local space does not take into account the parent's transformation but the child is still being moved in the same direction as the parent. It's also not reflected on the transformation sidebar of the child whenever the parent moves. So, is this just a mental note we need to take note of? If it is, wouldn't it be slightly hard to track the actual local space if we had moved the child a couple of times and then the parent a couple of times, causing us to lose track of how many transformations we did on the actual child vs. on the parent. 

Also, in the example with the world space, it's stated that the local space is calculated relative to the parent. So if the child is 3 units to the right of the parent, then it's local position should be [3,0,0]. But I found that this is only reflected properly on the side bar if parenting happens when both the child and parent are on the world origin, and then you move the child. In the screenshot below the parent (Suzanne) was moved 3 units up the Z axis whilst the child (Cube) was on the world origin when I executed the parenting. The local space of the child should be [0, 0, -3], but this isn't shown explicitly on the transformation tab.



1 love
Reply
  • Wayne Dixon replied

    Hi Jim, don't be sorry about not fully understanding space.  It is super mega confusing!!

    Space is one of those things where your understanding goes on a little journey over many years.
    First your brain - yep, I got this, I don't know why people get confused. Easy Peazsy.
    Then your brain goes - wait, but this part doesn't make sense.
    Later you start to understand it a little more :)
    And finally when you are totally confused again - that's when you know you've mastered your understanding.


    It's difficult to explain (and understand) so rather than me try and explain it in a different and possibly more confusing way, I'll just point out a few things for future you.
    It will probably not feel like it's very helpful right now, but this will probably click a little later.....and then un-click.  (don't worry that is normal....did I mention this stuff is confusing?))


    - The Transform channels will never change unless the user changes them.  Constraints* or parenting won't change these.
    *(but some constraints can limit the values)
    This means that if you parent an object, the transformation used to keep it in place is stored in a parent inverse matrix not the object transformation matrix.
    This matrix is mostly hidden from the user

    - What's a Matrix you ask?
    It's an array of numbers that stores the loc, rot, and scale all smooshed together.  It's how computers like to calculate stuff.  They are basically showing off because they can do linear algebra on the fly while it takes humans about 10mins to multiply 2 matrices together by hand (not joking)

    - Bones work a little differently in some situations because they have a rest pose, where as objects don't.  (although vertices have a default position if you enable it with a setting....only needed with geo nodes in some cases)

    - You probably will never need to use Local with Parent.
    You will most likely use, Local, World and Local Owner Orientation.

    - Pose Space and World Space are exactly the same if the armature is at [0,0,0].  If you move it away, it becomes different. Pose Space is always relative to the object origin, where as world space is relative to the world origin.

    Hope that helps future you ;)

    3 loves
  • Jim Lee(slimjim) replied

    Thanks! that helps alot!

    1 love