Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Feature Request Queue or batch render for recorder

Discussion in 'Audio & Video' started by Mark_29, Jun 2, 2022.

  1. Mark_29

    Mark_29

    Joined:
    Aug 11, 2014
    Posts:
    79
    Is unity considering or will likely be adding a queue/batch process for recording video animations via the recorder?

    This could either be (but Ideally both) - Batch/Queue :
    • Multiple timelines / animations from one scene
    • Multiple scenes with timelines/animations setup to record.
    Reason - Now with raytracing, accumulation and path tracing denoising available, render times are far longer for a production level render
     
  2. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    Have you looked at the Sequences package? You can have a timeline that includes a Sequence track that has other timelines in it - so you can play the master sequence and it plays all the child sequences. Crude batching approach available today.
     
  3. Mark_29

    Mark_29

    Joined:
    Aug 11, 2014
    Posts:
    79
    Yes, but I believe it will only record one big movie? and there you will have to edit in premiere etc (unless I am mistaken). The purpose is to batch a couple of scenes when ready to have sitting there waiting for premiere, AE or other packages. Typically, we would have 1 x movie/video file per shot.
     
  4. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    You use Recorder tracks and clips, so can create whatever clips you like from it. I normally create one video file per "shot" sequence, but sometimes generate a few (e.g. different camera angles). I then end up with a big directory of video clip files that I deal with externally. For me, am I not joining the clips. I am experimenting with a "motion webcomic". https://episodes.extra-ordinary.tv/

    I actually found not having one long recording necessary as I was having problems with physics like hair bouncing. If I start recording from the beginning of the timeline, the hair might not have settled down yet - with long hair, sometimes this looks bad. So I normally start a recorder clip a second into the timeline so physics can settle down. This does slow down playback (lots of playback time before/after clips is not being recorded), so its not perfect. But it works well for batching. In fact, my complaint (which Unity said they are working on) is you have to play back everything at the moment - rendering a single shot (or subset of shots) is hard - you hit Play and it plays everything at the moment. So I move the stuff I want to render to the front of the timeline manually right now, then hit the "stop" button at the appropriate point. Each camera shot I put in a separate timeline, so I just re-order those timelines in the parent timeline. (Sequences package gives you three levels of nesting that I use for episode/location/camera-shot.)
     
  5. vladala

    vladala

    Unity Technologies

    Joined:
    Mar 3, 2017
    Posts:
    188
    Hey,
    Thanks for your message.

    I am really curious of your use case:
    Are you thinking of using a queue because you want to record multiple (non overlapping) chunks of time? (something aching to exporting every shot of a short film to its individual movie file). If yes the Timeline RecorderClip approach will work for you. Each clip can have it's own unique output filename.

    Or you want to export the same thing, but with multiple resolutions, frame rates, accumulation settings ?
    This case much harder to support for a particular time, there is only one unique set of these parameters that can be active.
    This case is is really only solved by true render queues: Unity would have to enter in play mode and render out for every set of parameters.

    If it's the first scenario you want to achieve, I could send you some code on how to do that procedurally and from a command line even.
     
  6. patbaril

    patbaril

    Unity Technologies

    Joined:
    Oct 7, 2019
    Posts:
    14
    Hello @Mark_29 , we really appreciate you making this feature request. Because you asked for it (and in fact a few others have done so) we’ve just added it as an item on our public roadmap in the "under consideration" section. We've already logged your comment, so there's no further action required on your part.

    Thanks again for the precious feedback!
     
    Mark_29 likes this.
  7. Mark_29

    Mark_29

    Joined:
    Aug 11, 2014
    Posts:
    79
    Its mostly the first - queue either multiple scenes or multiple shots of animation (non overlapping) to be rendered out as seperate video files, for comp'ing afterwards in a video editing software.

    its also so we can leave a PC to run overnight or for a few hours, without having to go back and check to see if its finished that animation. With RTX and accumulation, a scene or animation with 1500 + frames (made up of multiple shots), can take quite some time to render. Its not real time with all the effects and tech added in.

    FYI - Each scene / shot will have the same resolution, accumulation and frame settings.

    I haven't tried the RecorderClip approach, but will check it out.
     
  8. vladala

    vladala

    Unity Technologies

    Joined:
    Mar 3, 2017
    Posts:
    188
    Great.
    I attached a script that allows running unity from a command line: this thing creates procedural timelines recorder clips to batch record multiple things: this script is written to work seamlessly with our Cinematic Studio Sample, but can me modified to suit your own scene assembly tool.

    This allows you launching unity with:
    Code (CSharp):
    1. /Applications/Unity/Hub/Editor/2022.1.0b14/Unity.app/Contents/MacOS/Unity -executeMethod Automation.Editor.Launcher.Launch -projectPath /Users/vladal/projects/Dino
     

    Attached Files: