Shape Keys+

This addon is a life saver, unfortunately it seems to overwrite the “Corrective Shape Keys” addon that ships out with blender leading to having to turn it off/on repeatedly. If there were some way to include those it’d be even more of a life saver!

The default Shape Keys panel is only hidden, by default. You can make it visible again through the add-on’s preferences.

Thank you very much for this addon, it is exactly what I needed! :nerd_face:

I am using Blender 2.9.
Blender will show a message like ‘module installed’ but the panel won’t show up and it’s not in the list of installed addons. Am I doing something wrong or does it not work with blender 2.9?

But running the py file from inside blender will add the panel.

NVM. If anyone has the same problem.

Just go into the zip file and rename ‘ui_shape_keys_plus.py’ to ‘init.py’.

You meant to type __init__.py? I see the double underscores formatted it as bold text, but __init__.py is the name of the file used at the root of a Python package. You’re right though; ever since I started using the GitHub repository’s automatic shape_keys_plus-master.zip instead of my manual GitHub release’s ui_shape_keys_plus.zip, an extra level has been added to the directory which caused the .zip file to not be read the same way. Importing an add-on that’s contained in one .py file can be done in these ways:

any_name.py
<any_name.zip>
    any_other_name.py
<any_name.zip>
    <any_other_name>
        __init__.py

In the last one, which is what you used, Python will see the package’s name as any_other_name, because it has an __init__.py in it. But because the script never references itself by name, this isn’t an issue.

Edit: I just renamed it on GitHub so that the downloaded .zip can be imported right away.

1 Like

Yeah it was meant to be ‘__init__.py’.
Not sure what the referencing part means - my guess is that it’s visible in the global scope and you have access to the attributes? - but thanks for the info.

This is the first addon I stumpled upon where I had to do anything except install so it was a bit frustrating. But now that you fixed it more people can enjoy your great work.

Is there any possibility to get an addon like that but for the pose library?

I’ve been asked the same for vertex groups, but the method I used for shape keys won’t work for those other areas of Blender that have similar list UIs. The items stored in these lists aren’t allowed to have custom properties, which is what I’d normally use to store data, so for shape keys I had to resort to storing folder data in the shape key’s vertex_group property. I just checked the pose library’s list item type bpy.types.TimelineMarker and, like bpy.types.VertexGroup, it too lacks a built-in property I can use.

1 Like

I’ve uploaded v2.0.0 to GitHub in the develop branch. After much testing nothing seems broken, but I’ll still wait a bit before making an official release, just to be safe. To test the release candidate yourself, download the branch from here, extract the .zip (with “Extract Here”), rename the shape_keys_plus-develop folder to shape_keys_plus, zip the folder, then install.

You can skip straight to the install of the latest official release by downloading it from here instead.

4 Likes

hello i am getting this issue in 2.91… with both master and develop
Traceback (most recent call last):
File “C:\Users\Usuario\Documents\B3D\blender-2.91.0-windows64\2.91\scripts\modules\addon_utils.py”, line 351, in enable
mod = import(module_name)
File “C:\Users\Usuario\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\shape_keys_plus-develop_init_.py”, line 4, in
from shape_keys_plus import core
ModuleNotFoundError: No module named ‘shape_keys_plus’

Traceback (most recent call last):
File “C:\Users\Usuario\Documents\B3D\blender-2.91.0-windows64\2.91\scripts\modules\addon_utils.py”, line 351, in enable
mod = import(module_name)
File “C:\Users\Usuario\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\shape_keys_plus-master_init_.py”, line 4, in
from shape_keys_plus import core
ModuleNotFoundError: No module named ‘shape_keys_plus’

That error happens when you try to install the add-on straight from a branch, because it renames the shape_keys_plus folder to shape_keys_plus-<branch>. Download it from the releases page instead.

which link to download?

shape_keys_plus-2.83.0-2.0.0-en_US.zip from the bottom of this page

3 Likes

this error shows up when i tried to select two shape keys, and then new shape from mix

Python: TypeError: bad argument type for built-in operation

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “C:\Users\Usuario\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\shape_keys_plus\operators\shape_key_add.py”, line 34, in execute
key = core.key.add(self.type)
File “C:\Users\Usuario\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\shape_keys_plus\core\key.py”, line 56, in add
if not is_selected(key) and not key.mute:
File “C:\Users\Usuario\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\shape_keys_plus\core\key.py”, line 14, in is_selected
return str(key.id_data.key_blocks.find(key)) in key.id_data.shape_keys_plus.selections
SystemError: <built-in method find of bpy_prop_collection object at 0x0000021A88673E40> returned a result with an error set

location: :-1

1 Like

Patch release coming in a bit. I just had to change find(key) to find(key.name) on line 14 in shape_keys_plus\core\key.py.

1 Like

ok thanks, anyway i had to disable the addon to click in the new from shape mix default option x"D

No need to disable the add-on; the default Shape Keys panel can be toggled from the preferences:

image

1 Like

Thx for the addon, one of my favorite!
but in the older version, if the shape key has driver, the shapekey value got the purpule color, but now only the value below get the purpole color, can you change it for the next version that also the value in the list will get the color?
here a photo for example:
image