I'm using a plugin called Duik 15 to rig a character to turn the right arm into an IK controller, and it has produced an expression that is unable to find one of my layers.
I'm not sure why it's not able to see it, but I'm wondering if anyone has encountered the issue before within their expressions?
Here's the expression that Duik generated, with the problem being on line 2.
//Duik.twoLayerIK
layer1 = thisComp.layer('M R Bicep'); // Not finding me
layer2 = thisComp.layer('M R Forarm');
controller = thisComp.layer('C_M R Hand');
endPos = layer2.effect('IK End')(1);
ctrlEffect = controller.effect("IK M R Forarm");
limit = effect('IK Limit')(1);
FK = ctrlEffect(4);
IKFK = ctrlEffect(3) == 0;
cw = ctrlEffect(1) == 1;
function getWorldPos(L) {
return L.toWorld(L.anchorPoint);
}
function ik() {
A = getWorldPos(layer1);
B = getWorldPos(layer2);
C = layer2.toWorld(endPos);
E = getWorldPos(controller);
a = length(B,C);
b = length(E,A);
c = length(A,B);
x = (b*b + c*c - a*a )/(2*b);
alpha = Math.acos(clamp(x/c,-1,1));
D = E - A;
delta = Math.atan2(D[1],D[0]);
result = radiansToDegrees(delta - (cw ? 1 : -1)*alpha);
V = B - A;
adj1 = radiansToDegrees(Math.atan2(V[1],V[0]));
IK = result - adj1 + value;
if (IK < limit) IK+=360;
return IK;
}
IKFK ? ik() : FK;
And also a screenshot of some of my layers, with the offending code situated inside M R Bicep's rotation expression.