/// <summary>
        /// Default constructor for FbxRecorderSettings.
        /// </summary>
        public FbxRecorderSettings()
        {
            var goWildcard = DefaultWildcard.GeneratePattern("GameObject");

            FileNameGenerator.AddWildcard(goWildcard, GameObjectNameResolver);
            FileNameGenerator.AddWildcard(DefaultWildcard.GeneratePattern("GameObjectScene"), GameObjectSceneNameResolver);

            FileNameGenerator.ForceAssetsFolder = false;
            FileNameGenerator.Root = OutputPath.Root.AssetsFolder;
            FileNameGenerator.FileName = "animation_" + goWildcard + "_" + DefaultWildcard.Take;
        }
        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();
        }
Пример #3
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();
        }