Skip to main content
Inspiring
July 3, 2022
Answered

Comp disappears on last frame

  • July 3, 2022
  • 1 reply
  • 715 views

I have an 8 second comp and I noticed that if I put the play head to the end it stops at the second last frame then I have to do page down to put it on the very last frame but when I do this the comp disappears. Is there a reason for this?

This topic has been closed for replies.
Correct answer Rick Gerard

The time indicator is positioned at the start of a frame, not the end. If you have a 100-frame comp and move to the end of the comp, the frame number display will be 99 because frame 99 has not been played yet. After 99 frames have played, the duration will be 100 frames, but the movie will be over. 

 

You are looking at the frame that starts at 8 seconds. When you move the time to 8 seconds, 8 seconds have passed, so there is nothing to see in the comp panel. Did you follow that? 

 

Move the time indicator to 8 seconds, cut, and delete the extra, or trim the shot, and the viewer will be black because the shot was 8 seconds long. You have moved to 8 seconds, so the shot is over. It is that way in all compositing and editing apps like Premiere Pro. 

 

The difference between an NLE like Premiere Pro and After Effects is that if you move to 8 seconds and set an out point for a layer, you will still see the last frame, and you have trimmed the layer to 8 seconds and one frame. 

 

It is important to see the last visible frame when you are animating. so you can line up the next frame correctly. 

 

I hope this makes sense. 

1 reply

Rick GerardCommunity ExpertCorrect answer
Community Expert
July 3, 2022

The time indicator is positioned at the start of a frame, not the end. If you have a 100-frame comp and move to the end of the comp, the frame number display will be 99 because frame 99 has not been played yet. After 99 frames have played, the duration will be 100 frames, but the movie will be over. 

 

You are looking at the frame that starts at 8 seconds. When you move the time to 8 seconds, 8 seconds have passed, so there is nothing to see in the comp panel. Did you follow that? 

 

Move the time indicator to 8 seconds, cut, and delete the extra, or trim the shot, and the viewer will be black because the shot was 8 seconds long. You have moved to 8 seconds, so the shot is over. It is that way in all compositing and editing apps like Premiere Pro. 

 

The difference between an NLE like Premiere Pro and After Effects is that if you move to 8 seconds and set an out point for a layer, you will still see the last frame, and you have trimmed the layer to 8 seconds and one frame. 

 

It is important to see the last visible frame when you are animating. so you can line up the next frame correctly. 

 

I hope this makes sense. 

ArrakisAuthor
Inspiring
July 4, 2022

Hi Rick, yes that makes sense thanks.  So I'm wondering if I want my comp to loop do I have same keyframe on last frame as first?  Because when I do that sometimes I notice a slight freeze at the end because there's two loops exactly the same.

Community Expert
July 4, 2022

If you want to use loopOut() to create a seamless loop, the first and last frames must be identical.

 

When you use time remapping, the first and last frames must also be identical. 

If you want to render a video that you can interpret to loop many times, you need to set up the comp so that the first and last frames are identical, and then the comp must be shortened by one frame for the video to loop seamlessly. That is because the last frame will be repeated. If they are identical, you will end up with two identical frames in a row.

 

As I said before, when you set a keyframe or trim a layer, you are at the starting time of the frame. The loopOut expression treats the keyframe as the end of the last frame, not the start. That shortens the loop by one frame in the same way you must shorten a comp by one frame if you want to render a movie that will seamlessly loop. It took me a long time to wrap my head around loopOut expressions. It wasn't until I figured out that loopOut() treats the starting time of the last keyframe as the end of the loop that it all made sense. 

 

I hope that clears things up for you.