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-01-24 06:48:36 +0400
committerJoshua Leung <aligorith@gmail.com>2015-03-28 15:39:50 +0300
commit2b4ff142ab542b3ef689e73e18b06f8bfaedf89f (patch)
tree4581b53b1e3a33a9892e59d66382b78075ab90dd /source/blender/blenkernel/intern/anim_sys.c
parent1a5c5ac742679b625d789614ea6807672e522ebb (diff)
Fix T36385: Animated Strip-Time doesnt update
This commit implements proper evaluation + keyframing support for animating influence and time on NLA Strips (among other properties) by resolving a few long standing issues which prevented the original design for this from working. The original design for animating these properties (and/or some of the other settings on NLA Strips) is that NLA Strips actually have some of their own F-Curves that are used for animating settings which will affect how they are evaluated. As seen in this bug report, the alternative of having these animated as part of the stack (which the strips work above/outside/on-top of) means that glitches can occur. Although one of the original considerations for why this wasn't implemented earlier was that introducing keyframes there isn't so clean cut, and causes UI design issues for how we expose these via the animation editors for editing (NOTE: support for that is still to come). Another concern is that this sets a precedent for how FModifiers might get evaluated.
Diffstat (limited to 'source/blender/blenkernel/intern/anim_sys.c')
-rw-r--r--source/blender/blenkernel/intern/anim_sys.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index effe32a8079..59cc23ab8a1 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -1496,8 +1496,11 @@ static bool animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_ind
/* get property to write to */
if (RNA_path_resolve_property(ptr, path, &new_ptr, &prop)) {
- /* set value - only for animatable numerical values */
- if (RNA_property_animateable(&new_ptr, prop)) {
+ /* set value for animatable numerical values only
+ * HACK: some local F-Curves (e.g. those on NLA Strips) are evaluated
+ * without an ID provided, which causes the animateable test to fail!
+ */
+ if (RNA_property_animateable(&new_ptr, prop) || (ptr->id.data == NULL)) {
int array_len = RNA_property_array_length(&new_ptr, prop);
bool written = false;