Reconnecting maya muscels to a joints chain

#1

Hi, I have created neck muscles system to improve neck deformation. It works really well and deformation looks good. I am following local and global rig concept for the face rig.
I have one local rig which creates deforemation from a muscle system and this local rig is connected to the main mesh as blendshape. I would like to change joint chain of the muscle system and transfer it to new duplicated joint chain. Is it possible to do that in maya?

#2

[Edit] Now that I re-read your post, I may have misunderstood what you’re trying to do. I’m still gonna leave my comment, but it may not be relevant to you.

I’m actually working on the exact same thing right now. I was going to write a plugin to do it, but my co-worker showed me you can abuse constraints to make that work. Here’s a walk through:

  1. Duplicate a joint in your original chain (you don’t need its children)
  2. Make a parent constraint so the newly duplicated joint is controlled by the joint you just duplicated. Don’t maintain offset.
  3. Connect the output transforms from the parent constraint to the corresponding joint in your duplicated chain.

This will leave a node graph that works just fine, but it’s possible to get rid of that duplicated joint, though it will mean that you may have to redo some connections if you want to change your hierarchy.

  1. Re-parent the constraint under that corresponding joint
  2. Connect the constraintJointOrient, constraintRotateOrder, constraintRotatePivot, and constraintRotateTranslate (ie. everything but the constraintParentInverseMatrix) from the corresponding joint to your constraint.
  3. Connect the worldInverseMatrix from the parent of your original joint to the constraintParentInverseMatrix of the constraint. This is the connection you’d have to redo to change the hierarchy.
  4. Delete the duplicated joint

[Edit2]
The above instructions are designed to work if you’re skipping over joints. If you’re just doing chain-to-chain, then you can simply parent constrain the corresponding joint to the original, then connect the proper worldInverseMatrix to the constraintParentInverseMatrix.

#3

Thanks for the response.:thinking: I want to keep my muscles and joint chain (skinned to a mesh already). I wanted to duplicate the joint chain,keep the current muscle setup and reattach the current muscle setup to it.

#4

Yep, Totally misunderstood you. Sorry, I won’t be much help here.