コード例 #1
0
    // Start is called before the first frame update
    void Start()
    {
        var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

        m_RecorderController = new RecorderController(controllerSettings);

        var mediaOutputFolder = Application.streamingAssetsPath;

        var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();

        videoRecorder.name    = "My Video Recorder";
        videoRecorder.Enabled = true;

        videoRecorder.OutputFormat     = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
        videoRecorder.VideoBitRateMode = VideoBitrateMode.Low;

        /*videoRecorder.ImageInputSettings = new GameViewInputSettings
         * {
         *  OutputWidth = 1920,
         *  OutputHeight = 1080
         * };*/

        videoRecorder.AudioInputSettings.PreserveAudio = true;

        videoRecorder.OutputFile = Path.Combine(mediaOutputFolder, "video " + 1);

        controllerSettings.AddRecorderSettings(videoRecorder);

        controllerSettings.SetRecordModeToManual();
        controllerSettings.FrameRate = 60.0f;
    }
コード例 #2
0
        void OnEnable()
        {
            var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            m_RecorderController = new RecorderController(controllerSettings);

            var mediaOutputFolder = Path.Combine(Application.dataPath, "..", "SampleRecordings");

            // Image
            var imageRecorder = ScriptableObject.CreateInstance <ImageRecorderSettings>();

            imageRecorder.name         = "My Image Recorder";
            imageRecorder.enabled      = true;
            imageRecorder.outputFormat = ImageRecorderOutputFormat.PNG;
            imageRecorder.captureAlpha = false;

            imageRecorder.outputFile = Path.Combine(mediaOutputFolder, "image_" + DefaultWildcard.Take);

            imageRecorder.imageInputSettings = new GameViewInputSettings
            {
                outputWidth  = 3840,
                outputHeight = 2160,
            };

            // Setup Recording
            controllerSettings.AddRecorderSettings(imageRecorder);
            controllerSettings.SetRecordModeToSingleFrame(0);
        }
コード例 #3
0
        public IEnumerator StartAndStopRecordingGif_When_Pause_DoesNotCrash()
        {
            yield return(new EnterPlayMode());

            EditorApplication.isPaused = true;
            yield return(null);

            Assert.AreEqual(EditorApplication.isPaused, true);

            var settings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            settings.SetRecordModeToTimeInterval(0, 20);
            var gifSettings = ScriptableObject.CreateInstance <GIFRecorderSettings>();

            settings.AddRecorderSettings(gifSettings);
            var recorderController = new RecorderController(settings);

            recorderController.PrepareRecording();
            recorderController.StartRecording();
            yield return(null);

            recorderController.StopRecording();
            yield return(new ExitPlayMode());

            UnityObject.DestroyImmediate(settings);
            UnityObject.DestroyImmediate(gifSettings);
        }
コード例 #4
0
    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();
    }
コード例 #5
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();
    }
コード例 #6
0
    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);
    }
コード例 #7
0
        public static void StartCapturing()
        {
            var options  = RecorderOptions.CurrentOptions;
            var settings = CreateInstance <RecorderControllerSettings>();

            settings.SetRecordModeToSingleFrame(0);

            image = CreateInstance <ImageRecorderSettings>();
            image.imageInputSettings = new Camera360InputSettings
            {
                Source           = ImageSource.MainCamera,
                MapSize          = options.MapSize,
                OutputHeight     = options.Height,
                OutputWidth      = options.Width,
                RenderStereo     = options.renderStereo,
                StereoSeparation = options.StereoSeparation,
            };
            image.OutputFormat           = options.IntermediateFormat;
            image.FileNameGenerator.Root = OutputPath.Root.Absolute;
            image.FileNameGenerator.Leaf = PathProvider.WorkDir;
            settings.AddRecorderSettings(image);

            controller = new RecorderController(settings);

            captureId = 0;
            TimelinePlayer.Current.PlayFrameByFrame();
        }
コード例 #8
0
        public void PrepareRecording_WithNullSettings_ThrowsException()
        {
            var recorderController = new RecorderController(null);

            var ex = Assert.Throws <NullReferenceException>(() => recorderController.PrepareRecording());

            Assert.IsTrue(ex.Message.Contains("Can start recording without prefs"));
        }
