I was having issues with the loop timing, I had a comp that was 4s long, but when I changed the expression to reflect 4 as the time, I was still getting an extra frame or two that weren't working, even when I tried making it 1 frame longer/shorter than 4s. I found this expression to eliminate the issue of the timing: freq = 1; amp = 510; loopTime = thisComp.duration; t = time % loopTime; wiggle1 = wiggle(freq, amp, 1, 0.5, t); wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime); linear(t, 0, loopTime, wiggle1, wiggle2) Thank you for this video!
Another way is, to leave the expression as it was originally, so if your comp is 4s, the timeline has to end in 00:3,29 (in 30fps) this is due to the next frame is 00:00,00 which is the same as 00:04,00 so thats why you get the same frame twice
no one making this "tutorial" explains the meaning of lines: t = time % loopTime; wiggle1 = wiggle(freq, amp, 1, 0.5, t); wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime); linear(t, 0, loopTime, wiggle1, wiggle2)
You can just divide the number of frames by the frame rate for example I have 215 frames and my animation is 24 fps. Instead of putting 3 in the loopTime, I've put loopTime=215/24 and it worked perfectly. You don't even have to do the math in case it has too many decimals or whatever.
Much thanks - quick question: I currently have the following expression to keep the wiggle only on the y-axis: [ value[0], wiggle(1,5)[1] ] How would I add this to the expression you shared to make the above expression an exact loop? freq = 1; amp = 5; loopTime = 3; t = time % loopTime; wiggle1 = wiggle(freq, amp, 1, 0.5, t); wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime); linear(t, 0, loopTime, wiggle1, wiggle2)
When I animate it going from a slow wiggle to a faster wiggle, it goes faster during the animation than it is after the last keyframe. Like if I animate it going from 1 to 2, it's faster than 2 during the animation but is 2 after it. Is there anyway to fix that?
People that post the expressions in the desc deserve nobel peace prizes
I was having issues with the loop timing, I had a comp that was 4s long, but when I changed the expression to reflect 4 as the time, I was still getting an extra frame or two that weren't working, even when I tried making it 1 frame longer/shorter than 4s. I found this expression to eliminate the issue of the timing:
freq = 1;
amp = 510;
loopTime = thisComp.duration;
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
linear(t, 0, loopTime, wiggle1, wiggle2)
Thank you for this video!
This is beautiful, elegant and the way to do it.
Another way is, to leave the expression as it was originally, so if your comp is 4s, the timeline has to end in 00:3,29 (in 30fps) this is due to the next frame is 00:00,00 which is the same as 00:04,00 so thats why you get the same frame twice
still usefull 2 years later, thx dude ! straight to the point vid
thanks you so much
you have no idea how useful tutorials are as direct and easy to apply as this one
I’d like to see more short tutorials like this. A mix of short and long. Thanks.
Thanks for your comment. I will definitely keep this in mind and make a nice mix of longer and shorter tutorials in the future :)
Thanks a lot for this, i have not worked with expressions in awhile, and this video just made my day!!!
Great short tutorial! I knew about the wiggle expression, but I didn't know you could make them loop perfectly with looptime!
Yeah great right? Thanks for watching :)
Short, concise, perfectly effective, script linked in the bio.. A perfect tutorial.
Thank you so much, this was driving me bonkers.
Haha cool! Glad I could help :)
Thanks a ton. wish you great health and happiness.God bless you
Very Very Very Thank you very much! I'm going to save this expression, it will be very useful.
Ты легенда бро
Thank you! You are a legend! Saved me so much time :)
fantastic. i used to spend so much time working around my wiggle expressions not looping... this is so great!
This is gold!, thanks so much!
thank you very much, you saved my life!!
no one making this "tutorial" explains the meaning of lines:
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
linear(t, 0, loopTime, wiggle1, wiggle2)
This helps me a lot ,Thank you
thank you so much! you saved my time)
awesome! thank you for the expression
thank you, I used this on a project today!
Awesome to hear! :)
Great video.
Red about this sort of technique a while ago but forgot about it. Thanks for reminding me!
Very helpful Thanks
many many thanks, very useful expression.
Is there any way to make it frame based? Instead of 0:00:03:00, what if it's 0:00:03:17, or just 00071?
You can just divide the number of frames by the frame rate for example I have 215 frames and my animation is 24 fps. Instead of putting 3 in the loopTime, I've put loopTime=215/24 and it worked perfectly. You don't even have to do the math in case it has too many decimals or whatever.
@@Cristina-hp2yg smart, thanx*10 Cristina
Just what i needed. Thank you very much.
To Bas!!!! Top notch as always 👌Quick and insightful
Thanks Sanni! :)
excellent tutorial, thank you so much.
Thanks!
Thank you so much! Exactly what I was looking for and thanks for including the expression.
Beautiful
Great man!!! Thanx a lot!
Thanks my friend!
literally magic love it! Thank you!
Thank you! :)
great tutorial! If my 'loopTime' is 01,19seg. How do i express it?
Thnaks...! it works.
Thank you!
THANKS :)
your channel is gold mate! Keep these amazing tutorials coming ")
Thank you so much! :)
thanks
Thanks For sharing MAN.
You're welcome Ahmad! Thanks for watching :)
I LOVE YOU MAN!
Thanks a lottt it was awesome
Bedankt!
thanks bro
thnks legend
Love you!
GENIUS
Thank you very much for this!
You're welcome! And thanks for watching :)
Hi! What if my composition is not 3 seconds long on the dot? Like, what do I do if it’s 3:20 seconds long or so?
LEGEND
Much thanks - quick question: I currently have the following expression to keep the wiggle only on the y-axis:
[ value[0], wiggle(1,5)[1] ]
How would I add this to the expression you shared to make the above expression an exact loop?
freq = 1;
amp = 5;
loopTime = 3;
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
linear(t, 0, loopTime, wiggle1, wiggle2)
i know im late but if you are using simple positon keyframing, you can right click and press separate dimensions, isolating the x and y axises
Does someone know how to slow down the animation with this expression, while still preserving the loop?
amazing!!!
Thanks! :)
i love you!
thanks boss !!
Thanks for watching! :)
When I animate it going from a slow wiggle to a faster wiggle, it goes faster during the animation than it is after the last keyframe. Like if I animate it going from 1 to 2, it's faster than 2 during the animation but is 2 after it. Is there anyway to fix that?
What if I want to loop it using only "y" wiggle?
scale??
Doesn't work.
real
Thanks Bud!