Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions A Good Feather Falling Effect?

  • A Good Feather Falling Effect?

    Posted by Erin Shelby on April 5, 2006 at 3:28 am

    I’m trying to make an illustrator image of a feather fall like a feather. I’ve kinda figured it out using manual keyframing but was wondering if there was an expression-tastic or particular way to do this?

    Bonus Question: What does the third value of wiggle do? [ie: wiggle(x,y,z); “z”]. I often never use it but just noticed it existed, it doesn’t seem to really change anything as far as I can tell either. Hmmm…..

    Jacob Roth replied 7 years, 10 months ago 7 Members · 9 Replies
  • 9 Replies
  • Michael Duff

    April 5, 2006 at 4:03 am

    there is a tutorial or artical floating around, it may even be here on the cow, where you can use shatter to create a falling leaf. I played around with it and got a fairly good looking result.

    Michael Duff –
    Southern Cross Ten, Australia

  • Mike Clasby

    April 5, 2006 at 4:20 am

    Creating a falling leaf effect by Dan Ebberts:

    https://www.aenhancers.com/viewtopic.php?t=8

    is cool, but a little tricky, but it’s where I’d start.

  • Erin Shelby

    April 5, 2006 at 7:49 am

    most impressive. Dan Ebberts is blows me away.

  • Mike Clasby

    April 5, 2006 at 8:28 am

    Yep, I agree, blows me away like a feather.

  • Erin Shelby

    April 5, 2006 at 6:59 pm

    hahaha, very punny

  • Ryan Hill

    April 6, 2006 at 9:03 pm

    From Roland R. Kahlenberg’s article here:
    https://www.creativecow.net/articles/kahlenberg_roland/expressions/index.html

    The wiggle Expression requires three parameters to make it work. The first parameter tells AE how frequent you want it to kick in, the second affects the variation of the effect, and the third tells AE when in time you want it to work.

    Though I’m not too clear on what that’s supposed to mean.

  • Park Edwards

    July 29, 2017 at 11:40 pm

    Hi all —

    I’ve got the expression code from the site listed above, but not sure how to get the leaf to stop falling. Any ideas?

    https://www.aenhancers.com/viewtopic.php?t=8

  • Jp Pelc

    June 20, 2018 at 6:55 pm

    Don’t know if you’re still looking for a solution, but if you or anyone else is I would contact Dan Ebberts directly, his contact info is on his website:

    https://www.motionscript.com/

    Of course if you find a solution be sure to post it here for any other people that come across this thread!!

  • Jacob Roth

    June 21, 2018 at 2:05 pm

    If anybody still needs to have the feather stop, I figured it out with Dan’s help (meaning Dan figured it out).

    You’ll need a null with a slider control that handles oscillation frequency and a checkbox control that starts and stops the fall.

    Position:

    yVelocity = 100; //pixels per second
    oscFreq = thisComp.layer(“Null 1”)(“Effects”)(“Oscillation Frequency”)(“Slider”); //oscillations per second
    oscDepth = 200; //oscillation depth (pixels)
    drift = 25; // drift (wind?) (pixels per second: – = left, + = right)
    chkBx = thisComp.layer(“Null 1”)(“Effects”)(“Fall”)(“Checkbox”);
    n = 0;
    if (chkBx.numKeys > 0){
    n = chkBx.nearestKey(time).index;
    if (chkBx.key(n).time > time) n–;
    }
    t = 0;
    curTime = time;
    if (n > 0){
    for (i = n; i > 0; i–){
    if (chkBx.key(i).value > 0){
    t += (curTime – chkBx.key(i).time);
    }
    curTime = chkBx.key(i).time;
    }
    if ((curTime > 0) && (chkBx.key(1).value > 0)) t += curTime;
    }else{
    if (chkBx.value > 0) t = time;
    }
    value + [oscDepth*Math.sin(oscFreq*Math.PI*2*t) + drift*t,
    yVelocity*t,0]

    Y Rotation:

    oscFreq = thisComp.layer(“Null 1”).effect(“Oscillation Frequency”)(“Slider”);
    maxTilt = 15; //degrees
    chkBx = thisComp.layer(“Null 1”)(“Effects”)(“Fall”)(“Checkbox”);
    n = 0;

    if (chkBx.numKeys > 0){
    n = chkBx.nearestKey(time).index;
    if (chkBx.key(n).time > time) n–;
    }
    t = 0;
    curTime = time;
    if (n > 0){
    for (i = n; i > 0; i–){
    if (chkBx.key(i).value > 0){
    t += (curTime – chkBx.key(i).time);
    }
    curTime = chkBx.key(i).time;
    }
    if ((curTime > 0) && (chkBx.key(1).value > 0)) t += curTime;
    }else{
    if (chkBx.value > 0) t = time;
    }

    maxTilt*Math.cos(oscFreq*Math.PI*2*t)

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