You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Small fixes
This commit is contained in:
@@ -419,14 +419,26 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float
|
||||
pa->capture = pa->object->get_indexed(pa->subpath);
|
||||
}
|
||||
|
||||
if (a->track_get_key_count(i) == 0)
|
||||
int key_count = a->track_get_key_count(i);
|
||||
if (key_count == 0)
|
||||
continue; //eeh not worth it
|
||||
|
||||
float first_key_time = a->track_get_key_time(i, 0);
|
||||
float transition = 1.0;
|
||||
int first_key = 0;
|
||||
|
||||
if (first_key_time == 0.0) {
|
||||
//ignore, use for transition
|
||||
if (key_count == 1)
|
||||
continue; //with one key we cant do anything
|
||||
transition = a->track_get_key_transition(i, 0);
|
||||
first_key_time = a->track_get_key_time(i, 1);
|
||||
first_key = 1;
|
||||
}
|
||||
|
||||
if (p_time < first_key_time) {
|
||||
float c = p_time / first_key_time;
|
||||
Variant first_value = a->track_get_key_value(i, 0);
|
||||
float c = Math::ease(p_time / first_key_time, transition);
|
||||
Variant first_value = a->track_get_key_value(i, first_key);
|
||||
Variant interp_value;
|
||||
Variant::interpolate(pa->capture, first_value, c, interp_value);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user