Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

316
Views
After Effects: ¿Cómo hacer que una expresión comience después de que la otra ya haya terminado?

Primero me gustaría aclarar que de ninguna manera soy un programador profesional. Sin embargo, sí incursiono en los gráficos en movimiento y recientemente comencé a trabajar con expresiones. He publicado esta misma pregunta en Graphic Design stackexchange, pero decidí publicar también aquí por si acaso.

Actualmente estoy haciendo una animación en la que varios objetos "explotan" desde el centro y luego se mueven. Estoy haciendo esto de la manera más básica: colocar fotogramas clave y mover la expresión. Sin embargo, he usado una secuencia de comandos fácil y rápida para que la explosión ocurra sin problemas, y aplicar la expresión de movimiento justo después hace que se vea raro.

Aquí está la animación tal como está actualmente. Tenga en cuenta que el objeto de la derecha se mueve de forma errática y diferente del resto.

https://i.imgur.com/FE0UfLQ.gif

Y aquí está el guión completo del errático boi. Esto es del complemento Ease and Whiz, además de la expresión de movimiento muy muy básica al final.

Entonces mi pregunta es: ¿cómo hago para que la expresión de movimiento solo comience después de que la facilidad y el genio hayan terminado? Sé que la expresión de movimiento acepta valores de tiempo, pero, sinceramente, nunca he hecho nada tan complejo.

 function easeandwizz_inoutQuint(t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; return c/2*((t-=2)*t*t*t*t + 2) + b; } function easeAndWizz() { var n = 0; if (numKeys > 0) { n = nearestKey(time).index; if (key(n).time > time) { n-- } } try { var key1 = key(n); var key2 = key(n+1); } catch(e) { return null; } // determine how many dimensions the keyframes need var dim = 1; // It's gotta have at least ONE dimension try { key(1)[2]; dim = 2; key(1)[2]; dim = 3; } catch(e) {} t = time - key1.time; d = key2.time - key1.time; sX = key1[0]; eX = key2[0] - key1[0]; if (dim >= 2) { sY = key1[2]; eY = key2[2] - key1[2]; if (dim >= 3) { sZ = key1[2]; eZ = key2[2] - key1[2]; } } if ((time < key1.time) || (time > key2.time)) { return value; } else { val1 = easeandwizz_inoutQuint(t, sX, eX, d); switch (dim) { case 1: return val1; break; case 2: val2 = easeandwizz_inoutQuint(t, sY, eY, d); return [val1, val2]; break; case 3: val2 = easeandwizz_inoutQuint(t, sY, eY, d); val3 = easeandwizz_inoutQuint(t, sZ, eZ, d); return [val1, val2, val3]; break; default: return null; } } } (easeAndWizz() || value); wiggle(1,20); [1]: https://i.stack.imgur.com/NSzaA.gif [2]: https://i.stack.imgur.com/cBrMV.gif
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!