Page MenuHome

New shapekey features potentially destroy mesh shape on old files on tab-tab
Open, NormalPublic


System Information
Fedora GNU/Linux 64 bit v 21/ intel cpu / nvidia gpu

Blender Version
Broken: Current Master
Worked: 2.73

Short description of error
Some shapekey enhancements seem to cause a problem on some old meshes, destroying basis shape just by tabbing in and out of edit mode
selecting the mesh and pressing 'tab tab' creates the error. Not that even though there appears to be an active shapekey, the buttons for pinning etc. are not visible.
If one first selects a shapekey and *then* tab tabs, the bug goes away. however, this can cause loss of work/destroyed meshes if the user does not notice in time.
Exact steps for others to reproduce the error
1- download the attached

2- open the file, the mesh should be selected
3- note the appearance of the shapkey panel: even though basis appears active, the pin button and associated area does not display
4- without clicking anywhere else, press tab-tab in the 3d view (enter and exit editmode)
5- note that the appearance of the mesh changes - if you save this it is not revertable
6- don't save
7- reopen the original file
8- this time, click once on the Basis Shape
9- observe that the relative checkbox, pin, and display in edit mode buttons all appear.
10- press tab tab in the 3d view
11- observe that the mesh shape does not change

Final notes:
In my opinion this is quite severe if/when it hits, as the user (in this case me) might not notice and end up doing a bunch of work in a file, saving and committing it. In my case, since I have SVN I can revert and redo that work. Other people may not be so lucky.



Event Timeline

bassam kurdali (bassamk) set Type to Bug.
bassam kurdali (bassamk) created this task.
bassam kurdali (bassamk) raised the priority of this task from to Needs Triage by Developer.

Here's a short video of me doing the steps.

Yeah, this is really odd… File seems to come from 2.62, so I’d infer 2.63.20 versioning is the culprit:

	if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 20)) {
		Key *key;
		for (key = main->key.first; key; key = key-> {

But still… Clicking on the active skey in the list merely do an object update, I would assume this is done anyway once the file has been read and versioned?

Campbell, Sergey, you may have a better idea of what’s happening here?

Bastien Montagne (mont29) triaged this task as Normal priority.Mar 15 2015, 11:25 AM

I've done a bunch of save and loads in current master (original file had a lot of rig stuff in it/ was huge) I wonder if it is incorrectly assuming I was editing a shape because no shape is active, and erroneously applying a difference to the basis?
It is still quite scary (I found the bug by doing totally unrelated things in the rig file - never looked at the elbow ) and then found all our anim files looked broken :/
luckily I have SVN!