コード例 #9
0
        void CreateRecorderInstances(out RecorderController controller, out MovieRecorderSettings movieSettings)
        {
            var settings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            movieSettings = ScriptableObject.CreateInstance <MovieRecorderSettings>();

            settings.AddRecorderSettings(movieSettings);
            controller = new RecorderController(settings);
        }
コード例 #10
0
        public void StartRecording_WithEmptySettings_ShouldNotStartRecording()
        {
            var settings           = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            var recorderController = new RecorderController(settings);

            Assert.IsFalse(recorderController.StartRecording());
            Assert.IsFalse(recorderController.IsRecording());

            Object.DestroyImmediate(settings);
        }
コード例 #11
0
        public void PrepareRecording_InNonPlayMode_ShouldThrowsException()
        {
            var settings           = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            var recorderController = new RecorderController(settings);

            var ex = Assert.Throws <Exception>(() => recorderController.PrepareRecording());

            Assert.IsTrue(ex.Message.Contains("Start Recording can only be called in Playmode"));
            UnityObject.DestroyImmediate(settings);
        }
コード例 #12
0
ファイル: MovieRecorderFixture.cs プロジェクト: SayuHaru/Ball
        /// <summary>
        /// Record a Timeline Recorder Clip and a Recorder Controller.
        /// </summary>
        /// <returns></returns>
        private void Record()
        {
            RecorderOptions.VerboseMode = false;

            // 1) Start recording the Recorder Controller
            var testRecorderController = new RecorderController(controllerSettings);

            testRecorderController.PrepareRecording();
            testRecorderController.StartRecording();

            // 2) Play the Timeline
            director.Play();
        }
コード例 #13
0
        void StartVideoRecording()
        {
#if UNITY_EDITOR && AT_VIDEO_INIT
            RecorderOptions.VerboseMode = false;

            var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            this.mRecorderController = new RecorderController(controllerSettings);

            var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();
            videoRecorder.name             = this.mProject.ProjectName;
            videoRecorder.Enabled          = true;
            videoRecorder.OutputFile       = "Recordings/" + GetVideoName();
            videoRecorder.OutputFormat     = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
            videoRecorder.VideoBitRateMode = UnityEditor.VideoBitrateMode.High;

            if (this.mProject.is360)
            {
                videoRecorder.ImageInputSettings = new Camera360InputSettings()
                {
                    OutputWidth  = this.mProject.OutputWidth,
                    OutputHeight = this.mProject.OutputHeight,
                    RenderStereo = this.mProject.is360Stereo
                };
            }
            else
            {
                videoRecorder.ImageInputSettings = new GameViewInputSettings()
                {
                    OutputWidth  = this.mProject.OutputWidth,
                    OutputHeight = this.mProject.OutputHeight,
                };
            }


            videoRecorder.AudioInputSettings.PreserveAudio = true;

            controllerSettings.AddRecorderSettings(videoRecorder);

            controllerSettings.SetRecordModeToManual();
            //controllerSettings.SetRecordModeToFrameInterval(0, this.mProject.GetDuration() * this.FrameRate); // 2s @ 30 FPS
            controllerSettings.FrameRate         = this.mProject.FrameRate;
            controllerSettings.FrameRatePlayback = FrameRatePlayback.Constant;
            controllerSettings.CapFrameRate      = false;

            mRecorderController.PrepareRecording();
            mRecorderController.StartRecording();
#endif
        }
コード例 #14
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);
    }
コード例 #15
0
        public void StartAndStopRecording_WithValidSettings_ShouldStartThenStopRecording()
        {
            var settings      = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            var imageRecorder = ScriptableObject.CreateInstance <AOVRecorderSettings>();

            settings.AddRecorderSettings(imageRecorder);
            var recorderController = new RecorderController(settings);

            Assert.IsTrue(recorderController.StartRecording());
            Assert.IsTrue(recorderController.IsRecording());

            recorderController.StopRecording();
            Assert.IsFalse(recorderController.IsRecording());

            Object.DestroyImmediate(imageRecorder);
            Object.DestroyImmediate(settings);
        }
コード例 #16
0
    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);
    }
コード例 #17
0
        public async Task UnitStartRecordTestAsync()
        {
            SceneInUse.Instance.Set(FileController.Import("test/toImportFile.leikelen"));
            var rc = new RecorderController();
            await rc.Record();

            bool rec = false;

            foreach (var input in InputLoader.Instance.SceneInputModules)
            {
                if (input.Monitor.IsRecording())
                {
                    rec = true;
                    break;
                }
            }
            Assert.IsTrue(rec);
        }
