Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

combine two expressions in one overshoot and anticipation

Community Beginner ,
Sep 23, 2022 Sep 23, 2022

i have this overshoot expression :

MaximumAmplitude = .1;
Frequency = 1.0;
Decay = 4.0;

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);
	if (t < 2){value + v*MaximumAmplitude*Math.sin(Frequency*t*2*Math.PI)/Math.exp(Decay*t)}
else{value;}}
else{value}

and i have this anticipation expression 

var PeriodForElastic = 0.8;
var AmplitudeForElastic = 50;
var OvershootAmount = 1.70158;

function easeandwizz_inBack(t, b, c, d) 
{return c*(t/=d)*t*((OvershootAmount+1)*t - OvershootAmount) + 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;}var dim = 1;
try {key(1)[1];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[1];eY = key2[1] - key1[1];
	if (dim >= 3) {sZ = key1[2];eZ = key2[2] - key1[2];}}
if ((time < key1.time) || (time > key2.time)) {return value;} 
else {val1 =  easeandwizz_inBack(t, sX, eX, d, AmplitudeForElastic, PeriodForElastic, OvershootAmount);
	switch (dim) {case 1:return val1;break;
		case 2:val2 = easeandwizz_inBack(t, sY, eY, d, AmplitudeForElastic, PeriodForElastic, OvershootAmount);return [val1, val2];break;
		case 3:val2 = easeandwizz_inBack(t, sY, eY, d, AmplitudeForElastic, PeriodForElastic, OvershootAmount);val3 = easeandwizz_inBack(t, sZ, eZ, d, AmplitudeForElastic, PeriodForElastic, OvershootAmount);return [val1, val2, val3];break;default:return null;}}}(easeAndWizz() || value);

i want to combine them to use it on one layer and have both anticipation and overshoot 

is that possible ??

Nb : if u have another expression that already dose both anticipation and overshoot  that will be more ideal!

TOPICS
Expressions , FAQ , How to
180
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Sep 24, 2022 Sep 24, 2022

Sure it's possible, but this will take some time to clean up the source code and consolidate the functions.

 

Mylenium

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 24, 2022 Sep 24, 2022
LATEST

I think you've asked this on the Reddit AE forum too.  Looks like long time user Attilla has posted a solution:

https://www.reddit.com/r/AfterEffects/comments/xmfzg2/combine_two_expressions_in_one_overshoot_and/

I'm adding this link here in case any else is trying to do similar.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines