Rigging with parent and its children.

:confused: Why is that when I rotate the parent bone, the scaling of the object does not change but when I rotate any of its children bones, the scaling does change? I am sure that when I was changing the scale of the armature bones, that the I was in Edit Mode and not in Object Mode. To avoid having their scale of (1,1,1) change.

Rotating Parent Bone



Rotating Children Bone

Solved it! Took me a while to find that one little thing that messed it up. A checkbox. Make sure for the armature that the preserve volume checkbox is checked. If you don’t click the preserve volume checkbox, the objects will change their volume as shown in a picture above with the gun slide rotation.


Hi and welcome to the forums!!

So what you are saying, and what I am seeing, is that the ‘slide’ bone scales as it’s rotated? Also the mesh slide isn’t following the bone. Check the scale of the armature in object mode in the transforms panel, just to be sure it’s still 1,1,1… Not sure why the mesh isn’t following the bone… is it weighted to the bone or parented to the bone?

Best chance of getting help is to the post up the blend file so someone can look at it…

Randy

Hey Randy,

I actually solved it. Yes, that is the slide bone as it’s rotated. The scale of the armatures and its bones all have an appropriate scale of (1,1,1). The issue was as you said as well, that it was parented to the bone. I had to select all vertex of the gun object and remove the vertex group named ‘control’, which controlled everything. An additional solution was to check preserve volume as well. Your quote is funny and true “There’s no such thing as gun control, but there is people control…”!

Alex

Hey Alex,

Well this is strange, I did not see your reply and the fact that you solved the problem, when I wrote my reply. Which is really strange because you solved the problem and posted it 3 hours before I did… I dunno what happened that I didn’t see that you solved your problem.

However, just a tip, there are 2 main ways of controlling a mesh object with an armature in blender. First way is to use an armature modifier and weighting the mesh to the bones. This is what happens when you parent a mesh to an armature and choose auto weighting. This method is good for organic things, humans, plants, animals, etc… The 2nd way to control a mesh object is by parenting the individual mesh object to a specific bone. This is great for mechanical objects, like a backhoe, all parts of the backhoe’s arm would be separate mesh objects, and you just parent the object to the bone controlling it. Using this method, the mesh objects won’t deform (bend or twist) but just move as the bone does.

In your case, it appears all the parts of the gun are just one mesh object. It’s mechanical and you don’t want to deform it, but it is one mesh object so it’s parts can’t be parented to it’s control bones. The best way to rig this is to add an armature modifier to the mesh object, then create vertex groups manually for the parts. If you have a bone named ‘slide’, then in edit mode, select all the verts that make the slide object, and assign them to a vertex group named ‘slide’. Same name as the bone to control it. Like wise, if you have a trigger bone, select the trigger vertices and create a group call trigger. When you do this, by default the weight is set to 1 for the vertex group and now all the verts are controlled 100% by the bone, like a mechanical object.

Hope that makes sense…

Thanks for the comment on my quote.

Randy