Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Fake 3D Shape layers with “perspective”

  • Fake 3D Shape layers with “perspective”

    Posted by Pete Burges on April 8, 2026 at 3:33 am

    Hello All,

    I am animating some text made of shape layers and I am using the repeater trick to create a fake chunky Extrusion effect.
    I’ve tried to be a bit (too) clever and rigged up a slider so that I can animate between each repeater’s own anchor point location, and the anchor point of a Null at the center of the comp- the idea being that I can then blend between a fixed vanishing point “perspective” effect for all characters and the more typical orthographic look where the extrusion is simply offset downwards.

    The following expression is applied to the repeater position:

    A= [value[0], value[1]];
    target = effect(“Position Offsetter”)(“Layer”);
    B= target.toComp(target.anchorPoint);
    S= effect(“Chunk Perspective”)(“Slider”);
    linear(S, 0, 100, A, B);

    I have a layer expression effect to select the target (so that I don’t have to keep editing the expression on each character), and a Chunk Perspective slider to blend between the two points (this also controls the repeater scale).
    The trouble I am having is that the “perspective extrusion” doesn’t point towards the specified vanishing point as intended. It doesn’t always point away from it either, which makes it hard to determine what the missing factor is. I’ve tried various permutations such as subtracting the vanishing point position from the layer position but I can’t seem to get a consistent result that indicates what the problem might be. It gets even more confusing when you consider that the shape group has it’s own transforms and anchor point, as well as the repeater and the layer itself, which no doubt plays into it in some insidious way.
    Does anyone have an idea what the problem might be…?

    Thanks,

    PB

    Pete Burges replied 1 month ago 2 Members · 2 Replies
  • 2 Replies
  • John Martin

    April 8, 2026 at 5:24 am

    hey bro! the core issue is that your current expression is interpolating linearly between the layer’s own anchor and the null’s anchor in comp space, but this ignores the direction vector needed for a true perspective extrusion. The repeater positions in AE are local to the shape group, so simply using toComp on the null doesn’t properly account for the layer’s local transforms.

    TLDR: each “slice” of extrusion should move along a vector from the layer toward the vanishing point, scaled by depth. Right now, linear(S,0,100,A,B) just blends the X/Y positions directly, which works for orthographic offsets but fails for perspective because the movement should shrink proportionally as it moves toward the vanishing point.

    a corrected approach in would look like:

    n = index; // or repeater index
    depth = effect("Chunk Perspective")("Slider")/100;
    vp = thisComp.layer("Vanishing Point Null").toComp([0,0]);
    lp = toComp(anchorPoint);
    dir = vp - lp; // direction vector to vanishing point
    offset = dir * depth;
    fromComp(lp + offset) - anchorPoint

    “dir” ensures each slice points toward the vanishing point.

    fromComp(lp + offset) converts back to layer space so the repeater respects group transforms.

    You can multiply offset by n to get stacked extrusion layers.

    The tricky part is handling repeater vs. group vs. layer anchor points, but this approach gives you a consistent perspective direction.

    lemme know if that helps Pete, in case we escalate further!

  • Pete Burges

    April 8, 2026 at 10:54 pm

    Hi John,

    That’s perfect. The only adjustment I needed to make was to increase the division to 200. Perhaps that’s because I’m using 20 repeater instances- in which case I am guessing that number should always be number of instances x10, then…?
    Initially it gave me some error about not subtracting from the position matrix, but the error vanished after I scrubbed through the timeline so I guess it wasn’t important. It works just fine.
    So let me see if I understand correctly; we’re getting the comp position of both anchor points and then subtracting the shape layer’s position from the vanishing point’s position to get the direction, multiplying by the slider value divided by repeater instances x10, and then finally subtracting the local anchor point position of the shape layer…?
    This is great, I often have to animate text with stylised perspective and this will help me to make a reliable, reusable setup for handling the fake extrusion. Thank you very much, John…!

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy