public void createAnimationRecorder()
    {
        // ANIMATION RECORDER


        AnimationRecorderSettings  AnimRecorder       = ScriptableObject.CreateInstance <AnimationRecorderSettings>();
        RecorderControllerSettings controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

        UnityEditor.Recorder.Input.AnimationInputSettings anim = new UnityEditor.Recorder.Input.AnimationInputSettings();
        anim.gameObject = ParentAvatar;
        Debug.Log(typeof(Transform));
        anim.AddComponentToRecord(typeof(Transform));
        anim.AddComponentToRecord(typeof(SkinnedMeshRenderer));
        anim.Recursive = true;


        AnimRecorder.name              = "MoCapRocketbox";
        AnimRecorder.FrameRate         = 30;
        AnimRecorder.FrameRatePlayback = FrameRatePlayback.Constant;
        AnimRecorder.CapFrameRate      = true;
        filepath = Application.dataPath + "/Resources/RB_animation" + DateTime.Now.Day + "_" + DateTime.Now.TimeOfDay;
        AnimRecorder.OutputFile             = filepath;
        AnimRecorder.RecordMode             = RecordMode.Manual;
        AnimRecorder.AnimationInputSettings = anim;
        AnimRecorder.Enabled = true;

        // controllerSettings.FrameRate = 30;
        controllerSettings.AddRecorderSettings(AnimRecorder);
        recorder = new RecorderController(controllerSettings);
        // controllerSettings.SetRecordModeToManual();
        //  controllerSettings.Save();
    }
    private static RecorderController GetRecorder(string levelName)
    {
        // Create the settings and setup the controller with them
        RecorderControllerSettings controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();
        MovieRecorderSettings      movieSettings      = ScriptableObject.CreateInstance <MovieRecorderSettings>();
        RecorderController         controller         = new RecorderController(controllerSettings);

        // Set the controller settings
        controllerSettings.SetRecordModeToManual();
        controllerSettings.FrameRatePlayback = FrameRatePlayback.Constant;
        controllerSettings.FrameRate         = 30;
        controllerSettings.CapFrameRate      = true;
        controllerSettings.AddRecorderSettings(movieSettings);

        // Set the movie settings
        movieSettings.Enabled = true;
        movieSettings.AudioInputSettings.PreserveAudio = true;
        movieSettings.CaptureAlpha           = false;
        movieSettings.ImageInputSettings     = new GameViewInputSettings();
        movieSettings.OutputFormat           = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
        movieSettings.OutputFile             = levelName;
        movieSettings.FileNameGenerator.Root = OutputPath.Root.Project;
        movieSettings.FileNameGenerator.Leaf = "Recordings";
        movieSettings.Take = 1;

        return(controller);
    }
Exemplo n.º 3
0
    public void StartRecord()
    {
        controllerSettings     = ScriptableObject.CreateInstance <RecorderControllerSettings>();
        TestRecorderController = new RecorderController(controllerSettings);

        videoRecorder                    = ScriptableObject.CreateInstance <MovieRecorderSettings>();
        videoRecorder.name               = "My Video Recorder";
        videoRecorder.Enabled            = true;
        videoRecorder.VideoBitRateMode   = VideoBitrateMode.High;
        videoRecorder.ImageInputSettings = new GameViewInputSettings
        {
            OutputWidth  = 1920,
            OutputHeight = 1080
        };

        videoRecorder.AudioInputSettings.PreserveAudio = false;

        string str = DateTime.Now.Day + "_" + DateTime.Now.Month + "_" + DateTime.Now.Year.ToString() + "_" + DateTime.Now.Hour + "_" + DateTime.Now.Minute + "_" + DateTime.Now.Second;

        videoRecorder.OutputFile = "Registrazione_" + str;

        controllerSettings.AddRecorderSettings(videoRecorder);
        controllerSettings.SetRecordModeToManual();
        controllerSettings.FrameRate = 30;

        RecorderOptions.VerboseMode = false;
        TestRecorderController.PrepareRecording();
        TestRecorderController.StartRecording();
    }
Exemplo n.º 4
0
        public void StartRecording(GameObject target)
        {
            if (target == null)
            {
                return;
            }
            if (!(recordTransform || recordBlendShapeProxy))
            {
                Debug.LogWarning("It can not be recorded because there are no valid elements.");
                return;
            }

            // 未使用のアセットを開放する
            Resources.UnloadUnusedAssets();

            // Animation
            var animationRecorder = ScriptableObject.CreateInstance <AnimationRecorderSettings> ();

            animationRecorder.name    = "My Animation Recorder";
            animationRecorder.enabled = true;

            animationRecorder.animationInputSettings = new AnimationInputSettings {
                gameObject = target,
                recursive  = true,
            };

            if (recordTransform)
            {
                animationRecorder.animationInputSettings.AddComponentToRecord(typeof(Transform));
            }
            if (recordBlendShapeProxy)
            {
                animationRecorder.animationInputSettings.AddComponentToRecord(typeof(VMCBlendShapeProxy));
            }

            SafeCreateDirectory("Assets/Recordings");

            var recordingAnimationClipPath = $"Assets/Recordings/{target.name}_{_startTime:yyMMddHHmmss}_{RecordedObjectEntity.take}";

            recordingAnimationClipPath   = AssetDatabase.GenerateUniqueAssetPath(recordingAnimationClipPath);
            animationRecorder.outputFile = System.IO.Path.GetFullPath(recordingAnimationClipPath);

            // Setup Recording
            controllerSettings.AddRecorderSettings(animationRecorder);
            controllerSettings.SetRecordModeToManual();
            controllerSettings.frameRate         = frameRate;
            controllerSettings.capFrameRate      = capFrameRate;
            controllerSettings.frameRatePlayback = frameRatePlayback;

            Options.verboseMode = false;
            m_RecorderController.StartRecording();

            _onEndRecorded = () => {
                var latestRecordedClip = AssetDatabase.LoadAssetAtPath <AnimationClip> (recordingAnimationClipPath + ".anim");

                //RecordedObjectEntity.latestEntities = new RecordedObjectEntity[0];
                RecordedObjectEntity.latestEntities.Add(new RecordedObjectEntity(target.GetComponent <Animator> (), latestRecordedClip));
            };
        }
Exemplo n.º 5
0
        public void Setup()
        {
            // 1) Timeline Clip is 1s
            recorderClip.start    = 0.0f;
            recorderClip.duration = 1.0f;

            recorderTimeline.durationMode  = TimelineAsset.DurationMode.FixedLength;
            recorderTimeline.fixedDuration = 5.0f;

            // 2) Configure Timeline clip Recorder settings
            var outputPath = Application.dataPath + "/../RecordingTests/movie_test_from_timeline_";

            fileExpectedMovieFromTimeline = new FileInfo($"{outputPath}001.mp4");
            var recorderSettings = ScriptableObject.CreateInstance <MovieRecorderSettings>();

            recorderSettings.OutputFile         = outputPath + DefaultWildcard.Take;
            recorderSettings.ImageInputSettings = new CameraInputSettings
            {
                Source             = ImageSource.MainCamera,
                OutputWidth        = 320,
                OutputHeight       = 240,
                CameraTag          = "MainCamera",
                RecordTransparency = false,
                CaptureUI          = false
            };
            recorderSettings.OutputFormat               = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
            recorderSettings.VideoBitRateMode           = VideoBitrateMode.High;
            ((RecorderClip)recorderClip.asset).settings = recorderSettings;

            if (fileExpectedMovieFromTimeline.Exists)
            {
                fileExpectedMovieFromTimeline.Delete();
            }

            // 3) Add a 1s Recorder Controller (as with a Recorder Window)
            controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();

            videoRecorder.name               = "My Video Recorder";
            videoRecorder.Enabled            = true;
            videoRecorder.VideoBitRateMode   = VideoBitrateMode.High;
            videoRecorder.ImageInputSettings = new GameViewInputSettings
            {
                OutputWidth  = 320,
                OutputHeight = 240
            };
            videoRecorder.AudioInputSettings.PreserveAudio = true;
            videoRecorder.OutputFile        = Application.dataPath + "/../RecordingTests/movie_test_from_controller";
            fileExpectedMovieFromController = new FileInfo(videoRecorder.OutputFile + ".mp4");
            controllerSettings.AddRecorderSettings(videoRecorder);
            controllerSettings.SetRecordModeToFrameInterval(0, 29); // 1s @ 30 FPS
            controllerSettings.FrameRate = 30;

            if (fileExpectedMovieFromController.Exists)
            {
                fileExpectedMovieFromController.Delete();
            }
        }
Exemplo n.º 6
0
    void SetupNewRecorder()
    {
        // creating animation recorder and assigning the camera to it
        animationRecorderSettings = ScriptableObject.CreateInstance("AnimationRecorderSettings") as AnimationRecorderSettings;
        animationRecorderSettings.animationInputSettings.recursive  = true;
        animationRecorderSettings.animationInputSettings.gameObject = this.gameObject;
        animationRecorderSettings.animationInputSettings.AddComponentToRecord(typeof(Transform));

        // creating recorder settings and assigning our animation recorder settings to it
        actorRecorderSettings = ScriptableObject.CreateInstance("RecorderControllerSettings") as RecorderControllerSettings;
        actorRecorderSettings.AddRecorderSettings(animationRecorderSettings);
        actorRecorderSettings.SetRecordModeToManual();

        // creating a new recorder instance with the correct settings
        actorRecorder = new RecorderController(actorRecorderSettings);
    }
    void SetupNewRecorder()
    {
        // creating animation recorder and assigning the camera to it
        cameraMovementRecorderSettings = ScriptableObject.CreateInstance("AnimationRecorderSettings") as AnimationRecorderSettings;
        cameraMovementRecorderSettings.animationInputSettings.recursive  = false;
        cameraMovementRecorderSettings.animationInputSettings.gameObject = this.gameObject;
        cameraMovementRecorderSettings.animationInputSettings.AddComponentToRecord(typeof(Transform));
        cameraMovementRecorderSettings.animationInputSettings.AddComponentToRecord(typeof(Camera));


        // creating recorder settings and assigning our animation recorder settings to it
        filmbackRecorderSettings = ScriptableObject.CreateInstance("RecorderControllerSettings") as RecorderControllerSettings;
        filmbackRecorderSettings.AddRecorderSettings(cameraMovementRecorderSettings);
        filmbackRecorderSettings.SetRecordModeToManual();

        // creating a new recorder instance with the correct settings
        filmbackRecorder = new RecorderController(filmbackRecorderSettings);
    }