コード例 #18
0
        internal void Initialize()
        {
            var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            m_RecorderController = new RecorderController(controllerSettings);

            var mediaOutputFolder = new DirectoryInfo(Path.Combine(Application.dataPath, "..", "SampleRecordings"));

            // Video
            m_Settings         = ScriptableObject.CreateInstance <MovieRecorderSettings>();
            m_Settings.name    = "My Video Recorder";
            m_Settings.Enabled = true;

            // This example performs an MP4 recording
            m_Settings.OutputFormat     = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
            m_Settings.VideoBitRateMode = VideoBitrateMode.High;

            m_Settings.ImageInputSettings = new GameViewInputSettings
            {
                OutputWidth  = 1920,
                OutputHeight = 1080
            };

            m_Settings.AudioInputSettings.PreserveAudio = m_RecordAudio;

            // Simple file name (no wildcards) so that FileInfo constructor works in OutputFile getter.
            m_Settings.OutputFile = mediaOutputFolder.FullName + "/" + "video";

            // Setup Recording
            controllerSettings.AddRecorderSettings(m_Settings);
            controllerSettings.SetRecordModeToManual();
            controllerSettings.FrameRate = 60.0f;

            RecorderOptions.VerboseMode = false;
            m_RecorderController.PrepareRecording();
            m_RecorderController.StartRecording();

            Debug.Log($"Started recording for file {OutputFile.FullName}");
        }
コード例 #19
0
    // This function gets called when entering Play Mode. We configure the Recorder and start it.
    private void OnEnable()
    {
        if (renderTexture == null)
        {
            //Debug.LogError($"You must assign a valid renderTexture before entering Play Mode");
            renderTexture = new RenderTexture(512, 512, 32);
        }

        RecorderOptions.VerboseMode = true;

        var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

        recorderController = new RecorderController(controllerSettings);

        var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();

        videoRecorder.name         = "My Video Recorder";
        videoRecorder.Enabled      = true;
        videoRecorder.OutputFile   = "recording";
        videoRecorder.OutputFormat = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;

        videoRecorder.ImageInputSettings = new RenderTextureInputSettings()
        {
            OutputWidth     = renderTexture.width,
            OutputHeight    = renderTexture.height,
            FlipFinalOutput = false,
            RenderTexture   = renderTexture
        };
        RecorderOptions.VerboseMode = false;
        videoRecorder.AudioInputSettings.PreserveAudio = true;

        controllerSettings.AddRecorderSettings(videoRecorder);
        //controllerSettings.SetRecordModeToFrameInterval(0, 59); // 2s @ 30 FPS
        controllerSettings.SetRecordModeToManual();
        controllerSettings.FrameRate = 60;
        recorderController.PrepareRecording();
        recorderController.StartRecording();
    }
コード例 #20
0
        public void SceneHookGameObject_AfterStartRecording_ShouldBeVisible()
        {
            var settings = ScriptableObject.CreateInstance <RecorderControllerSettings>();
            var recorder = ScriptableObject.CreateInstance <ImageRecorderSettings>();

            settings.AddRecorderSettings(recorder);
            var recorderController = new RecorderController(settings);

            Options.verboseMode = false;             // Make sure visibility is not toggled on because of debugMode.

            Assert.IsTrue(recorderController.StartRecording());
            Assert.IsTrue(recorderController.IsRecording());

            var gameObject = GameObject.Find("Unity-RecorderSessions");

            Assert.IsNotNull(gameObject);
            Assert.IsTrue(gameObject.hideFlags == HideFlags.None);

            recorderController.StopRecording();

            Object.DestroyImmediate(recorder);
            Object.DestroyImmediate(settings);
        }
コード例 #21
0
    private static IEnumerator RecordOneLevel(LevelData level, RecorderLevelEntryPoint entry)
    {
        // Enable the starting UI
        entry.StartingUI.SetActive(true);
        entry.LevelTitle.text = $"Next Level: '{level.Name}'";

        for (int i = entry.CountdownTime; i >= 1; i--)
        {
            entry.CountdownText.text = i.ToString();

            // Set time of current count and create a function to detect when one second has passed
            yield return(new WaitForSeconds(1f));
        }

        // Setup the matrix
        entry.StartingUI.SetActive(false);
        entry.MatrixUI.Setup(level);

        // Start the recording
        RecorderController recorder = GetRecorder(level.Name);

        recorder.PrepareRecording();

        if (!recorder.StartRecording())
        {
            Debug.Log("Failed to start the recording!");
        }

        // Wait until the current matrix is identity
        yield return(new WaitUntil(() => entry.MatrixUI.CurrentMatrix.isIdentity));

        yield return(new WaitForSeconds(entry.EndingTime));

        // Stop the recording
        recorder.StopRecording();
    }
