Copy link to clipboard
Copied
I haven't been able to find an answer to this, apologies if I missed it.
I have a simple animation using multiple shapes in a shape layer that I've precomposed and want to loop in a background layer. Shapes are animated using keyframes that expand and retract them to 0 size.
In the precomp, I left several slides at the beginning and end that are blank on purpose: I figured it would be easier to start/end the animation while the shapes were 0 size. However, when I loop the precomp in the main comp using loopOut(), the last frame has junk on it. A blurry version of all the shapes, like it's "rewinding" the animation all in one frame to start the loop over (maybe?)
Things I've tried:
In this instance, I got around it by keyframing the opacity to zero at the very beginning and end inside the precomp (effectively forcing the blank frame thing that messes with other loops) so the junk just doesn't appear. But that won't work in most scenarios. Has anybody else experienced/resolved this?
Screencaptures
Playing within the precomp to show the intended loop behavior:
Stepping through the main comp with loopOut() on the precomp to show the junk that appears on the last keyframe:
Demostrating that changing the last keyframe (common fix for blank frame issue) does not work here:
Copy link to clipboard
Copied
I know this is just a workaround of a different sort, but I don't suppose making that last key a Hold keyframe does the trick?
Copy link to clipboard
Copied
Thanks for the suggestion! I'd love to test this, but now... I can't recreate my own issue.
Yesterday, I set the full background video to render using the opacity workaround and left it for the night. When I saw your suggestion this morning, I deleted the opacity keyframes and cleared all memory/disk cache to put it back exactly the way it was. And now it's rendering fine. No junk on the last keyframe.
It's a weird feeling to be even more frustrated after a problem solves itself.
Copy link to clipboard
Copied
When you apply Time Remapping, the last keyframe is placed after the last frame has played. If you want to see the last frame, you need to move back one frame, set a new keyframe, then delete the last one. It's always that way.
It's the same with loopOut(). The loop is between the first frame and the start of the last one. The last frame never plays. If it did, you could not create a seamless loop because the first and last frames would repeat. It took me a few years to figure out what was really going on with Time remapping and Loop expressions.
.