Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Bouncy effect when an object stops moving?

  • Bouncy effect when an object stops moving?

    Posted by Drew Johnston on August 25, 2011 at 8:58 pm

    Hi all. I am a newbie using CS3 trying to make a video for the company I am working for. I was wondering if you could help me. I am trying to animate some moving objects – very simple point A to point B type movements mostly starting with the objects offscreen….

    I’d like to make them look like they are moving smooth and when they come to a stop I want them to have a little bouncy type effect rather than just stopping.

    To give you a better sense for what I mean please look at this video: https://vimeo.com/22897365

    4 seconds in the “Bank” building pops up and has this quick little bounce effect this is what I mean. A better example is 20 seconds in when those 3 objects pop up with the same kind of effect.

    Im wondering how to do this. I know about the Easy Ease and I’ve applied that to make things go smoother but its not quite the same.

    Thanks for your help in advance.

    -Drew

    Eliezer Cisner replied 14 years, 4 months ago 5 Members · 6 Replies
  • 6 Replies
  • Ben G unguren

    August 25, 2011 at 9:51 pm

    Set your scale or position keyframes as you want without the bounce, then take your the keyframe where the bounce should happen, move it forward two or three frames, and make a new keyframe that is LARGER than the last keyframe. That causes the scale or position to go too far, then pull itself back. A bouncy effect.

    For more advanced methods, search around for elasticity expressions….

    Ben Unguren
    Motion Graphics & Editing
    http://www.mostlydocumentary.com

    Some contents or functionalities here are not available due to your cookie preferences!

    This happens because the functionality/content marked as “Vimeo framework” uses cookies that you choosed to keep disabled. In order to view this content or use this functionality, please enable cookies: click here to open your cookie preferences.

  • Drew Johnston

    August 25, 2011 at 11:55 pm

    Thanks for your help, I found what I think is the perfect expression but it doesn’t seem to work. I’ll copy and paste it below. it was found from this URL where they give an example: https://lesterbanks.com/2011/01/swinging-kinetic-text-expressions-for-after-effects/

    A user commented and said that the expression’s minus signs are dashes and that is why it is not working. How on earth do you type a minus sign? I have a macbook pro and there is only one version of a minus sign and its not working (i guess its a dash.

    Any thoughts?

    // Inertial Bounce (moves settle into place after bouncing around a little)
    n = 0;
    if (numKeys > 0){
    n = nearestKey(time).index;
    if (key(n).time > time){
    n–;
    }
    }
    if (n == 0){
    t = 0;
    }else{
    t = time – key(n).time;
    }
    if (n > 0){
    v = velocityAtTime(key(n).time – thisComp.frameDuration/10);
    amp = .02;
    freq = 3.0;
    decay = 5.0;
    value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
    }else{
    value;
    }

  • Angie Taylor

    August 26, 2011 at 10:35 am

    The Minus symbol can be typed using the number pad of your keyboard, it should be directly above the Plus symbol.

    cheers,

    Angie

    Angie Taylor animation & illustration for television, film, web and devices

    https://www.angietaylor.co.uk
    Twitter: theangietaylor
    Linkedin: theangietaylor
    https://www.facebook.com/pages/Angie-Taylor/118378194869002

  • Darby Edelen

    August 28, 2011 at 1:21 am

    Well, here’s the expression with your dashes fixed:

    // Inertial Bounce (moves settle into place after bouncing around a little)
    n = 0;
    if (numKeys > 0){
    n = nearestKey(time).index;
    if (key(n).time > time){
    n–;
    }
    }
    if (n == 0){
    t = 0;
    }else{
    t = time – key(n).time;
    }
    if (n > 0){
    v = velocityAtTime(key(n).time – thisComp.frameDuration/10);
    amp = .02;
    freq = 3.0;
    decay = 5.0;
    value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
    }else{
    value;
    }

    Darby Edelen

  • Drew Johnston

    August 28, 2011 at 1:35 am

    Thanks so much, this saved my life. I can use it now and my animation looks so much better!!

  • Eliezer Cisner

    January 2, 2012 at 4:41 am

    Thanks, Darby!
    As you can vaguely see in the image I posted, the bounce starts with shrinking, and then it grows. This looked a bit fake when I tried it, since as when it arrived to end of the down-scale, it suddenly scaled down another bit, causing a jerky feel. Is there any possibility to tweak this expression it should start with growing instead?

    Thank you!

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