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
- Create the main joints chain of the neck and bind to geo.
- Duplicate the main chain to use it as a driver chain.
- Use parent constraint to connect each driver joint to its respective bind joint.
- Create neck control. Use the following herarchy:
- Neck group offset
- Neck group twist Balancer
- Neck curve control
- Now follow the next connections:
- Select Neck_Ctrl curve and Neck_twistBalancer group and then select first neck joint driver (A) and create a orient constraint.
- Do the same selection but with next joints drivers (B and C) and create a orient constraint.
- Look for the orient constraint nodes from the drivers joints and setup the next values into the Channel Box.
- To the OC of the DRV joint A:
- To the OC of the DRV joint B:
- To the OC of the DRV joint C:
B. HEAD TWIST SYSTEM
- Open Node Editor.
- Add Head control.
- Add parent constraints nodes of the neck binded joints.
- Create a multiplyDivide node and name it "headNeckTwist_mult"
- Create a plusMinusAverage node and name it "headNeckTwist_PMA"
- Create a multiplyDivide node for each parentConstraint node and name it "headTwist_neck_A_mult" B and C.
Make Connections
- Connect Rotate X from head control to Input 2X from headNeckTwist_mult.
- Add next Attributes to head control:
- Name: autoTwist | Keyable | float | Minimum: 0 | Maximum: 10
- Name: extraTwist | Keyable | float
- Create a unitConversion node and set "Convertion Factor" to 0.100 into Attribute Editor.
- Connect Auto Twist from head control to Input of this unitConversion.
- Connect Output of this unitConversion to Input 1X from headNeckTwist_mult.
- Connect Output X form headNeckTwist_mult to Input 1D[0] from headNeckTwist_PMA
- Connect Extra Twist from head control to Input 1D[1] from headNeckTwist_PMA
- Connect Output 1D from headNeckTwist_PMA to Input 1X from each headTwist_neck_#_mult.
- Set Input 2X from headTwist_neck_A_mult to 0.667
- Set input 2X from headTwist_neck_B_mult to 0.333
- Set input 2X from headTwist_neck_C_mult to 1
- 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
Post a Comment