virtualx-engine/editor
reduz 5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
..
debugger Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
fileserver Add a new HashSet template 2022-05-20 22:40:38 +02:00
icons Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
import Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
plugins Merge pull request #61888 from Chaosus/vs_remove_engine_version 2022-06-16 18:19:03 +02:00
translations i18n: Sync editor translations with Weblate 2022-06-16 21:07:30 +02:00
action_map_editor.cpp Use "odd" style for TabContainers on base BG color 2022-05-26 21:19:15 -05:00
action_map_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
animation_bezier_editor.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
animation_bezier_editor.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
animation_track_editor.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
animation_track_editor.h Merge pull request #60774 from TokageItLab/root-seek-mode 2022-05-18 15:24:21 +02:00
animation_track_editor_plugins.cpp Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
animation_track_editor_plugins.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
array_property_edit.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
array_property_edit.h
audio_stream_preview.cpp Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
audio_stream_preview.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
code_editor.cpp Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
code_editor.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
connections_dialog.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
connections_dialog.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
create_dialog.cpp Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
create_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
dependency_editor.cpp Improve title of DependencyEditorOwners 2022-06-03 21:05:05 +02:00
dependency_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
dictionary_property_edit.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
dictionary_property_edit.h
doc_tools.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
doc_tools.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_about.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
editor_about.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_asset_installer.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_asset_installer.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_atlas_packer.cpp Use bresenham_line() in EditorAtlasPacker::chart_pack 2022-02-21 19:52:47 +01:00
editor_atlas_packer.h Use bresenham_line() in EditorAtlasPacker::chart_pack 2022-02-21 19:52:47 +01:00
editor_audio_buses.cpp i18n: Misc fixes translation strings 2022-06-08 12:57:54 +02:00
editor_audio_buses.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_autoload_settings.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_autoload_settings.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_builders.py [Editor build] Use smaller .mo files instead of .po, if gettext is available. 2022-03-24 21:17:32 +02:00
editor_command_palette.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
editor_command_palette.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_data.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_data.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_dir_dialog.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_dir_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_export.cpp Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_export.h Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_feature_profile.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_feature_profile.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_file_dialog.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
editor_file_dialog.h Cleanups after changes in ItemList signals 2022-05-10 13:26:16 +03:00
editor_file_system.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_file_system.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_folding.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_folding.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_fonts.cpp Improve the VisualShader/VisualScript editor UI 2022-04-30 03:56:57 +02:00
editor_fonts.h
editor_help.cpp Merge pull request #60984 from fire-forge/doc-icon 2022-06-01 18:34:39 +02:00
editor_help.h Fix help links with threaded RTL. 2022-05-30 10:05:14 +03:00
editor_help_search.cpp Fix typos with codespell 2022-05-23 21:32:19 +02:00
editor_help_search.h Fix editor crash in built-in help when script inheritance chain changes. 2022-05-17 08:50:32 -07:00
editor_inspector.cpp Merge pull request #59770 from fire-forge/rounded-corners 2022-06-10 10:53:09 +02:00
editor_inspector.h Improve style of inspector buttons 2022-05-25 22:54:47 +02:00
editor_layouts_dialog.cpp
editor_layouts_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_locale_dialog.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
editor_locale_dialog.h
editor_log.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
editor_log.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_native_shader_source_visualizer.cpp Make TabBar/Container default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
editor_native_shader_source_visualizer.h
editor_node.cpp Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_node.h Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_path.cpp Expose PopupMenu set/get_item_horizontal_offset() 2022-06-15 02:08:44 -05:00
editor_path.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_paths.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_paths.h Editor: Cleanup some includes dependencies 2022-02-15 14:54:15 +01:00
editor_plugin.cpp Merge pull request #59393 from techiepriyansh/move-gltf-export-under-scene-menu 2022-04-27 11:51:49 +02:00
editor_plugin.h move gltf export under scene menu 2022-04-12 19:42:41 +05:30
editor_plugin_settings.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_plugin_settings.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_properties.cpp Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_properties.h Add vector value linking 2022-06-14 14:58:44 +02:00
editor_properties_array_dict.cpp Allow folding in sub-inspectors in Array and Dictionary editors 2022-06-14 23:25:40 -05:00
editor_properties_array_dict.h Add margins to Array and Dictionary editors 2022-06-11 10:44:15 -05:00
editor_property_name_processor.cpp Add TAA to the list of editor capitalizations 2022-06-12 00:27:56 +02:00
editor_property_name_processor.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_resource_picker.cpp Add rounded corners to EditorProperty and EditorSpinSlider 2022-05-25 15:31:30 -05:00
editor_resource_picker.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_resource_preview.cpp Basic 3D rendering 2022-05-12 10:37:27 -07:00
editor_resource_preview.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_run.cpp Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_run.h Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_run_native.cpp Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_run_native.h Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_run_script.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
editor_run_script.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_scale.cpp
editor_scale.h
editor_sectioned_inspector.cpp Add GLOBAL_DEF_INTERNAL to hide specific settings 2022-06-07 14:14:03 +02:00
editor_sectioned_inspector.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_settings.cpp i18n: Misc fixes translation strings 2022-06-08 12:57:54 +02:00
editor_settings.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_settings_dialog.cpp Merge pull request #61455 from fire-forge/tab 2022-05-31 12:52:03 +02:00
editor_settings_dialog.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_spin_slider.cpp Merge pull request #59770 from fire-forge/rounded-corners 2022-06-10 10:53:09 +02:00
editor_spin_slider.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
editor_themes.cpp Add margins to Array and Dictionary editors 2022-06-11 10:44:15 -05:00
editor_themes.h
editor_toaster.cpp Improve toaster buttons 2022-06-14 02:35:25 +02:00
editor_toaster.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_translation.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_translation.h
editor_translation_parser.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_translation_parser.h
editor_vcs_interface.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_vcs_interface.h Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
editor_zoom_widget.cpp Remove zoom_reset shortcut in 2D editor 2022-05-22 21:39:53 +02:00
editor_zoom_widget.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
export_template_manager.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
export_template_manager.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
filesystem_dock.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
filesystem_dock.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
find_in_files.cpp i18n: Misc fixes translation strings 2022-06-08 12:57:54 +02:00
find_in_files.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
groups_editor.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
groups_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
import_defaults_editor.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
import_defaults_editor.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
import_dock.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
import_dock.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
inspector_dock.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
inspector_dock.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
localization_editor.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
localization_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
multi_node_edit.cpp Remove UndoRedo calls trying to call removed EditorInspector::refresh() 2022-05-22 19:27:58 +02:00
multi_node_edit.h
node_dock.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
node_dock.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
plugin_config_dialog.cpp Improve plugin dialog UX 2022-05-07 23:19:55 +02:00
plugin_config_dialog.h Improve plugin dialog UX 2022-05-07 23:19:55 +02:00
pot_generator.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
pot_generator.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
progress_dialog.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
progress_dialog.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
project_converter_3_to_4.cpp Add Godot 3.x -> Godot 4.x project converter 2022-06-15 10:11:17 +02:00
project_converter_3_to_4.h Add Godot 3.x -> Godot 4.x project converter 2022-06-15 10:11:17 +02:00
project_export.cpp Add tooltips to Export dialog icon buttons 2022-06-10 18:38:46 +08:00
project_export.h Add readable export errors. 2022-06-08 17:55:46 +03:00
project_manager.cpp Add icons to the Project Manager side buttons 2022-06-16 19:32:41 -05:00
project_manager.h Add icons to the Project Manager side buttons 2022-06-16 19:32:41 -05:00
project_settings_editor.cpp Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
project_settings_editor.h [Input] Add extra shortcut_input input processing step to process Unicode character input with Alt / Ctrl modifiers, after processing of shortcuts. 2022-04-05 13:46:45 +03:00
property_editor.cpp Support explicit values in flag properties, add C# flags support 2022-06-03 05:19:01 +02:00
property_editor.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
property_selector.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
property_selector.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
quick_open.cpp Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
quick_open.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
register_exporters.h
rename_dialog.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
rename_dialog.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
reparent_dialog.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
reparent_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
scene_tree_dock.cpp Expose PopupMenu set/get_item_horizontal_offset() 2022-06-15 02:08:44 -05:00
scene_tree_dock.h Don't handle pending clicks outside scene tree 2022-06-10 15:14:31 +02:00
scene_tree_editor.cpp Fix crash with empty scenes 2022-06-04 00:04:49 +02:00
scene_tree_editor.h Optimize SceneTreeEditor filtering 2022-05-24 18:07:18 +02:00
script_create_dialog.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
script_create_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
SCsub i18n: Sync editor translations with Weblate 2022-04-25 17:19:34 +02:00
shader_create_dialog.cpp Merge pull request #61888 from Chaosus/vs_remove_engine_version 2022-06-16 18:19:03 +02:00
shader_create_dialog.h Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
shader_globals_editor.cpp Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
shader_globals_editor.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
template_builders.py