Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects making text bounce

  • Darby Edelen

    September 23, 2007 at 12:44 am

    Balls can bounce in many different ways… what did you have in mind exactly?

    Darby Edelen
    DVD Menu Artist
    Left Coast Digital
    Aptos, CA

  • Tazer

    September 23, 2007 at 11:58 am

    You can just animate the position, but there are many different ways to make it bounce, what kind of bounce are you looking for?

  • Steve Roberts

    September 23, 2007 at 2:05 pm

    Usually this is done by hand, by tweaking the position curves. You squash the ball by tweaking the scale curves, and possibly moving the anchor point to the bottom of the ball.

    It’s a rite of passage for an animator. 🙂

    I think they touch on it in the Help…? Otherwise, you could search for a tutorial using “after effects”, “squash” and “stretch”.

    Anybody else?

  • Mike Clasby

    September 23, 2007 at 8:05 pm

    I found the no-creeping version for when you have an initial x velocity (thanks to the cow for tuning up the Search engine). If you change the last line of Dan’s to this:

    [position[0] + Vx0*(-Math.pow(2,-time) +1), floor – y]

    Then you put the second line to have an initial x velocity, like this:

    Vx0 = 300; // initial x velocity (pixels/second)

    And you text is positioned at the top left of the screen, or just off-screen left, then you will get text that flies in from the left and bounces, skidding to a stop. Change the first line to give it y velocity makes it jump up and left before bouncing.

    Anyway the whole expression might look like this:

    For Position:

    Vy0 = 800; //initial y velocity (pixels/second)
    Vx0 = 450; // initial x velocity (pixels/second)
    g = 2500; // gravity (pixels/second/second)
    floor = 400;
    e = .85; //elasticity

    b = floor – position[1];
    h = b + Vy0*Vy0/(2*g);
    T = Vy0/g + Math.sqrt(2*h/g);

    if (time < T){ y = Vy0*time - g*time*time/2 + b; }else{ Vy = -(Vy0 - g*T); while (true){ Vy *= e; t = T; T += 2*Vy/g; if (time < T){ t = time - t; y = Vy*t - g*t*t/2; break; }else if (T - t < thisComp.frameDuration){ y = 0; break; } } } [position[0] + Vx0*(-Math.pow(2,-time) +1), floor - y] For Scale: Vy0 = 800; //initial y velocity (pixels/second) Vx0 = 450; // initial x velocity (pixels/second) g = 2500; // gravity (pixels/second/second) floor = 400; e = .85; //elasticity d = .02; //squash factor spd= 10; //speed of squash oscillation decay= 10.0; //how fast squash slows down b = floor - position.valueAtTime(0)[1]; h = b + Vy0*Vy0/(2*g); T = Vy0/g + Math.sqrt(2*h/g); if (time < T){ x = scale[0]; y = scale[1]; }else{ Vy = -(Vy0 - g*T); while (true){ max_dev = e*Vy*d; Vy *= e; t = T; T += 2*Vy/g; if (time < T){ t = time - t; x=scale[0]+max_dev*Math.cos(spd*(t))/Math.exp(decay*t); y=scale[0]*scale[1]/x; break; }else if (T - t < thisComp.frameDuration){ x = scale[0]; y = scale[1]; break; } } } [x,y] With these two expressions. if you started the text's initial position as just off-screen left, halfway up, then it will bounce on and stop in about the middle of the screen, with the floor at 400.

  • Alex Werlan

    July 26, 2008 at 7:58 am

    @ yikesmikes Can you help me?
    Try to make effect like here https://www.adobe.com/type/. I find bouncing text effect in AE CS3 presets (or this one expr), but it works only along Y axis (vertical direction). How I can modificate it? Or can you one help with scalebel expression for different tasks? Resume: want to make bouncing effect not from the floor only, but from the right or left wall.

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