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.

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.

My layers

  • 2
    This is on a mac right? Has it only just started hapening? I've been having trouble with layer names in expressions on a mac with the most recent version of AE, specifically with the DUIK scripts. For some reason the layer names end up with invisible line returns in them. It's made DUIK almost unusuable on the mac.
    – stib
    Oct 24 '16 at 12:18
  • I can confirm this is still happening on Mac, latest version of AE :( Apr 12 '17 at 22:33

I don't know if this counts as an answer so much as a workaround but I was getting the same error message when I was manually typing in the layer name. There was no typo; the layer definitely existed. It was maddening.

But when I used the pickwhip to link it to the layer, After Effects would automatically generate the 'thisComp.layer("Layer Name Here")' code. Then I just built the rest of my expression around that line. That seemed to work fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.