From 946ad9c4fa5c0351b5cf1d7733cd28410513b97e Mon Sep 17 00:00:00 2001 From: Shrinivas Kulkarni <shrinivk@gmail.com> Date: Fri, 17 Jan 2020 20:25:19 +0530 Subject: [PATCH] curve_assign_shapekey: Fix for condition where target has existing shapekeys and basis shape key is different than curve --- curve_assign_shapekey.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/curve_assign_shapekey.py b/curve_assign_shapekey.py index f6f185007..f9d8b5010 100644 --- a/curve_assign_shapekey.py +++ b/curve_assign_shapekey.py @@ -407,7 +407,8 @@ def main(targetObj, shapekeyObjs, removeOriginal, space, matchParts, \ shapekeys = [Path(c) for c in shapekeyObjs] - shapekeys = getExistingShapeKeyPaths(target) + shapekeys + existingKeys = getExistingShapeKeyPaths(target) + shapekeys = existingKeys + shapekeys userSel = [target] + shapekeys for path in userSel: @@ -431,13 +432,10 @@ def main(targetObj, shapekeyObjs, removeOriginal, space, matchParts, \ for j, part in enumerate(path.parts): part.toClose = allToClose[j] - if(targetObj.data.shape_keys != None): - skName = targetObj.data.shape_keys.key_blocks[0].name - else: - skName = 'Basis' - target.updateCurve() - target.curve.shape_key_add(name = skName) + + if(len(existingKeys) == 0): + target.curve.shape_key_add(name = 'Basis') addShapeKeys(target.curve, shapekeys, space) @@ -714,7 +712,7 @@ def getExistingShapeKeyPaths(path): paths = [] if(obj.data.shape_keys != None): - keyblocks = obj.data.shape_keys.key_blocks[1:]#Skip basis + keyblocks = obj.data.shape_keys.key_blocks[:] for key in keyblocks: datacopy = obj.data.copy() i = 0 -- GitLab