Is it possible to render frames out of order? I have a looped animation. On the first and last frames, there is nothing but a plain backdrop, and the object appears sometime during the middle of the animation. I'm rendering to an image sequence, then compiling to .gif with the help of ScreenToGif.
The problem is that the .gif thumbnail shows the first frame, which is the blank backdrop. This is especially problematic because I have multiple works in a series, and all of their thumbnails are the same blank backdrop. The animations are all 168 frames long. My workaround is to manually import frames 60-168 into ScreenToGif, then to import frames 1-59. However, this is fairly inconvenient. I've also tried shifting the keyframes to achieve the same effect but, again, it's a substantial amount of unnecessary work.
Is there a way to render frames out-of-order and effectively renumber or remap the frames? For example, I'd like to save frames 60-168 as frame[0001-0108].png, and frames 1-59 as frame[0109-0168].png.
Is this possible?
I would do this via scripting.  Here I modified an existing script that would do your remapping of frame# into file index#.  You would adjust firstBreak to 60 and lastFrame to 168.
import bpy

filepathFmt=&quot;//render/frame {0:04d}.png&quot;

firstBreak=8
lastFrame=11

###
### for list of shape types, N loops, create a set of objects, render and save, and clean up:
###
fp=&quot;&quot;
outFileIdx=1

### render from firstBreak to lastFrame:
for frameIdx in range(firstBreak, lastFrame+1, 1):
    
    bpy.context.scene.frame_set(frame=frameIdx)
    print(&quot;frame=&quot; + str(frameIdx))
    # format filename string using different index
    fp = filepathFmt.format( outFileIdx )
    print(outFileIdx)
    print( fp )
    bpy.context.scene.render.filepath = fp
    bpy.ops.render.render( write_still=True )
    outFileIdx+=1

print(&quot;remap&quot;)

### render from frame 1 to firstBreak-1:
for frameIdx in range(1, firstBreak, 1):
    
    bpy.context.scene.frame_set(frame=frameIdx)
    print(&quot;frame=&quot; + str(frameIdx))
        
    ### render and save:
    # format filename string using different index
    fp = filepathFmt.format( outFileIdx )
    print(outFileIdx)
    print( fp )
    bpy.context.scene.render.filepath = fp
    bpy.ops.render.render( write_still=True )
    outFileIdx+=1
```