Rigging101 » Rigging128

Knee is locking, but not elbow - help? (2 posts)

About This Topic


No tags yet.

  1. Aeyoqen

    Posted 7 years ago

    Hey guys,

    I have set up a rig with stretch enabled in the arms and legs to lock the knee and elbows into place. I used distance nodes and an expression that drives the scale of joints to the location of the lock control (in this case, I just used the pole vectors) to get the joints to stick. The leg worked fine - I added the expression, and bam - locked in place when I want it to. The arm, running on the same setup, is not working, which is what confuses me. I've had countless other TDs look at it, and we're all stumped. What's happening is the joints do not seem to be scaling to the correct location, and there are ghost rotations occurring on the wrist joint (I believe this is driven by the inverseScale connection, but if I disconnect it, or even only connect inverseScaleY, etc., then the joints inherit scale and segment scale compensate has no effect).

    Here's some pseudocode of the expression I am using:

    Declare a variable that picks up the distance of the first distance node (from shoulder to elbow)
    Declare a variable that picks up the distance of the second distance node (from elbow to wrist)

    //I'm leaving out some stuff that applies to scaling the rig, because it doesn't seem to change anything
    Here's the variable that picks up the elbow lock attr (from 0 - 1)

    Scale of the shoulder is being set to the elbow lock attribute*the original distance
    Scale of the elbow is being set to the elbow lock attribute*the original distance

    That's all...I cannot post the actual script or files due to an NDA issue, but I might be able to link to images somewhere if that will help. Sorry this is a bit vague! Both the arms and legs use the exact same script, but one works and the other does not :[

    On the other hand, if anyone has a good tutorial for setting up elbow lock with utility nodes, it would be much appreciated.

  2. Adam

    Posted 7 years ago

    have you tried using the child joint's translate x? I don't really know how you got the rest of the stretch implemented but i like to use the trans x for stretch instead of scale. Reason being that scale changes the space in which geometry or any children exist. But it's totally dependent on how you have the rest setup.

    I did right a pseudo tutorial on how i implement knee locking using utility nodes.


You must log in to post.

Rigging101 » Rigging128
1,099 posts in 307 topics over 110 months by 188 of 8,226 members. Latest: fashionpvp, d2q4p5z2j, gasheldonl