From 0dea135a36e5f9d06c60270f0bcca64a20a2cbd6 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Wed, 7 Nov 2018 18:05:22 +0300 Subject: NLA: fix frame mapping applied twice keyframing from graph/action editors. The insert_keyframe function already applies NLA strip to action time remapping, so doing it in insert_graph_keys/insert_action_keys is redundant outside the code path that inserts directly into fcurve. --- source/blender/editors/space_action/action_edit.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'source/blender/editors/space_action') diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 4cec73f306b..377698d931c 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -700,15 +700,8 @@ static void insert_action_keys(bAnimContext *ac, short mode) /* insert keyframes */ for (ale = anim_data.first; ale; ale = ale->next) { - AnimData *adt = ANIM_nla_mapping_get(ac, ale); FCurve *fcu = (FCurve *)ale->key_data; - float cfra; - - /* adjust current frame for NLA-scaling */ - if (adt) - cfra = BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); - else - cfra = (float)CFRA; + float cfra = (float)CFRA; /* read value from property the F-Curve represents, or from the curve only? * - ale->id != NULL: Typically, this means that we have enough info to try resolving the path @@ -721,6 +714,12 @@ static void insert_action_keys(bAnimContext *ac, short mode) fcu->rna_path, fcu->array_index, cfra, ts->keyframe_type, flag); } else { + AnimData *adt = ANIM_nla_mapping_get(ac, ale); + + /* adjust current frame for NLA-scaling */ + if (adt) + cfra = BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); + const float curval = evaluate_fcurve(fcu, cfra); insert_vert_fcurve(fcu, cfra, curval, ts->keyframe_type, 0); } -- cgit v1.2.3