RV:creating a full framerange daily(version) with annotations

Hello, My company is using rv/rvio with shotgun. There is built in functionality to allow you to make annotations and submit a note with the individual frames that have been annotated. However it is far more useful I find (as I was able to do in previous companies) to have rv render out the full seq framerange, within which there would be the annotated frames.

So I guess my question is: What would the best approach be to render out the full frame range from rv, with annotations included for some frames?

Ultimately I want to upload this to shotgun for the shot in question, as a distinct daily(version), ie a review type daily(version), however I feel the first bit is prob the hardest, namely, getting dirty with a bit of python and rendering out the full frame range with annotations. Anyhow, I would appreciate even a nod in the right direction as to where to look in the docs, thanks in advance



4 条评论

  • 0
    (Michael) Kessler

    Hi Conor, 


    Thanks for writing in!

    Without burying lead, you can save your session then run them through RVIO (or subprocess after running commands.rvioSetup and you won't consume an RVIO license while exporting).

    To get the sequence boundaries for the entire displayed sequence for each annotated sequence, you can do something like this:

    from rv import commands, extra_commands
    from bisect import bisect

    annotated = extra_commands.findAnnotatedFrames()
    boundaries = extra_commands.sequenceBoundaries()

    sequencesToExport = {}
    for anno in annotated:
    i = bisect(boundaries, anno)-1
    sequencesToExport[i] = (boundaries[i], boundaries[i+1]-1)


    So why did I go about doing it like this?

    Annotations can live in multiple places.  You can see there's an RVPaint node in the source:


    As well as an RVPaint in the Sequence group:


    And for a stack, you might have an RVPaint at the stack:


    The TLDR of all this, there's a lot of places that your annotation can live.  So instead of going all the way to the source, you want to be view-centric.  By using the sequence boundaries, we can make sure that we use the same divisions you see in the timeline.  The bisect work just helps you figure out which section to use.


    Once you've exported, you can upload to Shotgun, but it seems like that's work you've already got a plan for.

    Here's the relevant docs from the Mu command api browser for the major commands used:

    Function: findAnnotatedFrames

    Path: extra_commands.findAnnotatedFrames

    findAnnotatedFrames (int[]; )

    Returns an array of all annotated frames relative to the view node. The array is not sorted and some frames may appear more than once.

    Function: sequenceBoundaries

    Path: extra_commands.sequenceBoundaries

    sequenceBoundaries (int[];
    string node = nil)


    I hope that helps!



  • 0
    Conor O'Meara

    Hey Michael,

    Sorry for slow reply, Im back country in asia and slow/no internet. great advice, i will read and screw up and try again. i will post reply upon success or abject failure, thanks

  • 0
    Conor O'Meara

    Hello, thanks for information. I have crawled out of the jungle and managed to implement the basic export as I needed it with full frame range annotations

  • 0
    Conor O'Meara

    So big thanks to Michael for information and help...I have posted another question for the next part and have started digging around in the docs as well myself