Mech feet claws - problems when assigning copy rotation constrain

Hi guys. First off, sorry if i really cant explaing too well. This is my first rig and im just still learning.

Im rigging a mech foot. The main problem i have are the claws, or fingers. Note that the fingers in the middle are not going to move in any way for now (i will probably even delete em since they look really ugly or replace em with another rigged finger).

I assigned an extra bone to handle how the claws from the front and the one in the back move down and up, rotating in the x axis. Then i assigned a copy rotation constrain to the claw bones to that bone. So when i rotate the bone controller, the claws rotate on the x axis.

Two issues, as you can check in the scene, the claw meshes will not stick to the bones, but thats really not the most important thing (still didnt have time to fix it im just still building the rig).

The main concern i have is, that for some reason the left finger, will completely mess up and not only rotate in other axis but also changing the scale , etc… i dont have a clue why this is happening. I rechecked the other finger, that is exactly the same, rechecked all the bones constrains, rechecked all the parts of the mesh assigned to the bones, rechecked bone axes etc, etc. Everything in the right finger is exactly the same as the left one.

For some reason it wont behave the same way as the other finger. I tried for 2 hours trying to figure out what is happening.

Thanks in advance.

Attachments

simplemech.blend (1.37 MB)

Hi n3mes1s - I made some changes to the Left mech foot that makes the foot behave better. I made several changes 1) parenting the ankle to the shin, 2) changed the ankle constraint to copy the IK’s transform, and 3) got rid of the pole targets - did not see the purpose in this example. The changed file in http://pasteall.org/blend/index.php?id=48821

Nice design.

TD

Thanks throwcode i am downloading it and will check it out when i get home. The purpose of the pole target is just to have a slighty rotating movement on the z axis for the shin. If you grab the pole target and move around, you will see it. But thats the only purpose… it was anyways provisional depending on the animations i am planning.

What did you exactly change throwcode? i cant find any differences lol. In fact, you basically removed all the constrains?, the claws dont move anymore. And the problem i had in the beginning that was the most important thing, its still there… sorry maybe i missed something. But what did you actually do?

Sorry I thought I had corrected the left finger problem but now that I look at it I’m not sure that I made any positive changes.

TC

Well, thanks for trying. I will keep investigating but for the love of me i cant find the cause of the problem in the left finger. Im just trying to avoid re-make everything again on the foot. The rest of the rig is working perfectly fine, and the foot is the only thing that is giving me headaches.

Nobody else have some experience with this? o.O

Vertex Group ClawRightFront.l has both front claw’s vertices in it (with weight)*. I think this was the only issue with the claw mesh misbehaving. If you wanna try fixing it yourself this is how it went…

  • Rogue vertices in wrong groups not a problem now (I think) if weighted 0 but it used to be in earlier releases. Clean groups are better. This stuff is tedious enough… messy work makes it worse.

The first thing I did is put the amature and mesh on separate layers to see armature and/or mesh better before troubleshooting.

First clue: In edit mode select a vertex on left front claw mesh look in Properties shelf (Key N) > Vertex Weights. Notice that vertex is in 2 vertex groups.

Big clue: With mesh in edit mode and everything unselected look in Properties > Object Data > Vertex Groups. Select ClawRightFront.l in the list and click the Select button. Both front claw’s vertices are now selected. Btw this a quick way to check all your vertex groups.

To remove those left claw vertices from the right claw group: Unselect everything. Hover the mouse cursor over a vertex on that front left claw mesh and Key L to select all vertices in that mesh. This hover shortcut works here because this claw mesh is disconnected from other mesh in the object. This shortcut same as Ctrl L with a vertex selected.

With Vertex Groups > ClawRightFront.l selected in the groups list click the Remove button to remove the selected (left claw) vertices from that group.

I noticed another issue: ClawLeftFront.l rotates a bit when Footcon.l is rotated. The Copy Rotation constraint on ClawLeftFront.l is set to Local With Parent. Set it to Local to fix this.

Misc: I put your Amature modifier above the Subsurf modifier in the modifier stack. Not much diff here but it can be.

Look into simple parenting of seperate objects (your disconnected meshes turned into separate objects) to bones instead of using vertex groups/weighting. This is a another way to rig mechanical stuff (non deforming mesh). Both methods can be used in same rig. Of course bone joint placement on character/machine joints is critical either way. I’m sure you know this. You’re into the fun fun stuff now.

Edit: Well, the method may also depend on what the rig is used for. I know little about game engine requirements. Look into means research this info.

-LP

Attachments

simplemech fix.blend (1.37 MB)

Thanks LarryPhillips, but heres the thing. Yeah , weird enough, in the blend that i attached to my first post the constraint is set to local with parent (must be a mistake, indeed it should be just local) but i already tried switching to just local and it didnt fix it.

Now i open your blend file and its fixed. So i really dont have a clue what is happening in my end. In my project no matter if i switched to local it wont fix anything. Thats why i was getting nuts with this. Thats one of the first things i checked, to see if all the constrains were set to local.

About the vertex groups… oh my. I thought that assigning again a new selection to a vertex group will automatically delete the previous set and assign the new one. It turns out that it adds to the selection and i need to remove before adding again? because i repeated the process over and over again lol, and i could swear that vertex groups were set accordingly.

Maybe what happened is that i deleted the left claw mesh and i duplicated the right one and the vertex groups duplicated along? i really dont know at this point.

Anyways, thank you very much. Because i was about to give up. You saved my life lol. If you want i can post the final rig once is completed, just to give you thanks.

Changing that setting worked the first time for me. If it hadn’t I would’ve still been focused on it because all the other toes were set to Local and I didn’t see anything else wrong with the rig.

Sometimes things get stuck here and there in Blender. A setting toggled on/off or a click on some other setting, object, or in this case of a rig setting rotating a bone will usually make it refresh. Save/re-open can do it too. That’s often the fix for things gone wonky. Sometimes something will get so screwed up appending the whole project into a new blend file is needed. Not often but it can happen. Lots going on under the hood so it’s no wonder.

Good luck and keep pushing. This is how it goes. It’s a tedious learning experience. 100’s of pitfalls to learn. The more you know your way around the easier it is to analyze / troubleshoot issues like this vertex group problem.

If you edit your first post there’s a prefix setting in there to mark this thread solved.

-LP