Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions expressions switches off randomly / bug?

  • expressions switches off randomly / bug?

    Posted by Sergei Sokolov on June 19, 2009 at 9:09 pm

    Hi all,

    Same bug as was asked about in this forum earlier in 2007 and 2008:
    some expressions randomly switches themselves off – i.e. equal sign goess off, no error messages, no warnings. I just see that the chain brakes at some point. As soon as I switch them back on, some of the other ones go off.

    Same situation as was described: many layer copies, expressions refer to other layers / previous time, motion blur. After Effects CS3.

    Expression example:
    Rotaion X: thisComp.layer(thisLayer.index + 1).rotationX.valueAtTime(time – 1/25)

    There are about 30 layers logically chained one after another, forming a trail as the master layer rotates by keyframes.

    Kind regards,
    Sergei Sokolov

    Here’s the project file zipped:
    https://depositfiles.com/files/3ramxnwkz(8kb zip)

    Is there any limit of number of dependencies within a single comp?
    Is there a “best practice” of how to handle such recursive expressions?
    What to do with “time before times” which is referred to at frame 0 and by motion blur?

    Sergei Sokolov replied 16 years, 11 months ago 2 Members · 3 Replies
  • 3 Replies
  • Dan Ebberts

    June 19, 2009 at 10:19 pm

    I’d use an expression like this:

    delay = 1/25;
    M = thisComp.layer(“c1 master”);
    M.rotationX.valueAtTime(time – (M.index – index)*delay)
    thisComp.layer(thisLayer.index + 1).rotationX.valueAtTime(time-1/25)

    It assumes that “C1 master” is lower in the layer stack than the layers with the expression. Pretty cool project, BTW.

    Dan

  • Dan Ebberts

    June 20, 2009 at 3:44 pm

    Sorry. Clearly the last line of the expression posted above doesn’t belong there. It should look like this:

    delay = 1/25;
    M = thisComp.layer(“c1 master”);
    M.rotationX.valueAtTime(time – (M.index – index)*delay)

    Dan

  • Sergei Sokolov

    June 21, 2009 at 9:18 am

    Thank You, Dan!

    I got the idea: let each layer refer to the master layer, rather than to a neighbor.
    Now it works fine.

    My expression for Y rotation is:
    thisComp.layer(“c1 master”).rotationY.valueAtTime(time-(thisComp.numLayers – index + 1)/25)

    Same for X rotation.

    And the shape layer size expression is
    k = (thisComp.numLayers – thisLayer.index+1)*20;
    [k, k];

    Inititally there are two layers: “c1 master” with keyframes, and the “c2” with these exp. Then just duplicate the “c2” 20-30 times to get extra circles.

    Let me credit Satya Meka at ae.tutsplus and Mark Coleran for the concept of the effect.

    Kind regards,
    Sergei

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