コード例 #22
0
        public IEnumerator StartingAndEndingRecording_IncreasesTakeByOne()
        {
            yield return(new EnterPlayMode());

            var settings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            settings.SetRecordModeToTimeInterval(0, 20);
            var movSettings = ScriptableObject.CreateInstance <ImageRecorderSettings>();

            settings.AddRecorderSettings(movSettings);
            var recorderController = new RecorderController(settings);

            recorderController.PrepareRecording();
            Assert.AreEqual(1, movSettings.Take);
            recorderController.StartRecording();
            yield return(null);

            recorderController.StopRecording();
            yield return(new ExitPlayMode());

            Assert.AreEqual(2, movSettings.Take);
            UnityObject.DestroyImmediate(settings);
            UnityObject.DestroyImmediate(movSettings);
        }
コード例 #23
0
        void OnEnable()
        {
            var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            m_RecorderController = new RecorderController(controllerSettings);

            var outputFolder = Application.dataPath + "/SampleRecordings";

            // Video
            var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();

            videoRecorder.name    = "My Video Recorder";
            videoRecorder.enabled = true;

            videoRecorder.outputFormat     = VideoRecorderOutputFormat.MP4;
            videoRecorder.videoBitRateMode = VideoBitrateMode.Low;

            videoRecorder.imageInputSettings = new GameViewInputSettings
            {
                outputAspect = ImageAspect.x16_9,
                outputHeight = ImageHeight.x720p_HD
            };

            videoRecorder.audioInputSettings.preserveAudio = true;

            videoRecorder.outputFile = outputFolder + "/video";

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

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

            var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);

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

            animationRecorder.animationInputSettings.AddComponentToRecord(typeof(Transform));

            animationRecorder.outputFile = outputFolder + "/animation_" + DefaultWildcard.GeneratePattern("GameObject");

            // Image Sequence
            var imageRecorder = ScriptableObject.CreateInstance <ImageRecorderSettings>();

            imageRecorder.name    = "My Image Recorder";
            imageRecorder.enabled = true;

            imageRecorder.outputFormat = ImageRecorderOutputFormat.PNG;
            imageRecorder.captureAlpha = true;

            imageRecorder.outputFile = outputFolder + "/image_" + DefaultWildcard.Frame;

            imageRecorder.imageInputSettings = new CameraInputSettings
            {
                source       = ImageSource.MainCamera,
                outputAspect = ImageAspect.x16_9,
                outputHeight = ImageHeight.x720p_HD,
                captureUI    = true
            };

            // Setup Recording
            controllerSettings.AddRecorderSettings(videoRecorder);
            controllerSettings.AddRecorderSettings(animationRecorder);
            controllerSettings.AddRecorderSettings(imageRecorder);

            controllerSettings.SetRecordModeToManual();
            controllerSettings.frameRate = 60.0f;

            m_RecorderController.verbose = true;
            m_RecorderController.StartRecording();
        }
