[Bf-blender-cvs] [cab608066a9] master: Fix: Return back to conventional way of averaging points for keyframe de-dup

Joshua Leung noreply at git.blender.org
Wed Feb 21 14:00:03 CET 2018


Commit: cab608066a9ac85c60956ebf94bdca67c01a76c7
Author: Joshua Leung
Date:   Thu Feb 22 00:44:03 2018 +1300
Branches: master
https://developer.blender.org/rBcab608066a9ac85c60956ebf94bdca67c01a76c7

Fix: Return back to conventional way of averaging points for keyframe de-dup

The other approach was causing too much error in some cases (e.g. favouring
the lower-valued keyframes). This fix should make the resulting curves less
bumpy/jagged.

===================================================================

M	source/blender/editors/transform/transform_conversions.c

===================================================================

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index fc6865c3ed1..42a15939aee 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -3548,7 +3548,7 @@ static void posttrans_fcurve_clean(FCurve *fcu, const bool use_handle)
 			/* If there's another selected frame here, merge it */
 			for (tRetainedKeyframe *rk = retained_keys.last; rk; rk = rk->prev) {
 				if (IS_EQT(rk->frame, bezt->vec[1][0], BEZT_BINARYSEARCH_THRESH)) {
-					rk->val += (bezt->vec[1][1] - rk->val) / ((float)rk->tot_count);
+					rk->val += bezt->vec[1][1];
 					rk->tot_count++;
 					
 					found = true;
@@ -3580,6 +3580,12 @@ static void posttrans_fcurve_clean(FCurve *fcu, const bool use_handle)
 		}
 		return;
 	}
+	else {
+		/* Compute the average values for each retained keyframe */
+		for (tRetainedKeyframe *rk = retained_keys.first; rk; rk = rk->next) {
+			rk->val = rk->val / (float)rk->tot_count;
+		}
+	}
 	
 	/* 2) Delete all keyframes duplicating the "retained keys" found above
 	 *   - Most of these will be unselected keyframes



More information about the Bf-blender-cvs mailing list