Would it be possible

For a python script to be able to specify only specific frames to render.
ie; instead of 1-500, tell it to render 3, 17, 98, 176, etc…
I would rather not use a render farm for just this one project, but I don’t want to do it manually either.

not possible.

http://blenderartists.org/forum/showthread.php?t=29542&highlight=render+nth

it’s actually not very hard… you can set the frame in context, then render!

Updated the script:

  • You can include ranges using “:” or “-”
  • Basic error checking
  • Deleted bunch of useless code >.<
#!BPY

""" Registration info for Blender menus: &lt;- these words are ignored
Name: 'Render selected frames'
Blender: 242a
Group: 'Object'
Tip: 'Render (comma separated) individual frames or (":"/"-" separated) ranges only'
"""

__author__ = "René Yanagida aka Daredemo"
__version__ = "1.0a 2006/11"

__bpydoc__ = """\
"Render selected frames" renders frames in a comma separated list

Usage:

Give a list of comma separated frame number of the frames you wish to be rendered. Use the script from the "Object-&gt;Scripts" menu of the 3d View.
"""

import Blender
from Blender import *
from Blender.Scene import Render
 
scn = Scene.GetCurrent()
context = scn.getRenderingContext()

text = Blender.Draw.Create("1,4-6,9")
block = []
block.append(("Frames:", text, 0, 30, "Enter comma separated list of frames or \":\"/\"-\" separated range to render"))

retval = Blender.Draw.PupBlock("Render selected frames", block)

if retval:
    txt = str(text)
    iks = txt.split(",")
        
    ixx = len(iks)
    for i in range(ixx):
        rng = iks[i].replace("'", "")
        if not rng == "":
            if not rng.count("-") == 0:
                frange = rng.split("-")
                st = int(frange[0])
                ed = int(frange[1])
                if st &gt; ed:
                    start = ed
                    end = st
                else:
                    start = st
                    end = ed
            elif not rng.count(":") == 0:
                frange = rng.split(":")
                st = int(frange[0])
                ed = int(frange[1])
                if st &gt; ed:
                    start = ed
                    end = st
                else:
                    start = st
                    end = ed
            else:
                start = int(rng)
                end = start
            context.startFrame(start)
            context.endFrame(end)
            context.renderAnim()
    Render.CloseRenderWindow()