1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Add editor setting for default animation step

This commit is contained in:
kobewi
2024-10-22 13:43:42 +02:00
parent 7893202fba
commit c2813b902c
4 changed files with 10 additions and 1 deletions

View File

@@ -522,6 +522,10 @@
If [code]true[/code], display a confirmation dialog when adding a new track to an animation by pressing the "key" icon next to a property. Holding Shift will bypass the dialog.
If [code]false[/code], the behavior is reversed, i.e. the dialog only appears when Shift is held.
</member>
<member name="editors/animation/default_animation_step" type="float" setter="" getter="">
Default step used when creating a new [Animation] in the Animation bottom panel. Only affects the first animation created in the [AnimationPlayer]. By default, other newly created animations will use the step from the previous ones.
This value is always expressed in seconds. If you want e.g. [code]10[/code] FPS to be the default, you need to set the default step to [code]0.1[/code].
</member>
<member name="editors/animation/default_create_bezier_tracks" type="bool" setter="" getter="">
If [code]true[/code], create a Bezier track instead of a standard track when pressing the "key" icon next to a property. Bezier tracks provide more control over animation curves, but are more difficult to adjust quickly.
</member>

View File

@@ -55,6 +55,7 @@
#include "scene/main/node.h"
#include "scene/main/scene_tree.h"
#include "scene/main/window.h"
#include "scene/resources/animation.h"
// PRIVATE METHODS
@@ -918,6 +919,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/polygon_editor/auto_bake_delay", 1.5, "-1.0,10.0,0.01");
// Animation
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/animation/default_animation_step", Animation::DEFAULT_STEP, "0.0,10.0,0.00000001");
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "editors/animation/default_fps_mode", 0, "Seconds,FPS");
_initial_set("editors/animation/default_fps_compatibility", true);
_initial_set("editors/animation/autorename_animation_tracks", true);

View File

@@ -655,6 +655,8 @@ void AnimationPlayerEditor::_animation_name_edited() {
if (current_anim.is_valid()) {
new_anim->set_step(current_anim->get_step());
}
} else {
new_anim->set_step(EDITOR_GET("editors/animation/default_animation_step"));
}
String library_name;

View File

@@ -43,6 +43,7 @@ public:
typedef uint32_t TypeHash;
static inline String PARAMETERS_BASE_PATH = "parameters/";
static inline constexpr real_t DEFAULT_STEP = 1.0 / 30;
enum TrackType : uint8_t {
TYPE_VALUE, // Set a value in a property, can be interpolated.
@@ -280,7 +281,7 @@ private:
_FORCE_INLINE_ void _track_get_key_indices_in_range(const Vector<T> &p_array, double from_time, double to_time, List<int> *p_indices, bool p_is_backward) const;
double length = 1.0;
real_t step = 1.0 / 30;
real_t step = DEFAULT_STEP;
LoopMode loop_mode = LOOP_NONE;
bool capture_included = false;
void _check_capture_included();