How do you properly scale a rigify rig?

OK, so I have two characters rigged and working nicely. I linked both of them into a new file as a test and realized that somewhere along the line I brain farted and modeled the characters at very different scales.

So I thought OK, I will just scale one of them and be on our way…well that did not work as well as expected.
To do so I first un-parented the mesh - I found an older post on line that advised to do so. Then scaled everything down together. Then first started applying the scale of the rig - and that is when I saw the issue.

This is the rig before applying the scale


Here is the file before applying the scale.
http://pasteall.org/blend/index.php?id=43614

And this is the rig after applying the scale.


The circled bones (which are the deformation bones) shrank. I did some hunting online and found reference to a very old post (blender 2.4 version) that talked about bone which have a “stretch-to” constraint could be an issue when scaling and to reset the constraint. I did this and no change.

So the question is, how do I scale an armature (rigify in this case) and keep everything in order?

Alternatives
A - forget about the scale issue and in the linked scene file, just scale the one rig/character to the size I want (not apply the scale) and just move forward - Everything seems to work fine that way, I just don’t know if there will be other issues in the future.

B - See if deleting all “stretch-to” constraints (not just re-setting them) will do the trick. I don’t use any of the stretch features of the rigify rig anyway.

C - Scale everything and redo the whole weighting - I really hope this is not the solution.

Hope someone can help.

This may be an over simple answer, but all I have ever had to do to get two rigged objects to be the same relative scale is to scale the root bone in Pose Mode and then keyframe that. All other aspects of the rig and mesh will still work properly, this is one reason why all rigs should have a root bone to which all major bones and IK targets are parented.

if this does not work for you, please post a blend file for me to look at. I note you have used a Rigify rig, so the root bone should be present.

Cheers, Clock.

You don’t need to rescale the rig, apply the scale or reset any stretch to constraints. Set the scale you need by scaling the root bone in Pose mode in the animation file. Everything is designed to work at any scale in a Rigify rig. That is what the root bone is for. Just scale it to the correct size, add a keyframe, hide the control and continue on. Hiding the control keeps you from resetting the scale when using Alt G,R,S to reset the rig controls to the base pose.

Any additional bones and functionality may not work if it was not designed with the root bone in mind. You’ll need to test the rig at different scales to see if anything breaks.

It’s best to set the correct scale when you begin rigging, but it’s not the end of the world.

Good luck!

Thanks Guys, that works perfectly well.

Again, I appreciate the help.

OK, well…not perfectly well. I forgot I hid a few items which are vertex parented. After un-hiding them I found that they are not scaling with the rest of the rig/mesh. I tried a “copy scale” constraint so these parts would scale relative to another part of the body and it did not work.

Any ideas?

Hmm. I did not know that vertex parenting would not allow the object to inherit the scale of the mesh it was parented too. I just did a few basic tests and it works like you said. Adding copy scale constraint to the child object pointing at a bone in the rig does not fix the issue. I did find a work around, but it’s a little convoluted.

What items are you using vertex parenting with? Could you give a screenshot? Maybe a different method could be found to rig those items so the inherit scale problem won’t be an issue.

Its the straps and buckles on the leather armor piece.


I used vertex parenting to prevent the straps/buckles from distorting when bending the character. The leather vest uses a mesh deform modifier. It works great…until I try and scale it.

would love to find a solution, but I did try using a mesh deform on the straps and buckles and it is not as bad as I remember.

I have not tested this extensively, so I cannot guarantee there will be no additional problems. Here is my solution to the scaling issue with vertex parenting.

Create a second armature with bones placed where you want to do vertex parenting. Add a copy scale constraint to the bone(s) to copy the scale of the main armature’s root bone. Vertex parent the bone in the secondary rig to the mesh. (Select the bone in Pose Mode, Shift select the Mesh, Enter Edit Mode, Select three vertices, CTRL-P Make Vertex Parent.) Parent the object (buckle) to that bone instead of parenting to the mesh with vertex parenting. Add the second armature to the main group you will be using for linking.

Everything should work when linking the group into a new scene and scaling the root bone. One odd thing I found is if you make the secondary rig 'Proxy" after linking, it breaks the vertex parenting. Only create a proxy for the main rig when linking.

This fix avoids dependency issues or using a bunch of empty objects.

Here is a sample file: Vertex parent scale issue.blend (514 KB)

My suggestion is to try this out on a couple of buckles before completely committing to this fix.

Good luck!

So I made some progress. Instead of trying to re-use the rig I had, I ended up un-parenting the entire mesh, deleted the problematic rig, scaled the mesh and the meta-rig to the height I wanted. Re-generated a new rig and parented the mesh to the new rig. Since it has the same names as the problematic rig everything - weights, constraints, etc. - all worked. I did have to manually assign the correct bones to constraints etc. but so far it is all working. I did make some custom bones for the skirt and sword, but copied those out of the old rig, scaled, applied scale and joined it to the new rig and those too are working. This took less then an hour vs. the couple of days I had been trying to fix all of the issues I had run into.

So far problem solved. I will work on a few test poses over the next week to make sure. This also solved the issue of the armor straps and buckles scale issue.

Thanks again for the help guys