Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Video Unity Recorder update

Discussion in 'Audio & Video' started by ans_unity, Dec 19, 2017.

Thread Status:
Not open for further replies.
  1. razo84

    razo84

    Joined:
    Jan 15, 2017
    Posts:
    21
    Hi there, anybody experiencing issue starting recording with Recorder 2.0.2 preview.2 on Unity 2019.3.0f6 ?
    When I hit Start Recording, Play Mode won't start and this exception is thrown instead.



    Also, changelog for Recorder mentions version 2.0.3, but I can't see it in Package Manager (yes, I have preview packages checked).

    Thanks for any clues!
     
  2. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @hanger102! Unfortunately this is a known limitation of the Recorder. We don't have an ETA at the moment for a fix but I'll bring it up with our team again.
     
  3. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    @cguertin Could you chime in on this? I'm about to start a project that will depend on this ...

     
  4. Thomukas1

    Thomukas1

    Joined:
    Sep 29, 2014
    Posts:
    31
    Hi, guys. I have a couple of questions, hopefully someone can help me out or direct me to where i could get help.
    First of all, is it true that unity recorder doesnt work in build? Is it going to be added later?
    Also, recording videos really hit my gpu. The vr camera view is stable, but everything in the scene lags, even when the scene is pretty much empty. Is the recorder not optimised or is it something on my end?
    Thanks
     
  5. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    cursor1.gif
    I just wrote a simple cursor animation script to use with recorder.
    Swaps cursor textures during animation, but I can upload only up to 5 files in the message; while I used six frames in this.
     

    Attached Files:

  6. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    Never mind. I just realized that I can simply put two cameras side by side (one rendering to the left area of the game view, one to the right). That works fine.

    ... except: Something causes the left camera to have a weird light-pumping effect, and the wind seems to have a much wilder effect on the vegetation than what I see on the right camera. I'm not perfectly sure when it started; I did do a 360 render for testing, also switched from the default (Forward) rendering path to deferred and back.

    At first I was almost certain something was going wrong with Auto Exposure - but I get the same weird effect when PostProcessing is completely disabled.
     
  7. Louis_Amerongen

    Louis_Amerongen

    Joined:
    Jul 21, 2017
    Posts:
    19
    Hi,

    I've got Unity 2019.3.0f6 and want to use the Unity Recorder to record an animation. I've downloaded and installed the recorder at the Package Manager. See image below:

    upload_2020-2-6_17-25-8.png

    When looking under Window - General however, no Recorder tab can be found (see image below). What am I doing wrong?

    upload_2020-2-6_17-28-57.png

    Thanks Louis
     
  8. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    Click "Import into Project" on Recorder Editor Sample. That should make the menu entries appear. I wondered whether that was really needed or not just yesterday. You confirmed to me that it is indeed needed ;-)
     
  9. Louis_Amerongen

    Louis_Amerongen

    Joined:
    Jul 21, 2017
    Posts:
    19
    Thank you Jashan!
     
  10. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @Giaco80, we're really glad you are enjoying the Recorder! We don't currently have any built-in queuing system but I'll discuss with the team if it's something that we would want to consider in the future.

    In the meantime, it shouldn't be too complicated to make a script that loads your scenes one at the time to Record them. You can load an existing scene using the following:
    Code (CSharp):
    1. SceneManager.LoadScene("TestAov", LoadSceneMode.Single);
    And this is an example on how to create a new Recorder and start/stop it:

    Code (CSharp):
    1.     public void StartAndStopRecording_WithValidSettings_ShouldStartThenStopRecording()
    2.     {
    3.         var settings = ScriptableObject.CreateInstance<RecorderControllerSettings>();
    4.         var imageRecorder = ScriptableObject.CreateInstance<ImageRecorderSettings>();
    5.        
    6.         settings.AddRecorderSettings(imageRecorder);
    7.         var recorderController = new RecorderController(settings);
    8.        
    9.         Assert.IsTrue(recorderController.StartRecording());
    10.         Assert.IsTrue(recorderController.IsRecording());
    11.        
    12.         recorderController.StopRecording();
    13.         Assert.IsFalse(recorderController.IsRecording());
    14.        
    15.         Object.DestroyImmediate(imageRecorder);
    16.         Object.DestroyImmediate(settings);
    17.     }
    Let us know if you have any questions!
     
    GeniusKoala likes this.
  11. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @jashan, apologies for the late answer! We don't currently support non-360 stereo recording but I'll discuss with our team if it's something we could consider implementing in a future version. Glad you found a workaround!

    Could you open a new thread regarding the visual differences between the left and right cameras (just to simplify the follow-up) and add the following information?
    1 - Which Unity version and Recorder package versions are you using?
    2 - Are you using HDRP?
    3 - Are you recording the left and right cameras at the same time (two Recorders) or one after the other?
    4 - Are the problems only appearing on the left camera (or sometimes the right instead)?

    You can add the "Recorder" tag on the new thread, thanks!
     
    Last edited: Feb 10, 2020
  12. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hi @Xarbrough! We don't currently support Recording of stepped frames but it's a great idea. I've passed it on as a suggestion to our team for possible development on future versions on the package.

    Thanks!
     
  13. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @razo84! The latest version of the Recorder package is now 2.1.0 (preview). Before digging to far I'd like to try and figure out why it's not available in your package manager. I ran a few tests on my end with the same Unity version as you (2019.3.0f6) and haven't been able to reproduce that behavior.

    To rule out a few possible issues, could you try the same thing from a new/empty project? Could you also send a screenshot of your package manager showing which versions of the Recorder are currently available to you?

    Thanks!
     
  14. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @Thomukas1, the Recorder package is indeed only available in Editor mode and we don't have currently have plans to add support for builds.

    When you mention that "everything in the scene lags", is that also the case for the images that get recorded (animations don't have the expected timing in the movie/image sequence) or only the Unity interface while it is recording?

    Thanks!
     
  15. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @Louis_Amerongen, that's a weird one. I ran a few tests on my end but couldn't replicate the problem with the same version of Unity and Recorder package as you.

    I'm glad @jashan suggestion worked but it shouldn't be needed generally. The Recorder menu is supposed to appear right after installing the package.

    1 - Do you also get the same issue in a fresh/empty project?
    2 - Do see any errors or warnings in the console after installing the Recorder package?
     
  16. a436t4ataf

    a436t4ataf

    Joined:
    May 19, 2013
    Posts:
    1,924
    The release notes seem to be missing from the manual: https://docs.unity3d.com/Packages/com.unity.recorder@2.1/manual/index.html

    I'm happy to keep testing + re-testing the previews and reporting + updating bugs - but I need release notes to know what you have changed, and what's worth re-trying (or trying that didn't exist before) :).

    EDIT: argh. My mistake. (and: Bad design of the standard Unity website) - There's a navbar that says literally: "Unity manual | Scripting API | Changelog" ... but the links DO NOT go to the Unity manual etc, they are for this package only. So I've found the release notes now :).

    (but it would probably be a good idea to explicitly link them from the package manual too, at least until Unity's web design team improves the design of package-minisites. Most of the other packages I've been using recently already do this, which is why I'd got used to seeing them in the manual)
     
  17. Thomukas1

    Thomukas1

    Joined:
    Sep 29, 2014
    Posts:
    31
    hi, can anyone help me out? I am using a cinemachine timeline and i want to record mp4 clip with unity recorder. However, it says "invalid frame rate" when i put in timeline a recorder clip...
    I have set timeline framerate to 30, also tried 24
     
  18. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @Thomukas1, you should be able to safely ignore this warning. It's a known bug we haven't had a chance to tackle yet but the recording should still work.

    Are the the recorded files not getting generated on disk?
     
  19. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    May someone let me know if the issue with low quality mp4 (even when high option is selected) is fixable on 2019.2?

    Is it fixed on 2019.3?

    Do I have to use legacy encoder?

    How does ffmpegencoder extension help, and if it does, why can't recorder ship with it by default? https://github.com/keijiro/FFmpegRecorder
     
  20. Thomukas1

    Thomukas1

    Joined:
    Sep 29, 2014
    Posts:
    31
    Hi, sorry for not answering, i forgot to check this page... I am ignoring the message of invalid frame rate and the recorder records fine in the timeline.
    About the lag, it looks like recorder takes up a lot of memory and so my framerate drops significantly, even if im recording at 240p.

    Also, another issue appeared out of nowhere. When i am recording, the timing of my animations speed up, and are way much faster the the video player in the scene. However, if i set recording fps to 60, the animations play much slower. It worked fine before, the speeds were the same both when recording and when not.
     
    Pr0x1d likes this.
  21. Kleptine

    Kleptine

    Joined:
    Dec 23, 2013
    Posts:
    274
    I just wanted to reiterate how much having this (the MovieRecorder) available in builds would be incredibly useful. It could just be the C# API that is exposed (no need to have all the editor windows sync up). Right now it's quite a major pain to record gameplay on different platforms -- the fact that Unity Recorder is already integrated with the ScriptableRenderPipeline makes this *so* close, too!
     
  22. Thomukas1

    Thomukas1

    Joined:
    Sep 29, 2014
    Posts:
    31
    The framerate differed because i had somehow switch from 1080p to 2160p. my computer is too weak for that. By the way, i would still like to know how to optimize the recorder?..
     
  23. kidsfab

    kidsfab

    Joined:
    Oct 16, 2018
    Posts:
    19
    Hello All,
    I am currently working on a project in which I animate (hands and facial mocap) a character and record my voice.

    I am recording the audio with an external app (audacity) that I start at roughly the same time than the recorder in unity.

    I am setting the recorder to record 60 seconds. I have set up the frames to 60 fps, constant and with the cap box checked. When I record a video, the audio is unmatchable in post processing, as the video seems to be recorded faster that 60fps. Seeing others also have trouble with Video recording, I have switched to recording the animation (blend shapes and Transforms) instead.

    I thus launch both the recorder and my audio recording (external app) at the same time but the planned 60 seconds end up being 106s. The animation once in Timeline has 3600frames, as it should be expected for a 60s long 60fps animation. My audio in the external app Audacity is however 106s long.

    When I bring it in Timeline, I have to fiddle with the animation clip's "speed multiplier" in order to have the audio match the animation. 60/106=0.566 seems to fit but the math isn't correct as I am starting the recordings manually with a +/- 1s delay.

    This is unfortunately currently unusable.

    My question is thus the following : could this be my non-beefy hardware struggling to render and record the animations? or a problem with the recorder in keeping up with the clock?

    Thanks for keeping this thread alive and possibly finding an answer.
     
    JohnFalconEsq likes this.
  24. opennoise

    opennoise

    Joined:
    Jun 4, 2018
    Posts:
    19
    Hi! I'm using Unity Recorder 2.1.0 on Unity version 2019.2.17. I'm trying to capture a 1080p mp4 from Game Mode. Every time I use recorder, it all seems to be working properly, but when I stop recording, I get thrown this error in the console.

    VideoMediaEncoder::~VideoMediaEncoder 487 encoding errors.
    UnityEditor.Recorder.BaseTextureRecorder`1:ReadbackDone(AsyncGPUReadbackRequest)

    And then when I check out the video file, it doesn't open, saying it's corrupted. Does anyone know how to fix this?
     
  25. skullthug

    skullthug

    Joined:
    Oct 16, 2011
    Posts:
    202
    Using Recorder 2.1.0-preview package with Unity 2018.4.18f
    I'm running into this ArguementNullException issue when trying to start the recording manually via script. I get this error in the console and the very first frame of the recording is dropped, which is a bummer because I'm attempting to make a looping GIF.
    Any thoughts what is going on?
    For reference, my setup is basically a modified version of the Example script from the Unity Asset store version of Recorder. (FYI I had this same error occur with the asset store version as well)


    NullReferenceException: Object reference not set to an instance of an object
    UnityEditor.Recorder.GIFRecorder.RecordFrame (UnityEditor.Recorder.RecordingSession session) (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/Recorders/GIFRecorder/GIFRecorder.cs:39)
    UnityEditor.Recorder.RecordingSession.RecordFrame () (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/RecordingSession.cs:129)



    ArgumentNullException: Value cannot be null.
    Parameter name: textureToCopy
    UnityEngine.RenderTexture..ctor (UnityEngine.RenderTexture textureToCopy) (at C:/buildslave/unity/build/Runtime/Export/Texture.cs:132)
    UnityEditor.Recorder.TextureFlipper.Init (UnityEngine.RenderTexture template) (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/TextureFlipper.cs:19)
    UnityEditor.Recorder.TextureFlipper.Flip (UnityEngine.RenderTexture target) (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/TextureFlipper.cs:25)
    UnityEditor.Recorder.Input.CameraInput.NewFrameReady (UnityEditor.Recorder.RecordingSession session) (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/Recorders/_Inputs/Camera/CameraInput.cs:354)
    UnityEditor.Recorder.Recorder.SignalInputsOfStage (UnityEditor.Recorder.ERecordingSessionStage stage, UnityEditor.Recorder.RecordingSession session) (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/Recorder.cs:201)
    UnityEditor.Recorder.RecordingSession.RecordFrame () (at Library/PackageCache/com.unity.recorder@2.1.0-preview.1/Editor/Sources/RecordingSession.cs:126)
     
    Last edited: Mar 3, 2020
  26. razo84

    razo84

    Joined:
    Jan 15, 2017
    Posts:
    21
    @cguertin Hi, sorry for late reponse (I thought I already answered, now I realized I didn't :)

    The issue is gone, it was most likely on the Package Manager side and happened during upgrade from 2019.2 to 3. Strange thing is that even after deleting and rebuilding Library, I was still presented old Recorder version as the latest. Once I migrated the project to fresh new 2019.3 project (in my case just move Assets folder), I was able to get the latest version in Package Manager. Hope that helps anybody.
     
    cguertin likes this.
  27. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hi @bitinn! The codec options have not yet changed in 2019.3 but being able to output high quality videos from the Recorder is something very important for us that is being worked on.

    Keijiro's FFmpegRecorder is a community project being developed independently outside of Unity. I have not tested it but I believe it allows to adjust the encoding settings which could help with your situation in the meantime.

    Another option we can recommend would be to Record an image sequence and then encode it in another software if it's possible for you.
     
    bitinn likes this.
  28. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hi @Thomukas1! The video player de-sync is a known issue but we don't have a fix at the moment unfortunately. You can check out this thread for a more detailed explanation of the problem https://forum.unity.com/threads/timeline-recorder-and-video-timing.560020/#post-3713914

    In terms of optimization, the biggest impact would be the output resolution and the number of Recorders (if you have more than one recording at the same time). Even if the engine is able to render in real-time for each frame we still need to pull the rendered data from the GPU, encode it depending on the file format, and save the file to disk. As the resolution goes up those operations take longer and the Recorder may not be able to stay "real-time" during the recording. But even if the Recorder slows down, the output file will look as expected when played back (with the exception of the video player at the moment).
     
  29. cguertin

    cguertin

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    83
    Hey @opennoise, sorry to hear you are having this issue. I tried reproducing the issue from a new projects but wasn't able to get the same result. Could you please provide the following information so we can dig further:
    1 - Are you using the Recorder clips (timeline) or the Recorder Window to start the recording?
    2 - If using the Recorder window, which record mode is used (manual, frame interval, time interval)

    Thanks!
     
  30. Thomukas1

    Thomukas1

    Joined:
    Sep 29, 2014
    Posts:
    31
    Thank you I am looking forward to a fix of de-sync
     
  31. rosssssss

    rosssssss

    Joined:
    Jan 27, 2017
    Posts:
    70
    Hello! I'm trying to use the Unity Recorder for recording some 360 video from within the editor. It all works great when I put the settings into the editor window and hit Start Recording but i can't seem to get it to work from script. Is there an example that does this anywhere?
    Here's what i've got:
    Code (CSharp):
    1.             var settings = ScriptableObject.CreateInstance<RecorderControllerSettings>();
    2.             var imageRecorder = ScriptableObject.CreateInstance<MovieRecorderSettings>();
    3.  
    4.             imageRecorder.OutputFormat = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
    5.  
    6.             imageRecorder.ImageInputSettings = new Camera360InputSettings
    7.             {
    8.                 Source = ImageSource.MainCamera,
    9.                 OutputWidth = 1920,
    10.                 OutputHeight = 1080,
    11.                 StereoSeparation = 0.065f,
    12.                 CameraTag = "MainCamera"
    13.             };
    14.  
    15.             settings.AddRecorderSettings(imageRecorder);
    16.             recorderController = new RecorderController(settings);
    17.  
    18.             Debug.Log("Start Recording: " + imageRecorder.OutputFile);
    19.  
    20.             Debug.Assert(recorderController.StartRecording());
    21.             Debug.Assert(recorderController.IsRecording());
    22.  
    when i call this function it throws a Null Reference error on line 74 on Camera360Input.cs - which is targetCamera being null i think. Any clues greatly appreciated!
    Thanks
     
  32. rosssssss

    rosssssss

    Joined:
    Jan 27, 2017
    Posts:
    70
    Ah, weird that's actually working now like that... sorry!
     
    cguertin likes this.
  33. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    Is the _Time variable available in shaders supposed to be working?

    I have a wind-system that behaves fine in regular playmode but looks erratic when recording a video with Recorder - and it's worse when storing to individual files (which is slower) than when recording to a video (which gives us compression artifacts).
     
  34. Lukiioii

    Lukiioii

    Joined:
    Mar 12, 2020
    Posts:
    4
    Hi there,

    Many thanks for providing this recording tool, and it works well for me in GUI manual mode. I'm new to Unity and wondering if we could run this recorder tool from a script, say launch Unity by command-line arguments and then automatically start playing and recording a movie?

    I tried to launch Unity by command-line argument with "-executeMethod <ClassName.MethodName>", and what I've got is:
    Code (CSharp):
    1. using UnityEditor;
    2.  
    3. class autoRun
    4. {
    5.     static void play()
    6.     {
    7.         UnityEditor.EditorApplication.isPlaying = true;
    8.  
    9.     }
    10. }
    This script can simply play my animation when Unity launched. So anyone can help me and provide some code to start the recorder? And how to pass the parameters like frames indexes, FPS, output format?

    Thanks in advance!
     
  35. FORNya

    FORNya

    Joined:
    Nov 2, 2018
    Posts:
    6
    I try to use CaptureScreenShotExample on Unity Recorder 2.1.0-preview.1.
    However
    DefaultWildcard.Take
    has invalid characters for
    Path.Combine()
    and I got errors in 26 lines on runtime.

    The original is this.
    Code (CSharp):
    1. imageRecorder.OutputFile = Path.Combine(mediaOutputFolder, "image_" + DefaultWildcard.Take);
    I fix it with:
    Code (CSharp):
    1. imageRecorder.OutputFile = mediaOutputFolder + "/image_" + DefaultWildcard.Take;
    Do maintainers fix this issue?
     
  36. methusalah999

    methusalah999

    Joined:
    May 22, 2017
    Posts:
    640
    I can't see any of this in the documentation. Is that normal? Your tool is great but we need more info to use it.
     
  37. alimpo83

    alimpo83

    Joined:
    Oct 3, 2012
    Posts:
    55
    Made a fresh install of the latest Unity version, added my content, went to install the recorder. It states the recorder is installed, it does not appear. Installed the samples and got the following errors. Basically I'm guessing it's not installed, even tough it says it is and when I install the samples, it fails.

    Installed from the package manager, as usual.

    Any ideas?

    Assets/Samples/Unity Recorder/2.1.0-preview.1/Recorder Editor Sample/RecorderEditorExample.cs(12,20): error CS0103: The name 'RecorderWindow' does not exist in the current context
    Assets/Samples/Unity Recorder/2.1.0-preview.1/Recorder Editor Sample/RecorderEditorExample.cs(12,81): error CS0103: The name 'RecorderWindow' does not exist in the current context
    Assets/Samples/Unity Recorder/2.1.0-preview.1/Recorder Editor Sample/RecorderEditorExample.cs(19,20): error CS0103: The name 'RecorderWindow' does not exist in the current context
    Assets/Samples/Unity Recorder/2.1.0-preview.1/Recorder Editor Sample/RecorderEditorExample.cs(19,80): error CS0103: The name 'RecorderWindow' does not exist in the current context
     
  38. Why485

    Why485

    Joined:
    Jun 30, 2013
    Posts:
    45
    When I hit the record button, either in the window or by pressing F10, I lose all ability to control my game, and it doesn't come back until I restart the game. It's almost as if the recorder is blocking input. I'm using Unity Recorder Recorder preview 1 - 2.1.0, and Input System preview.6 1.0.0.

    Is there an incompatibility between the new Input System and Recorder, or am I missing something obvious?

    Edit:
    The only way I'm able to maintain input while recording is to start Playing by starting the recording. Here's a gif of the problem. I can only maintain input (I'm rotating the camera) if I start recording from the Editor. As soon as I hit the Start Recording button (or hit the F10 hotkey) I lose input to the game and I can no longer rotate the camera.

     
    Last edited: Apr 10, 2020
  39. exitsimulation

    exitsimulation

    Joined:
    Feb 10, 2014
    Posts:
    82
    Hey!
    First of all, big thanks for Unity Recorder. I enjoy using it a lot and it's facilitating my workflow in many ways.
    However, I am having trouble getting 360° frame rendering to work correctly. The output images look weird (see first attached image), it seems like the specular pass is missing completely, no specular highlights whatsoever. Also really weird / messed up normal maps.
    Additionally, I see hard edges from the cubemap in the equirectangular image. Any way to get rid of these? I tried disabling all postfx but it didn't help.

    With an external plugin I managed to get beautiful equirectangular renders (see second attached image), however this plugin runs quite slowly and I'd prefer using Unity Recorder but I don't know what's the issue with it here.

    I am using Unity 2019.3.1f1 with HDRP and Unity Recorder 2.1 directly from a timeline

    Thanks!
     

    Attached Files:

    Last edited: Apr 11, 2020
  40. alex_unity299

    alex_unity299

    Joined:
    Mar 18, 2020
    Posts:
    1
    Hello, I saw somewhere that post processing effects can't be applied to 360 image captures in the recorder. Is there a known work around for this / is there an update on if this is being worked on?
     
  41. jean_unity_film_tv

    jean_unity_film_tv

    Unity Technologies

    Joined:
    Jan 31, 2018
    Posts:
    54
    Hello,

    Recorder 2.2.0-preview.4 has been released!
    We published a new version of the Recorder which introduces a few changes to the public API.
    We added a public api's to allow loading of previously saved recorder lists.
    We also fixed a number of issues.

    Here is the change log:
    ## [2.2.0-preview.4] - 2020-04-08
    ### Public API and bugfixes
    - Added public api's to allow loading previously saved recorder lists.
    - Fixed a bug where the first few frames after going in play-mode were not recorded.
    - Fixed a bug where the texture sampling recorder that did not correctly support the physical cameras.
    - Fixed an issue when starting a record session from scripts.
    - Fixed movie recorder's default framerate value being not set in the API. Default value is now set at 30 FPS.
     
  42. dpotuznik

    dpotuznik

    Joined:
    Jan 18, 2018
    Posts:
    17
    Hi @jean_unity_film_tv ,

    First thank you for this amaizing tools :)
    i don't see the version 2.2.0-preview.4 on package manager(sorry i am new on unity)
    where can i dowlnoad the new version ? i try to find on github but not founded.

    Have a nice day,
    Best regards
    Daniel
     
  43. FlorentFal

    FlorentFal

    Joined:
    Nov 20, 2015
    Posts:
    55
    Hi, what do you mean by "Collection Method" ? Thanks
     
  44. jean_unity_film_tv

    jean_unity_film_tv

    Unity Technologies

    Joined:
    Jan 31, 2018
    Posts:
    54
    If you refresh the package manager window you should be able to see it now.
     
  45. jean_unity_film_tv

    jean_unity_film_tv

    Unity Technologies

    Joined:
    Jan 31, 2018
    Posts:
    54
    The recorder is available on the package manager, version 2.2.0-preview.4, since it is in preview you need to enable to see the preview package in the Advanced menu of the package manager window.

    Regards,

    Jean
     
  46. stombor_

    stombor_

    Joined:
    Sep 23, 2019
    Posts:
    1
    Hi @jean_unity_film_tv

    I ran into a problem trying to record an image sequence using HDRP (DX11) with Unity 2019.3.9
    My Setup has a Camera which records the normal HDRP output and since 2.2.0-preview4 it works very good but I also have a camera which uses
    HDAdditionalCameraData.customRender
    to replace all materials with unlit materials (
    drawingSettings.overrideMaterial
    ). I used to use a ReplacementShader with the BuiltinRendering and everything was working, but now using the HDRP solution, I needed to change to a SRP-Renderpass and I only get the correct result in the Game View but my recordings of the scene with the customRender are full black Frames.

    Is it possible to record the output of the customRender?
    Should I be looking into the AOVRecorder for doing that?

    Here is my Code for the customRender:

    Code (CSharp):
    1. public class LabelShaderReplacement : MonoBehaviour
    2. {
    3.  
    4.     //public Shader replacementShader;
    5.     public Material replacementMaterial;
    6.  
    7.     private void OnEnable()
    8.     {
    9.         if (replacementMaterial != null)
    10.         {
    11.             RenderSpecial();
    12.         }
    13.     }
    14.  
    15.     private void OnDisable()
    16.     {
    17.         if (replacementMaterial != null)
    18.         {
    19.             RenderNormal();
    20.         }
    21.     }
    22.  
    23.     public void RenderSpecial()
    24.     {
    25.         HDAdditionalCameraData hdAdditionalCameraData = this.gameObject.GetComponent<HDAdditionalCameraData>();
    26.         hdAdditionalCameraData.customRender += SpecialRenderer;
    27.     }
    28.  
    29.     public void RenderNormal()
    30.     {
    31.         HDAdditionalCameraData hdAdditionalCameraData = this.gameObject.GetComponent<HDAdditionalCameraData>();
    32.         hdAdditionalCameraData.customRender -= SpecialRenderer;
    33.     }
    34.  
    35.  
    36.     public void SpecialRenderer(ScriptableRenderContext context, HDCamera camera)
    37.     {
    38.         CommandBuffer cameraBuffer = new CommandBuffer
    39.         {
    40.             name = camera.camera.tag
    41.         };
    42.         ShaderTagId[] shaderids =
    43.         {
    44.             new ShaderTagId("Always"),
    45.             new ShaderTagId("ForwardBase"),
    46.             new ShaderTagId("ForwardAdd"),
    47.             new ShaderTagId("Deffered"),
    48.             new ShaderTagId("ShadowCaster"),
    49.             new ShaderTagId("MotionVectors"),
    50.             new ShaderTagId("PrepassBase"),
    51.             new ShaderTagId("PrepassFinal"),
    52.             new ShaderTagId("Vertex"),
    53.             new ShaderTagId("VertexLMRGBM"),
    54.             new ShaderTagId("VertexLM")
    55.         };
    56.         cameraBuffer.ClearRenderTarget(true, true, camera.camera.backgroundColor);
    57.  
    58.         cameraBuffer.BeginSample(camera.camera.tag);
    59.         context.ExecuteCommandBuffer(cameraBuffer);
    60.         cameraBuffer.Clear();
    61.  
    62.         context.SetupCameraProperties(camera.camera);
    63.  
    64.         camera.camera.TryGetCullingParameters(out ScriptableCullingParameters cullingParameters);
    65.         CullingResults cullingResults = context.Cull(ref cullingParameters);
    66.  
    67.         DrawingSettings drawingSettings = new DrawingSettings();
    68.  
    69.         for(int i = 0; i < shaderids.Length; i++)
    70.         {
    71.             drawingSettings.SetShaderPassName(i, shaderids[i]);
    72.         }
    73.        
    74.  
    75.         drawingSettings.overrideMaterial = replacementMaterial;  // set this
    76.  
    77.         FilteringSettings filteringSettings = new FilteringSettings(RenderQueueRange.all);
    78.         context.DrawRenderers(cullingResults, ref drawingSettings, ref filteringSettings);
    79.  
    80.         //context.DrawSkybox(camera.camera);
    81.  
    82.         cameraBuffer.EndSample(camera.camera.tag);
    83.         context.ExecuteCommandBuffer(cameraBuffer);
    84.         cameraBuffer.Clear();
    85.  
    86.         context.Submit();
    87.     }
    I have added images of 2 cameras in the Game View (1 using HDRP, 1 using the customRender) CustomRender_Cam.PNG
    HDRP_Camera.PNG
     
  47. dpotuznik

    dpotuznik

    Joined:
    Jan 18, 2018
    Posts:
    17
    Hi @jean_unity_film_tv,

    Thank you, yes i downloaded now. :)

    but, the bake animation clip still not bake all frame, i thought it was fix on the new release.
    or i am wrong ?

    bake.JPG

    i use to export the camera to after effect and the cut camera i made with cinemachine have transition with few frame when i bake with the recorder.

    bake3.JPG

    bake2.JPG

    do you know if it's possible to have an workaround or i can change the resolution somewhere ?

    Thank you very much for your help ..
    I love Unity :)
     
  48. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    I was using the recorder to record the Image Sequences in the Single Frame mode.
    (2019.3.0.f6)
    After updating the Recorder to preview.4 - 2.2.0 - I am no longer able to use it that way.
    So I have uninstalled and installed back the previous version preview.1 - 2.1.0 and this is working o.k. again.
     
  49. ShervinM

    ShervinM

    Joined:
    Sep 16, 2017
    Posts:
    67
    Im in a project using Unity 2019.1.14, and updaated to the preview.4 - 2.2.0 Unity Recorder. I'm no longer able to start movie captures in the middle of playmode / runtime. The message at the bottom of the window says "Waiting for play mode to start" even though play mode is already running.
     
    PlanarBit likes this.
  50. SKoptev

    SKoptev

    Joined:
    Jan 15, 2019
    Posts:
    37
    Hello! I'm trying to figure out how to write my own custom recorder using the API from package.
    It is strange, some methods from classes that provide the API have "internal" access modifier - and therefore can't be overloaded in another assembly (maybe due to error?). For example:
    RecorderSettings.cs:
    internal virtual void SelfAdjustSettings()
    internal virtual bool HasWarnings()


    Could you briefly describe: which classes and their methods actually provide the API? The classes are grouped in a single folder "Unity recorder/Editor/Sources", and it is difficult to identify the necessary.
    Thanks a lot!
     
Thread Status:
Not open for further replies.