Getting and setting frame range from RenderData



  • Hi,

    I read that I can get the RenderData object via

    rdata = doc.GetActiveRenderData()

    I see that frame range values are documented here

    https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d.documents/RenderData/index.html?highlight=renderdata

    RDATA_FRAMEFROM
    RDATA_FRAMETO
    RDATA_FRAMESTEP

    Cheers



  • Hi @nicholas_yue thanks for reaching out us.

    Although I'm not sure if your post was meant as a question or as a statement I'm going, nevertheless, to share some thoughts.
    The data you're looking for are stored in the RenderData BaseContainer and you can set/get them using the usual method.

    A full exmaple is available on PluginCafe Github Repo.

    Put down in words the code might looks like something as:

    def printRDataInfo(in_rdata):
        # BaseTime values are printed as frame
        print in_rdata[c4d.RDATA_FRAMEFROM].GetFrame(doc.GetFps())
        print in_rdata[c4d.RDATA_FRAMETO].GetFrame(doc.GetFps())
        print in_rdata[c4d.RDATA_FRAMESTEP]
    
    # Main function
    def main():
        # retrieve the RenderData instance
        rdata = doc.GetActiveRenderData()
        
        #just print the default values
        print "default rdata from/to/step values"
        printRDataInfo(rdata)
        
        # start is at sec 1
        rdata[c4d.RDATA_FRAMEFROM] = c4d.BaseTime(1)
        # end is at sec 2
        rdata[c4d.RDATA_FRAMETO] = c4d.BaseTime(2)
        rdata[c4d.RDATA_FRAMESTEP] = 1
        
        #just print again the values
        print "first change with values to secs"
        printRDataInfo(rdata)
        
        # start is at frame 5
        rdata[c4d.RDATA_FRAMEFROM] = c4d.BaseTime( 5.0, doc.GetFps())
        # end is at frame 15
        rdata[c4d.RDATA_FRAMETO] = c4d.BaseTime( 15.0,  doc.GetFps())
        rdata[c4d.RDATA_FRAMESTEP] = 1
        
        #just print again the values
        print "second change with values to frames"
        printRDataInfo(rdata)
    

    Cheers, R


Log in to reply