Logotipo Aprende Motion Graphics

Tutorial 3: Pelota rebotando con After Effects

Resultado del Tutorial 3: Gif animado pelotas rebotando ¿Cómo hacer el rebote de una pelota con After Effects y sin plugin?

Tutorial:

¿Cómo hacer el rebote de una pelota con After Effects y sin plugin?

En este tutorial rápido de After Effects aprenderemos cómo animar el rebote de una pelota. Para ello usaremos expresiones con las que conseguiremos un resultado natural y sin mucho esfuerzo.


Al final del post encontrarás la carpeta del proyecto con todos los materiales, además del archivo After Effects con el ejercicio ya resuelto para que puedas revisar la forma en que está hecho.

Paso a paso

Expresión Bounce Back:

  1. Presiona P para mostrar la propiedad de Posición.
  2. Crea dos keyframes de posición para mover la pelota de arriba abajo.
  3. Con la tecla ALT pulsada, haz clic sobre el reloj de Posición y remplaza el texto que muestra por la siguiente expresión:
e = .7; 
g = 5000; 
nMax = 9;

n = 0;
if (numKeys > 0){
  n = nearestKey(time).index;
  if (key(n).time > time) n--;
}
if (n > 0){
  t = time - key(n).time;
  v = -velocityAtTime(key(n).time - .001)*e;
  vl = length(v);
  if (value instanceof Array){
    vu = (vl > 0) ? normalize(v) : [0,0,0];
  }else{
    vu = (v < 0) ? -1 : 1;
  }
  tCur = 0;
  segDur = 2*vl/g;
  tNext = segDur;
  nb = 1; // number of bounces
  while (tNext < t && nb <= nMax){
    vl *= e;
    segDur *= e;
    tCur = tNext;
    tNext += segDur;
    nb++
  }
  if(nb <= nMax){
    delta = t - tCur;
    value +  vu*delta*(vl - g*delta/2);
  }else{
    value
  }
}else
  value

¡Ya lo tienes!

Prueba a cambiar los valores (elasticidad, gravedad, número máximo de rebotes) y observa los resultados:

e = elasticidad

g = gravedad

nMax = número máximo de rebotes

Expresión Bounce:

Repite los pasos anteriores, pero en esta ocasión copia la expresión Bounce que te dejo a continuación

elev = degreesToRadians(75);
v = 1900;
e = .7;
f = .5;
g = 4000;
nMax = 9;
tLaunch = .4;
 
vy = v*Math.sin(elev);
vx = v*Math.cos(elev);
if (time >= tLaunch){
  t = time - tLaunch;
  tCur = 0;
  segDur = 2*vy/g;
  tNext = segDur;
  d = 0; // x distance traveled
  nb = 0; // number of bounces
  while (tNext < t && nb <= nMax){
    d += vx*segDur;
    vy *= e;
    vx *= f;
    segDur *= e;
    tCur = tNext;
    tNext += segDur;
    nb++
  }
  if(nb <= nMax){
    delta = t - tCur;
    x = d + delta*vx;
    y = delta*(vy - g*delta/2);
  }else{
    x = d;
    y = 0;
  }
  value + [x,-y]
}else
  value

¡Ya lo tienes!

Descarga el proyecto con los materiales y el ejercicio ya hecho.

Descarga el Proyecto 3
Descarga el Proyecto 3

Tutorial 3: Pelota rebotando con After Effects

Las expresiones de este tutorial son creación de Dan Ebberts, motionscript.com

Comparte en redes sociales