Rather than using a constraint to two joints then changing the contraint values, sometimes I'll use and expression to drive the roll joints in arms/legs or whatever.

//roll joint |wrist IK joint|ratio|switch controller |wrist FK joint|ratio|switch controller

roll_jnt.rx=((wristIK_jnt.rx*.3)*switch.IKFK)+((wristFK_jnt.rx*.3)*abs(switch.IKFK - 1));

In this expression I am multiplying the wrists rotation by a ratio (0.3) to get the amount of rotation I want on the roll joint. For the IK I am then multiplying it by the value of the switch which goes from 0-1. That way if I'm in FK mode it doesn't get any influence. For the FK you do the same thing but subtract 1 and take the absolute value to get 0-1 but reversed from the attribute.

So:

**IK MODE**

*x*= ((30 * 0.3) * 1) + ((60 * 0.3) * abs(1 - 1))

*x*= (9 * 1) + (18 * abs(0))

*x*= 9 + 0

*x*= 9

**FK MODE**

*x*= ((30 * 0.3) * 0) + ((60 * 0.3) * abs(0 - 1))

*x*= (9 * 0) + (18 * abs(-1))

*x*= 0 + 18

*x*= 18

Not really MEL but still a handy trick.

## 0 comments:

Post a Comment