Problem with rig in object and edit mode

Question Rigging

Hi, it´s me again with more issues  :) .

I´m having troubles with my armature, because I scaled it in object mode to match my environment  and would like to set the new scaling, location and rotation as correct so I aplly all transforms. But when I want to parent a new object to my armature it takes the information/transformations of my armature in edit mode and i´ts very hard to parent the right way objects (clothes) to my armature.

Applyng transforms of the armature does not work

@waylow  :)

e pantalla (137).pnge pantalla (138).png

  • Wayne Dixon replied

    Hi Adrian,
    It can be a little tricky to resolve scale issues after resizing objects etc, in an ideal scenario, you make sure everything is the correct size before parenting, but let's see if I can help.

    Fixing the stretch to constraints:
    If you are using an armature that has stretch-to constraints (rigify does), then if you scale in object more and then apply, it will mess with these constraints and they need to be reset.  You can reset these manually by clicking on every bone that uses one, and clicking the X next to the "rest length" value.
    Or you can use a python script to do this for you.

    But probably the best thing to do in your case would be to make sure the meta rig is the correct size and then regenerate.


    Fixing scale of the mesh objects:

    Because the meshes are parented to the armature they take on the transformations of the parent.  So if you resize and apply, it can mess with the object scale.
    The best way to fix that is to disconnect the parenting (keep transformations) > re-generate your rig (or apply the scale) > then apply the scale of your meshes > reparent the meshes to the armature object (and make sure you haven't added and extra armature modifier on the geo in any of those steps.


    It's also helpful to know the exact amount you scaled up your object so that if you need to manually adjust anything you know that value.
    For example if it was 9.154x bigger, you can paste that value into the scale for X,Y,Z and then apply.  That way the scale will be back to 1,1,1 but the exact size you need it to be.

    Also make sure you rig the character at the world origin as this will give you fewer headaches.


    I hope that helps.
    Oh and here is a script that will reset all the stretch-to constraints (make sure you have the armature selected as the active object)

    import bpy
    
    for b in bpy.context.active_object.pose.bones:
        for c in b.constraints:
            if c.type == "STRETCH_TO":
                c.rest_length = 0
    
    1 love
  • Adrian Weber(Schmubze) replied

    Thank you very much for taking the time