Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2014-06-19 17:28:45 +0400
committerJoshua Leung <aligorith@gmail.com>2014-06-19 17:34:35 +0400
commit179e7eaf394481c10b66b4db762e8189aa5a0a2a (patch)
tree843c2d2b1b563238f94affba2c5faf447dfc1530 /source/blender/editors/animation/keyframing.c
parentf161695150bf3bfb4303b093838a628eeb40f5da (diff)
Bugfix for Elastic and Back easing types
** TO BE PORTED BACK TO 2.71 ** As pointed out by Thomas Beck (plasmasolutions), the current behaviour and/or default values for their parameters didn't quite make sense: 1) Back Easing - The old default value of 0.0 results in some overshoot being applied, while trying to tweak it up or down resulted in some odd jumps and discontinities. I've ended up removing some code here which forcibly using a "back" value of 1.7 when users wanted 0.0 instead. There doesn't seem to be any good reason for this. To ensure that there is still an effect initially, keyframes now get created with back set to 1.7 2) Elastic Easing - The old default settings of <amplitude = 0, period = 0> resulted in a curve without any elastic bounce, which wasn't very useful for motion graphics. Now, default values of amplitude = 0.8 and period = 4.1 get set. These were hand picked by Thomas to work well when the duration of the motion is 10 frames long (i.e. the typical length of such effects when doing motion graphics).
Diffstat (limited to 'source/blender/editors/animation/keyframing.c')
-rw-r--r--source/blender/editors/animation/keyframing.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index c3573a37455..878c9193b23 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -420,6 +420,17 @@ int insert_vert_fcurve(FCurve *fcu, float x, float y, short flag)
beztr.ipo = BEZT_IPO_LIN;
}
+ /* set default values for "easing" interpolation mode settings
+ * NOTE: Even if these modes aren't currently used, if users switch
+ * to these later, we want these to work in a sane way out of
+ * the box.
+ */
+ beztr.back = 1.70158f; /* "back" easing - this value used to be used when overshoot=0, but that */
+ /* introduced discontinuities in how the param worked */
+
+ beztr.amplitude = 0.8f; /* "elastic" easing - values here were hand-optimised for a default duration of */
+ beztr.period = 4.1f; /* ~10 frames (typical mograph motion length) */
+
/* add temp beztriple to keyframes */
a = insert_bezt_fcurve(fcu, &beztr, flag);