Neck twist system

 

This is a neck rig with twist from neck control and head control, similar to advance skeleton neck twist system.

Abreviations:

PC : parent constraints
OC: oriente constraints
Drv: driver

We are going to setup a three joints neck with twist in X axis.

A. NECK JOINTS SYSTEM

  1. Create the main joints chain of the neck and bind to geo.
  2. Duplicate the main chain to use it as a driver chain.
  3. Use parent constraint to connect each driver joint to its respective bind joint.
  4. Create neck control. Use the following herarchy:
    • Neck group offset
      • Neck group twist Balancer
        • Neck curve control
    •  
  5.  Now follow the next connections:
    1. Select Neck_Ctrl curve and Neck_twistBalancer group and then select first neck joint driver (A) and create a orient constraint.
    2. Do the same selection but with next joints drivers (B and C) and create a orient constraint.
  6. Look for the orient constraint nodes from the drivers joints and setup the next values into the Channel Box.
    1. To the OC of the DRV joint A:

    2. To the OC of the DRV joint B:

    3. To the OC of the DRV joint C:

 

B. HEAD TWIST SYSTEM 

  1. Open Node Editor.
  2. Add Head control.
  3. Add parent constraints nodes of the neck binded joints.
  4. Create a multiplyDivide node and name it "headNeckTwist_mult"
  5. Create a plusMinusAverage node and name it "headNeckTwist_PMA"
  6. Create a multiplyDivide node for each parentConstraint node and name it "headTwist_neck_A_mult" B and C. 

Make Connections

  1. Connect Rotate X from head control to Input 2X from headNeckTwist_mult.
  2. Add next Attributes to head control:
    1.  Name: autoTwist  |  Keyable  |  float  |  Minimum: 0  |  Maximum: 10
    2. Name: extraTwist  |  Keyable  |  float
  3. Create a unitConversion node and set "Convertion Factor" to 0.100 into Attribute Editor. 
  4. Connect Auto Twist from head control to Input of this unitConversion.
  5. Connect Output of this unitConversion to Input 1X from headNeckTwist_mult.
  6. Connect Output X form headNeckTwist_mult to Input 1D[0] from headNeckTwist_PMA
  7. Connect Extra Twist from head control to Input 1D[1] from headNeckTwist_PMA
  8. Connect Output 1D from headNeckTwist_PMA to Input 1X from each headTwist_neck_#_mult.
  9. Set Input 2X from headTwist_neck_A_mult to 0.667
  10. Set input 2X from headTwist_neck_B_mult to 0.333
  11. Set input 2X from headTwist_neck_C_mult to 1
  12. Connect Output X from each headTwist_neck_#_mult to its respective parentConstraint node in the next input:
    • target / target 0 / targetOffsetRotate / targetOffsetRotateX

You can set up values depending on quantity of joints.

Comments