コード例 #24
0
ファイル: Home.xaml.cs プロジェクト: leikelen-team/Leikelen
        public Home()
        {
            switch (GeneralSettings.Instance.Language.Value)
            {
            case "es":
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("es");
                break;

            case "en":
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
                break;
            }
            InitializeComponent();

            switch (GeneralSettings.Instance.Language.Value)
            {
            case "es":
                SpanishLanguageRadio.IsChecked = true;
                break;

            case "en":
                EnglishLanguageRadio.IsChecked = true;
                break;

            default:
                AutoLanguageRadio.IsChecked = true;
                break;
            }

            //Initialize properties
            _recorderController = new RecorderController();
            _playerController   = new PlayerController();
            _mediaController    = new MediaController();
            _playerState        = PlayerState.Wait;
            _buttonBackground   = Player_RecordButton.Background;

            //Initialize record button timer arguments
            _recordTimer          = new DispatcherTimer();
            _recordTimer.Tick    += _recordTimer_Tick;
            _recordTimer.Interval = new TimeSpan(0, 0, 0, 0, 500); //0.5 seconds

            //Initialize player timer
            _playTimer          = new DispatcherTimer();
            _playTimer.Tick    += _playTimer_Tick;
            _playTimer.Interval = new TimeSpan(0, 0, 0, 1, 0); //1 second

            _playerController.Finished += PlayerFinished;

            InputLoader.Instance.VideoHandler.ColorImageArrived    += VideoViewer_colorImageArrived;
            InputLoader.Instance.VideoHandler.SkeletonImageArrived += VideoViewer_skeletonImageArrived;

            DataAccessFacade.Instance.GetPersonAccess().PersonsChanged += Home_PersonsChanged;

            _tabs = new List <ITab>()
            {
                new Widget.HomeTab.TabInterval(),
                new Widget.HomeTab.TabGraph(),
                new Widget.HomeTab.TabScene()
            };

            foreach (var tab in _tabs)
            {
                if (tab is TabItem tabItem)
                {
                    Tabs.AddToSource(tabItem);
                }
            }

            GeneralLoader.GeneralModulesHasReset       += RefillGeneralModuleTabs;
            ProcessingLoader.ProcessingModulesHasReset += RefillProcessingModuleTabs;

            SkeletonLayerCheckbox.IsChecked = true;
            ColorLayerCheckbox.IsChecked    = true;

            //Actions
            ChangeHomeState(SceneState.Base, PlayerState.Wait);
            FillMenuInputModules();
            FillMenuProccessingModules();
            FillMenuGeneralModules();
        }
コード例 #25
0
        void OnEnable()
        {
            var controllerSettings = ScriptableObject.CreateInstance <RecorderControllerSettings>();

            m_RecorderController = new RecorderController(controllerSettings);

            var mediaOutputFolder = Path.Combine(Application.dataPath, "..", "SampleRecordings");
            // animation output is an asset that must be created in Assets folder
            var animationOutputFolder = Path.Combine(Application.dataPath, "SampleRecordings");

            // Video
            var videoRecorder = ScriptableObject.CreateInstance <MovieRecorderSettings>();

            videoRecorder.name    = "My Video Recorder";
            videoRecorder.enabled = true;

            videoRecorder.outputFormat     = VideoRecorderOutputFormat.MP4;
            videoRecorder.videoBitRateMode = VideoBitrateMode.Low;

            videoRecorder.imageInputSettings = new GameViewInputSettings
            {
                outputWidth  = 1920,
                outputHeight = 1080
            };

            videoRecorder.audioInputSettings.preserveAudio = true;

            videoRecorder.outputFile = Path.Combine(mediaOutputFolder, "video_v" + DefaultWildcard.Take);

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

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

            var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);

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

            animationRecorder.animationInputSettings.AddComponentToRecord(typeof(Transform));

            animationRecorder.outputFile = Path.Combine(animationOutputFolder, "anim_" + DefaultWildcard.GeneratePattern("GameObject") + "_v" + DefaultWildcard.Take);

            // Image Sequence
            var imageRecorder = ScriptableObject.CreateInstance <ImageRecorderSettings>();

            imageRecorder.name    = "My Image Recorder";
            imageRecorder.enabled = true;

            imageRecorder.outputFormat = ImageRecorderOutputFormat.PNG;
            imageRecorder.captureAlpha = true;

            imageRecorder.outputFile = Path.Combine(mediaOutputFolder, "_png", "image_v" + DefaultWildcard.Take + "." + DefaultWildcard.Frame);

            imageRecorder.imageInputSettings = new CameraInputSettings
            {
                source       = ImageSource.MainCamera,
                outputWidth  = 1920,
                outputHeight = 1080,
                captureUI    = true
            };

            // Setup Recording
            controllerSettings.AddRecorderSettings(videoRecorder);
            controllerSettings.AddRecorderSettings(animationRecorder);
            controllerSettings.AddRecorderSettings(imageRecorder);

            controllerSettings.SetRecordModeToManual();
            controllerSettings.frameRate = 60.0f;

            Options.verboseMode = false;
            m_RecorderController.StartRecording();
        }
コード例 #26
0
 public void OnEnable()
 {
     controllerSettings   = ScriptableObject.CreateInstance <RecorderControllerSettings> ();
     m_RecorderController = new RecorderController(controllerSettings);
 }