1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

Small fixes

This commit is contained in:
Juan Linietsky
2018-06-29 09:13:20 -03:00
parent b7f17a100d
commit 0ffec7daf7
3 changed files with 21 additions and 5 deletions

View File

@@ -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);