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>2011-02-09 03:51:30 +0300
committerJoshua Leung <aligorith@gmail.com>2011-02-09 03:51:30 +0300
commitaff23c92cc48b2e4b36cc0e5c56c2aabc72d6335 (patch)
treed36ecd52b1e8c3a41caf524e41a16c02043e90a4 /source/blender/blenloader
parent711ba795f7abbae9d8315cda5a7221d6f18e13bc (diff)
Bugfix [#25990] backward compatibility with ShapeKey Actions :: 2.49
-> 2.50 Actionified ShapeKey IPO-blocks (i.e. "Shape Key Actions") would have an action channel with the hardcoded name, "Shape", and this action would be assigned to Object level (although ShapeKey blocks had their own IPO-block slot, only Objects could have actions, so actionifying ShapeKey IPO-blocks would wrap a ShapeKey block's IPO's to an Object- level action). Hence, the path conversions code would wrongly interpret this action channel as referring to a Pose Channel instead, thus creating some invalid paths with a 'pose.bones["Shape"]' prefix wrongly getting tacked on. To ensure that the converted animation can work out of the box, a 'data.shape_keys' prefix is now used instead so that these actions can still be Object-rooted while still being able to correctly control the Shape Keys. This is because there's no easy way to identify and then shift such action from Object-level to ShapeKey- level within the conversion code. The consequence though is that such converted ShapeKey actions CAN ONLY BE USED THROUGH OBJECT LEVEL (i.e. via Action NOT ShapeKey editor). Secondly, the Action/ShapeKey editor version patching code has been modified so that if a ShapeKey editor view was active when loading an old 2.4x file, the action gets cleared from the view. This is because of this didn't make semantic sense: the ShapeKey editor is for ShapeKey-rooted actions, while the Action Editor is for Object-rooted actions. The converted files though let Object-level actions be shown in either one.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readfile.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index ab11f41baac..dfd586fdb9a 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6355,6 +6355,8 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
}
case SPACE_ACTION:
{
+ SpaceAction *saction= (SpaceAction *)sl;
+
/* we totally reinit the view for the Action Editor, as some old instances had some weird cruft set */
ar->v2d.tot.xmin= -20.0f;
ar->v2d.tot.ymin= (float)(-sa->winy)/3.0f;
@@ -6364,10 +6366,10 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
ar->v2d.cur= ar->v2d.tot;
ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
ar->v2d.max[0]= MAXFRAMEF;
- ar->v2d.max[1]= FLT_MAX;
+ ar->v2d.max[1]= FLT_MAX;
ar->v2d.minzoom= 0.01f;
ar->v2d.maxzoom= 50;
@@ -6376,6 +6378,13 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
ar->v2d.keepzoom= V2D_LOCKZOOM_Y;
ar->v2d.align= V2D_ALIGN_NO_POS_Y;
ar->v2d.flag = V2D_VIEWSYNC_AREA_VERTICAL;
+
+ /* for old files with ShapeKey editors open + an action set, clear the action as
+ * it doesn't make sense in the new system (i.e. violates concept that ShapeKey edit
+ * only shows ShapeKey-rooted actions only)
+ */
+ if (saction->mode == SACTCONT_SHAPEKEY)
+ saction->action = NULL;
break;
}
case SPACE_SEQ: