Skip to content

Commit

Permalink
Small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
reduz committed Jun 29, 2018
1 parent b7f17a1 commit 0ffec7d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
18 changes: 15 additions & 3 deletions scene/animation/animation_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
4 changes: 4 additions & 0 deletions scene/animation/animation_tree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1287,6 +1287,10 @@ void AnimationTree::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_root_motion_track", "path"), &AnimationTree::set_root_motion_track);
ClassDB::bind_method(D_METHOD("get_root_motion_track"), &AnimationTree::get_root_motion_track);

ClassDB::bind_method(D_METHOD("get_root_motion_transform"), &AnimationTree::get_root_motion_transform);



ClassDB::bind_method(D_METHOD("_node_removed"), &AnimationTree::_node_removed);

ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "tree_root", PROPERTY_HINT_RESOURCE_TYPE, "AnimationRootNode", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE), "set_tree_root", "get_tree_root");
Expand Down
4 changes: 2 additions & 2 deletions scene/resources/animation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) {
int um = d["update"];
if (um < 0)
um = 0;
else if (um > 2)
um = 2;
else if (um > 3)
um = 3;
vt->update_mode = UpdateMode(um);
}

Expand Down

0 comments on commit 0ffec7d

Please sign in to comment.