Joints connected to the IK handles dont move with their parent - Why does this happen?

rigging

#1

Hello all,

Im fairly new to rigging and trying to learn the advance concepts. I tried creating a hand rig for FPS. The only issue I am facing now is that the joints connected to the IK handles are not moving when I try to move their parent joints. I have come across this issue a few times and I cant exactly figure why this is happening.
Can someone explain me where I ve gone wrong or what am I missing in the basics when it comes to using IK handles efficiently.

Thank you So much


#2

Are the joints constrained to something? Or possibly locked in rotation?

Are the joints that you circled supposed to be moving to the right, to follow the green box controls? Or did you move the hand and the controllers are not following? It is difficult to tell which direction you are moving in this static image.


#3

ikHandles typically won’t react to their parent’s transformation. What you can do is constrain each to another node, and then parent those nodes to the hand. It’s a little silly that it works this way, but such is life.


#4

Thanks so much for responding. yes the joints are suppose to move with the box controls for the hand. the joints were suppose to follow the controls because they are constrained.


#5

“ikHandles typically won’t react to their parent’s transformation” - I totally get this.

“What you can do is constrain each to another node, and then parent those nodes to the hand” - What do you mean by this though ? By nodes you mean groups ? (Do you want me to create null groups for the iK handles, add them to the groups and then constrain the groups to the controls.)

Thank you so much for responding.


#6

Yes. Like this.

# This will wipe your scene

from maya import cmds
cmds.file(new=True, force=True)

arm = cmds.joint()
elbow = cmds.joint()
hand = cmds.joint()
cmds.move(0, -10, 0, elbow)
cmds.move(1, -20, 0, hand)
handle, effector = cmds.ikHandle(startJoint=arm, endEffector=hand)

group = cmds.group(empty=True)
controller = cmds.circle(name="control")
cmds.move(1, -20, 0, controller)
cmds.move(1, -20, 0, group)
cmds.parentConstraint(group, handle)
cmds.parent(group, controller)

#7

Do you mind sharing your scene so we could take a indepth look in your outliner and how you hierachy your joints and controllers? Then it would be more straightforward to tell you whats wrong and how to solve problems :wink:


#8

What i am guessing is that IK tend to not move with the parent control. SO you will need a follow group for the IK ctrls to follow FOR ETC the palm control