Website Youtube GitHub

Controls under the hierarchy of 3jnt leg setup don't show up


#1

I’ve run into an issue working on my quad rig where the toe controls aren’t visible nor editable.

I can find them in the outliner but I can’t replace shape nor can I edit their vertex.
(I’ve tried doing it in a new guide and a new scene, I’ve tested different chains but it seems that any chain under the hierarchy of the 3jnt legs ankle don’t show up )

I really need to figure out how to solve this soon as my quad rig needs to be done by Friday… I built the base rig awhile ago but didn’t notice that the controls for the toes and fingers didn’t appear…

I am using mGear 3.0.5, and the problem could probably be solved by me updating but I’m worried it will affect my other bipedal Rigs.

Is there a way for me to fix this without updating to the latest mgear? have any of you ever experienced this ?


#2

“can’t replace shape nor can I edit their vertex”

hmm… Are you getting any errors or anything, or just saying this because you can’t see the controller?

When I test putting controls under leg_3jnt_01, the controls are parented under the leg joints, which are hidden. Did you try unhiding the bones or re-parenting the controls somewhere else?


#3

I’m not getting any errors although I do notice this line appear in my test.

// The parent components for: leg_C0 don’t have joint List in any of them use the root off guide. //

I’m not exactly sure what that means. I’ve seen that line before and it never caused this issue.

As soon as I parent the chain to any other chain it works fine… it’s only under the leg_3jnt_01 heirarchy that I have the issue

Im thinking as a work around to create the fingers and toes parented under something else, building the rig and then parenting them to the leg afterwards


#4

I’m not talking about changing your guide.

Just simply take the root of the controls that don’t show up and unparent them from the hidden joints. Do they appear? I want to know if the problem is just because they are parented under a hidden group.


#5

Oh I see what you saying now… :sweat_smile:

The problem is that the joints are hidden, as soon as I moved it out of the parent they show up again.

What would you suggest is the best way to get around this?

thank you for the help Chris


#6

should i just unhide the joints?


#7

Just parent them somewhere else. And if they need to follow the joints, you might need to constrain them to the parent joints first, then reparent them.

You could write this as a POST script.

I wouldn’t show joints, because that wouldn’t be very animator-friendly.

So here is a really rough script which might work for you as a POST script or to at least get you started. You might have to edit it based on your hierarchy. It assumes each control you want to reparent has 2 parents until you get to the _root. I always call the controls, and then getParent() to get the parents of the controls, because if you try to call pm.PyNode(‘foo_L0_root’) you get 2 nodes. One in the controls, and one in the guide, which is also called _root.

Start by listing all your bad controls in “badControls”. If you have a chain of 3 controls, just list the top one. Does that make sense? You don’t want to break your hierarchy. So if you have 3 toe controls, you just want to constrain and reparent the top toe. The others will follow along.

import pymel.core as pm
badControls = pm.ls('control_L0_ctl', 'toe_L0_ctl', type='transform')
badRoots = [x.getParent(generations=2) for x in badControls]

newGroup = pm.group(em=True, n='new_group_for_controls')
for badRoot in badRoots:
    legJoint = badRoot.getParent()
    pm.parentConstraint(legJoint, badRoot, mo=True)
    pm.scaleConstraint(legJoint, badRoot, mo=True)
    pm.parent(badRoot, newGroup)