Trying to recreate the first example in the video and failing

posted to: Understanding Space

I created a new monkey object at [3,3] XZ of world space just like in the video.

I created an armature object and placed it at [6,3] of XZ world space just like in the video.

I made the armature a parent of the monkey, but it still says it's located at [6,3] (as pictured)

I tried parenting it other way around (as for some reason that's the way it's done in the video?) but still no change.


1 love
Reply
  • Arek Nowakowski(arekn) replied

    Ok, I think I managed to recreate it. When making monkey the parent I had to use the Object Properties tab and not the Ctrl + P shortcut.

    I know it has to do with the inverse matrix that's applied but I'm not sure why the results differ between the two:

    1. Make monkey the parent, apply the inverse matrix => the rig is still positioned in relation to world's origin.

    VS

    2. Make monkey the parent, don't apply the inverse matrix => the rig is now positioned in relation to monkey's origin.

    Why?


    1 love
  • Wayne Dixon replied

    Hi Kovalsky,
    When you're dealing with matrices things can get complicated, especially when dealing with an inverse matrix.
    In the above situations I think I parented the armature object to the monkey when the monkey was a 0,0,0 and the armature was at 3,0,0

    Inverse matrices also have a reference point. So this will change depending on when it does its calculations and what it is currently parented to.

    So if you parent the objects when they are both offset from the world origin - this will affect their inverse matrices.

    As I said in the video, it's complicated stuff if you try to make sense of it all.  At this stage all you need to realise is that spaces are co-ordinate systems with different reverence points.

    All you need to understand is World space (What you see is what you get)
    And local space (referenced from parent - although bones have a rest position too)

    This is probably not the answer you wanted but I hope it helps.

    1 love
  • Dwayne Savage(dillenbata3) replied

    The inverse matrix is really hard to explain, but luckily it's easy to show it's effect. Open up blender, select default cube and press g z 1 LMB to move cube up 1 meter. Now shift+a->mesh->monkey to add monkey. G y 3 LMB to move monkey 3 meters on y axis. Press n to open n-panel and click item tab. The monkey is at 3 meters on the Y axis in reference to the world origin. Click monkey then shift+click cube and press Ctrl+p->object. As you can see, on the monkey nothing changed on it transforms. Now with both  selected press alt+g. You'd expect both objects to goto world origin, but the monkey is at -1 on the z axis. This is because when the parent relationship was created the parent was at 1 z in reference to the world origin. To counter this you need to remove(inverse) that 1 z which is -1. That is what the inverse matric does. Now if you click the monkey and press alt+p->clear inverse  the monkey will jump to the world origin. Hope that helps. 

    1 love