1 person found this helpful
This is normal behavior. Don't delete the keyframe at 16. Let me explain.
Let's say you have 2 keyframes for transparency. Frame 0 is 0 and frame 10 is 100. Adding the loop out expression to these keyframes will give you the following:
0 = 0
1 = 10
2 = 20
3 = 30
4 = 40
5 = 50
6 = 60
7 = 70
8 = 80
9 = 90
10 = 100
11 = 10
Then frame 19 will be 90 and frame 20 will be 0 and so on. This is because the animation loops between frame one and frame 10 which means it only reaches the value of frame 10 the first time through the loop. Every time after that the loop starts over at the first frame of the loop (frame 10, 20, 30 and so on).
This is normal. If you want frame 11 to be 0 then you'll need to add a keyframe there so you have an 11 frame loop instead of a 10 frame loop.
To solve your problem try backing up 1 keyframe from the end, inserting a new keyframe, and then leaving the last one. Now you have a seamless loop of all of your keyframes.
Does that make sense? The loopOut() method loop is exactly the same length as the keyframes to therefore the next frame after the loop has the same value as the second frame after the start of the loop and all subsequent loops will end one frame before the last keyframe. To make a continuous loop from 0 to 100 you need 3 keyframes. One at 0, two at 100 and 3 at 0.
You can also change the loopOut method from the default "cycle" to "pingpong" by writing loopOut("pingpong"). This would give you a smooth fade up and fade down between 0 and 100 because the loop goes back and forth between the first and last keyframes.
This is the way looping functions work in Java, 3D apps, and everywhere else that I have used them.
When I put a new keyframe 1 frame before the end, there are no visible changes. The last keyframe is still blank.
I can assign the last keyframe the timecode 00;01 instead of 16;00 and then the second-to-last keyframe becomes blank.
This feels like a bug more than anything. I understand where you're coming from, but After Effects isn't giving me the logical result.
Ok, I might be on to something...I need to do a little more testing but I think I've solved it. I'll report back in 30 minutes.
I found out I can use the loopOut() expression on another composition with the new keyframe method outlined above, and it fixed the blank frame.
The same method does not work on the original composition in question, for whatever reason.
Fortunately, the loopOut("ping-pong") expression you mentioned will work for this animation, and that does remove the blank frame.
1 person found this helpful
Well, time-remapping means time-remapping not frame-remapping. Everything happens on genuine time calculations and if your values are off by a fraction, sampling the discrete frames may simply end up in a blank area. This may not show up in the first few iteration cycles, but may become apparaent later as those minute discrepancies accumulate. Well, whatever, without seeing your project it's just guessing around...
In my case, moving time remapped frames resulted the last frame before 00:00:00 being blurred."Toggle hold keyframe" couple frames before the last worked for me.
9 people found this helpful
The solution to this problem, that I found, was ridiculously simple. I just had to turn on the "continuously rasterize" icon (the little star burst) next to the "shy" icon. I hope that's helpful to anyone reading this post now.
omfg I've been looking for like 30 mins for this! ughh. so stupid. thanks!!
Just to confirm, I'd be messing about with keyframes for the last hour. I had a 24 frame animation had tried every which way... described in tutorials on YouTube in other threads on here. Using the pingpong method worked. But I wanted to get the cycle working as well.
As soon as I turned on the 'continuously rasterise' icon it worked like a charm.
I am using loopOut() after enabling Time Remapping and at the end of the comp (which i'm trying to loop) I get a black frame, therefore I have selected the comp and in the timeline at the second diamond shape for the Time Remap (the last frame the Black one ) type in one less frame. exp: the comp which you want to loop is 215 frames therefore you can go ahead and type 214.
That solve it for me I hope it will do for you.
I've just had the same issue. I only get a single blank frame on the first loop around so it has to be a bug. I ended up just duplicating my comp for that single missing frame. Simple solution this time but I hope Adobe fix this bug.
To make a prefect loop do this:
1. enable TR for the layer
2. Go one frame before the last TR keyframe And Add a keyframe (hit the diamond icon)
4. Copy the first TR keyframe over the last keyframe
5. Add the loopout expression
Not a bug, user error. The last keyframe set when you enable time remapping is the time value for the entire length of the clip. If you have exactly 1 second of video in your time line then the end of the last frame is at 1 second, not the start of the last frame. If you position the CTI on the last frame of time remapping and move in to the end of the timeline you will se that this keyframe is set at the next available frame and the comp panel is now blank. All you have to do is zoom in on the timeline and look at the actual frames to see what is going on.
Move back one frame to the start of the last frame in the movie and set a keyframe. Move the CTI to that frame and you'll see something in the composition panel because in AE and every NLE the default behavior is for the time indicator to stop at the start of the last frame so you can see it, not at the start of the next to the last frame. That's why the time indicator starts at zero and the time indicator always stops one frame short of the end of a comp or a clip when you hit "o" to move to the out point.
Thanks for taking the time to answer. This method did stop the blank frame problem on the first loop around, but at the expense of the last frame of my animation for all the subsequent loops (which start a frame early now). This knock-on effect is harder to spot than a blank frame but it is there. It still looks like a bug to me. Looping a Comp should be simple.
I watched a fix of this on YouTube which I followed to the letter. It worked the blank frame disappeared. Now when it loops I only get 23 of the 24 frames. It excludes the last frame, It's an effect the would be hard to spot without playing back frame by frame but it is there. I still think it is a bug and not 'user error'.
The only thing I see that is different is the white dot in the middle of the frame. I'm just looking on my phone so maybe I'm missing something.
What does the first frame look like? What does the second frame look like? I'm guessing that it has looks like the frame does at 0:00:02:00 in your last screenshot.
The loop out expression loops from the first frame after the first keyframe to the last keyframe. Using loopOut() does not repeat the first keyframe. You have to design your loop with that in mind. If you want a seamless loop using time remapping then the last frame of the animation must be identical to the first frame.
This is a change in the loopOut() behavior that happened a few versions ago. The old method required setting a keyframe one frame before the motion looped, then deleting the last keyframe and then adding loopOut(). That extra work is no longer required and makes more sense. It also solves motion blur problems that were almost impossible to fix in previous versions.
Time remapping, on the other hand sets the last keyframe at the end of the last frame, not at the beginning so to create a loop without a blank frame you have to move back one frame and set a new keyframe, delete the original last keyframe, then add loopOut(). To make a seamless loop both the first frame and the last frame of the time remapped layer must be identical.
This method did stop the blank frame problem on the first loop around, but at the expense of the last frame of my animation for all the subsequent loops (which start a frame early now).
this should work.
make a simple test:
move a layer from one point to the other, set the duration to match the animation and precompose. now TR the precomp with the loop out expression with the technique I described. make sure you have a long duration for the master comp.
to test it, create a copy of the TR layer and remove the expression and the TR. duplicate the layer back to back with its duplicates and see if the animation sticks.
here's the project file: